mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-16 10:39:49 +00:00
CL: Apache license to common/ PUBLISHED_FROM=901e9e4b12a31289b3515d1f86dd56a7f0f35c5e
61 lines
1.6 KiB
C
61 lines
1.6 KiB
C
/*
|
|
* Copyright (c) 2014-2018 Cesanta Software Limited
|
|
* All rights reserved
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the ""License"");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an ""AS IS"" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#if MG_NET_IF == MG_NET_IF_SIMPLELINK
|
|
|
|
#include <errno.h>
|
|
#include <stdio.h>
|
|
|
|
#include "common/platform.h"
|
|
|
|
const char *inet_ntop(int af, const void *src, char *dst, socklen_t size) {
|
|
int res;
|
|
struct in_addr *in = (struct in_addr *) src;
|
|
if (af != AF_INET) {
|
|
errno = ENOTSUP;
|
|
return NULL;
|
|
}
|
|
res = snprintf(dst, size, "%lu.%lu.%lu.%lu", SL_IPV4_BYTE(in->s_addr, 0),
|
|
SL_IPV4_BYTE(in->s_addr, 1), SL_IPV4_BYTE(in->s_addr, 2),
|
|
SL_IPV4_BYTE(in->s_addr, 3));
|
|
return res > 0 ? dst : NULL;
|
|
}
|
|
|
|
char *inet_ntoa(struct in_addr n) {
|
|
static char a[16];
|
|
return (char *) inet_ntop(AF_INET, &n, a, sizeof(a));
|
|
}
|
|
|
|
int inet_pton(int af, const char *src, void *dst) {
|
|
uint32_t a0, a1, a2, a3;
|
|
uint8_t *db = (uint8_t *) dst;
|
|
if (af != AF_INET) {
|
|
errno = ENOTSUP;
|
|
return 0;
|
|
}
|
|
if (sscanf(src, "%lu.%lu.%lu.%lu", &a0, &a1, &a2, &a3) != 4) {
|
|
return 0;
|
|
}
|
|
*db = a3;
|
|
*(db + 1) = a2;
|
|
*(db + 2) = a1;
|
|
*(db + 3) = a0;
|
|
return 1;
|
|
}
|
|
|
|
#endif /* MG_NET_IF == MG_NET_IF_SIMPLELINK */
|