diff options
author | Michael Adam <obnox@samba.org> | 2008-03-14 08:49:34 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-03-14 11:32:34 +0100 |
commit | 27517ea5bbd0cb7fb0f1a1d88d8282380f14e717 (patch) | |
tree | 3fe95d253a87aac0f626ddec1a88ef32e41ed4d9 | |
parent | 439002b1c65a1ec94d3199cfc5211cedbe84b8ab (diff) | |
download | samba-27517ea5bbd0cb7fb0f1a1d88d8282380f14e717.tar.gz samba-27517ea5bbd0cb7fb0f1a1d88d8282380f14e717.tar.bz2 samba-27517ea5bbd0cb7fb0f1a1d88d8282380f14e717.zip |
libreplace: add an inet_aton() function that calls inet_pton().
inet_aton() is even needed inside libreplace, in the implementation
of rep_getaddrinfo().
Michael
(cherry picked from commit bcb2f3a880f8da8f9bedb7a8e61d7d7b533f1919)
(This used to be commit 83baff78ce752a9129554a456cc24d043d419cd1)
-rw-r--r-- | source3/lib/replace/README | 1 | ||||
-rw-r--r-- | source3/lib/replace/inet_aton.c | 29 | ||||
-rw-r--r-- | source3/lib/replace/inet_aton.m4 | 1 | ||||
-rw-r--r-- | source3/lib/replace/libreplace.m4 | 1 | ||||
-rw-r--r-- | source3/lib/replace/replace.h | 5 | ||||
-rw-r--r-- | source3/lib/replace/system/network.h | 5 |
6 files changed, 42 insertions, 0 deletions
diff --git a/source3/lib/replace/README b/source3/lib/replace/README index 268a1b15cf..aae1ccb56f 100644 --- a/source3/lib/replace/README +++ b/source3/lib/replace/README @@ -52,6 +52,7 @@ readline (the library) inet_ntoa inet_ntop inet_pton +inet_aton strtoll strtoull socketpair diff --git a/source3/lib/replace/inet_aton.c b/source3/lib/replace/inet_aton.c new file mode 100644 index 0000000000..3eb58f000c --- /dev/null +++ b/source3/lib/replace/inet_aton.c @@ -0,0 +1,29 @@ +/* + * Unix SMB/CIFS implementation. + * replacement functions + * Copyright (C) Michael Adam <obnox@samba.org> 2008 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "replace.h" +#include "system/network.h" + +/** + * We know that we have inet_pton from earlier libreplace checks. + */ +int rep_inet_aton(const char *src, struct in_addr *dst) +{ + return (inet_pton(AF_INET, src, dst) > 0) ? 1 : 0; +} diff --git a/source3/lib/replace/inet_aton.m4 b/source3/lib/replace/inet_aton.m4 new file mode 100644 index 0000000000..853688ef6b --- /dev/null +++ b/source3/lib/replace/inet_aton.m4 @@ -0,0 +1 @@ +AC_CHECK_FUNCS(inet_aton,[],[LIBREPLACEOBJ="${LIBREPLACEOBJ} inet_aton.o"]) diff --git a/source3/lib/replace/libreplace.m4 b/source3/lib/replace/libreplace.m4 index e0cc57f4c8..e6e7198abf 100644 --- a/source3/lib/replace/libreplace.m4 +++ b/source3/lib/replace/libreplace.m4 @@ -347,6 +347,7 @@ m4_include(timegm.m4) m4_include(socket.m4) m4_include(inet_ntop.m4) m4_include(inet_pton.m4) +m4_include(inet_aton.m4) m4_include(getaddrinfo.m4) m4_include(repdir.m4) m4_include(getifaddrs.m4) diff --git a/source3/lib/replace/replace.h b/source3/lib/replace/replace.h index 0d16f4ffd0..00c8230e6b 100644 --- a/source3/lib/replace/replace.h +++ b/source3/lib/replace/replace.h @@ -340,6 +340,11 @@ ssize_t rep_pwrite(int __fd, const void *__buf, size_t __nbytes, off_t __offset) /* prototype is in "system/network.h" */ #endif +#ifndef HAVE_INET_ATON +#define inet_aton rep_inet_aton +/* prototype is in "system/network.h" */ +#endif + #ifndef HAVE_CONNECT #define connect rep_connect /* prototype is in "system/network.h" */ diff --git a/source3/lib/replace/system/network.h b/source3/lib/replace/system/network.h index 796df2d1da..e9e770205d 100644 --- a/source3/lib/replace/system/network.h +++ b/source3/lib/replace/system/network.h @@ -103,6 +103,11 @@ int rep_inet_pton(int af, const char *src, void *dst); const char *rep_inet_ntop(int af, const void *src, char *dst, socklen_t size); #endif +#ifndef HAVE_INET_ATON +/* define is in "replace.h" */ +int rep_inet_aton(const char *src, struct in_addr *dst); +#endif + #ifndef HAVE_CONNECT /* define is in "replace.h" */ int rep_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); |