* cygwin.din (inet_pton): Export.
(inet_ntop): Export. * net.cc (cygwin_inet_pton): Implement inet_pton for AF_INET for now. (cygwin_inet_ntop): Implement inet_ntop for AF_INET for now. * include/arpa/inet.h (inet_pton): Declare. (inet_ntop): Declare. * include/cygwin/version.h: Bump API minor number.
This commit is contained in:
parent
2778b3e2b6
commit
b3ba5059da
|
@ -1,3 +1,13 @@
|
||||||
|
2005-06-17 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* cygwin.din (inet_pton): Export.
|
||||||
|
(inet_ntop): Export.
|
||||||
|
* net.cc (cygwin_inet_pton): Implement inet_pton for AF_INET for now.
|
||||||
|
(cygwin_inet_ntop): Implement inet_ntop for AF_INET for now.
|
||||||
|
* include/arpa/inet.h (inet_pton): Declare.
|
||||||
|
(inet_ntop): Declare.
|
||||||
|
* include/cygwin/version.h: Bump API minor number.
|
||||||
|
|
||||||
2005-06-17 Corinna Vinschen <corinna@vinschen.de>
|
2005-06-17 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* fhandler.h (fhandler_union): Add missing members corresponding to
|
* fhandler.h (fhandler_union): Add missing members corresponding to
|
||||||
|
|
|
@ -324,8 +324,10 @@ herror = cygwin_herror SIGFE
|
||||||
hstrerror = cygwin_hstrerror NOSIGFE
|
hstrerror = cygwin_hstrerror NOSIGFE
|
||||||
inet_addr = cygwin_inet_addr SIGFE
|
inet_addr = cygwin_inet_addr SIGFE
|
||||||
inet_aton = cygwin_inet_aton SIGFE
|
inet_aton = cygwin_inet_aton SIGFE
|
||||||
|
inet_pton = cygwin_inet_pton SIGFE
|
||||||
inet_network = cygwin_inet_network SIGFE
|
inet_network = cygwin_inet_network SIGFE
|
||||||
inet_ntoa = cygwin_inet_ntoa SIGFE
|
inet_ntoa = cygwin_inet_ntoa SIGFE
|
||||||
|
inet_ntop = cygwin_inet_ntop SIGFE
|
||||||
cygwin_internal NOSIGFE
|
cygwin_internal NOSIGFE
|
||||||
cygwin32_internal = cygwin_internal NOSIGFE
|
cygwin32_internal = cygwin_internal NOSIGFE
|
||||||
listen = cygwin_listen SIGFE
|
listen = cygwin_listen SIGFE
|
||||||
|
|
|
@ -26,6 +26,8 @@ struct in_addr inet_makeaddr (unsigned long , unsigned long);
|
||||||
in_addr_t inet_netof (struct in_addr);
|
in_addr_t inet_netof (struct in_addr);
|
||||||
in_addr_t inet_network (const char *);
|
in_addr_t inet_network (const char *);
|
||||||
char *inet_ntoa (struct in_addr);
|
char *inet_ntoa (struct in_addr);
|
||||||
|
int inet_pton (int, const char *, void *);
|
||||||
|
const char *inet_ntop (int, const void *, char *, size_t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -257,12 +257,13 @@ details. */
|
||||||
128: Export pselect.
|
128: Export pselect.
|
||||||
129: Export mkdtemp.
|
129: Export mkdtemp.
|
||||||
130: Export strtoimax, strtoumax, llabs, imaxabs, lldiv, imaxdiv.
|
130: Export strtoimax, strtoumax, llabs, imaxabs, lldiv, imaxdiv.
|
||||||
|
131: Export inet_ntop, inet_pton.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
|
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
|
||||||
|
|
||||||
#define CYGWIN_VERSION_API_MAJOR 0
|
#define CYGWIN_VERSION_API_MAJOR 0
|
||||||
#define CYGWIN_VERSION_API_MINOR 130
|
#define CYGWIN_VERSION_API_MINOR 131
|
||||||
|
|
||||||
/* There is also a compatibity version number associated with the
|
/* There is also a compatibity version number associated with the
|
||||||
shared memory regions. It is incremented when incompatible
|
shared memory regions. It is incremented when incompatible
|
||||||
|
|
|
@ -2259,3 +2259,49 @@ cygwin_sendmsg (int fd, const struct msghdr *msg, int flags)
|
||||||
syscall_printf ("%d = sendmsg (%d, %p, %x)", res, fd, msg, flags);
|
syscall_printf ("%d = sendmsg (%d, %p, %x)", res, fd, msg, flags);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* See "UNIX Network Programming, Networing APIs: Sockets and XTI",
|
||||||
|
W. Richard Stevens, Prentice Hall PTR, 1998. */
|
||||||
|
extern "C" int
|
||||||
|
cygwin_inet_pton (int family, const char *strptr, void *addrptr)
|
||||||
|
{
|
||||||
|
if (family == AF_INET)
|
||||||
|
{
|
||||||
|
struct in_addr in_val;
|
||||||
|
|
||||||
|
if (cygwin_inet_aton (strptr, &in_val))
|
||||||
|
{
|
||||||
|
memcpy (addrptr, &in_val, sizeof (struct in_addr));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
set_errno (EAFNOSUPPORT);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* See "UNIX Network Programming, Networing APIs: Sockets and XTI",
|
||||||
|
W. Richard Stevens, Prentice Hall PTR, 1998. */
|
||||||
|
extern "C" const char *
|
||||||
|
cygwin_inet_ntop (int family, const void *addrptr, char *strptr, size_t len)
|
||||||
|
{
|
||||||
|
const u_char *p = (const u_char *) addrptr;
|
||||||
|
|
||||||
|
if (__check_null_invalid_struct_errno (strptr, len))
|
||||||
|
return NULL;
|
||||||
|
if (family == AF_INET)
|
||||||
|
{
|
||||||
|
char temp[64]; /* Big enough for 4 ints ... */
|
||||||
|
|
||||||
|
__small_sprintf (temp, "%u.%u.%u.%u", p[0], p[1], p[2], p[3]);
|
||||||
|
if (strlen (temp) >= len)
|
||||||
|
{
|
||||||
|
set_errno (ENOSPC);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
strcpy (strptr, temp);
|
||||||
|
return strptr;
|
||||||
|
}
|
||||||
|
set_errno (EAFNOSUPPORT);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue