X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/23e09f1115536813561fded9bd17ee197cf010c7..7482b22003c03f7aa3335aec271b5fcb48e2693d:/src/common/sckaddr.cpp diff --git a/src/common/sckaddr.cpp b/src/common/sckaddr.cpp index 94a2fe6aec..9fa736fdd5 100644 --- a/src/common/sckaddr.cpp +++ b/src/common/sckaddr.cpp @@ -26,11 +26,18 @@ #include <stdio.h> #include <stdlib.h> #include <ctype.h> + +#if !defined(__MWERKS__) && !defined(__SALFORDC__) #include <memory.h> +#endif #include "wx/defs.h" #include "wx/object.h" +#if defined(__WXMAC__) +#include "/wx/mac/macsock.h" +#endif + #if defined(__WINDOWS__) #include <winsock.h> #endif // __WINDOWS__ @@ -41,6 +48,9 @@ #include <socket.h> #include <in.h> #else +#if defined(__FreeBSD__) || defined (__NetBSD__) +#include <sys/types.h> +#endif #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> @@ -105,25 +115,29 @@ const wxSockAddress& wxIPV4address::operator =(const wxSockAddress& addr) bool wxIPV4address::Hostname(const wxString& name) { - struct hostent *hostent; + struct hostent *theHostent; struct in_addr *addr; if (name.IsNull()) return FALSE; if (!name.IsNumber()) { - if ((hostent = gethostbyname(name.GetData())) == 0) { + if ((theHostent = gethostbyname(name.GetData())) == 0) { return FALSE; } } else { +#ifdef __WXMAC__ + long len_addr = inet_addr(name.GetData()).s_addr ; +#else long len_addr = inet_addr(name.GetData()); +#endif if (len_addr == -1) return FALSE; m_addr->sin_addr.s_addr = len_addr; return TRUE; } - addr = (struct in_addr *) *(hostent->h_addr_list); + addr = (struct in_addr *) *(theHostent->h_addr_list); m_addr->sin_addr.s_addr = addr[0].s_addr; return TRUE; @@ -137,22 +151,22 @@ bool wxIPV4address::Hostname(unsigned long addr) bool wxIPV4address::Service(const wxString& name) { - struct servent *servent; + struct servent *theServent; if (name.IsNull()) return FALSE; if (!name.IsNumber()) { - if ((servent = getservbyname(name, "tcp")) == 0) + if ((theServent = getservbyname(name, "tcp")) == 0) return FALSE; } else { - if ((servent = getservbyport(atoi(name), "tcp")) == 0) { + if ((theServent = getservbyport(atoi(name), "tcp")) == 0) { m_addr->sin_port = htons(atoi(name)); return TRUE; } } - m_addr->sin_port = servent->s_port; + m_addr->sin_port = theServent->s_port; return TRUE; } @@ -241,7 +255,7 @@ const wxSockAddress& wxIPV6address::operator =(const wxSockAddress& addr) bool wxIPV6address::Hostname(const wxString& name) { - struct hostent *hostent; + struct hostent *theHostent; struct in_addr *addr; if (name.IsNull()) @@ -249,14 +263,14 @@ bool wxIPV6address::Hostname(const wxString& name) if (!name.IsNumber()) { hostent = gethostbyname2((char*) name, AF_INET6); - if (!hostent) + if (!theHostent) return FALSE; } else { // Don't how to do return FALSE; } - addr = (struct in6_addr *) *(hostent->h_addr_list); + addr = (struct in6_addr *) *(theHostent->h_addr_list); m_addr->sin6_addr.s6_addr = addr[0].s6_addr; return TRUE; @@ -270,22 +284,22 @@ bool wxIPV6address::Hostname(unsigned char addr[16]) bool wxIPV6address::Service(const char *name) { - struct servent *servent; + struct servent *theServent; if (!name || !strlen(name)) return FALSE; if (!isdigit(*name)) { - if ((servent = getservbyname((char*) name, "tcp")) == 0) + if ((theServent = getservbyname((char*) name, "tcp")) == 0) return FALSE; } else { - if ((servent = getservbyport(atoi(name), "tcp")) == 0) { + if ((theServent = getservbyport(atoi(name), "tcp")) == 0) { m_addr->sin_port = htons(atoi(name)); return TRUE; } } - m_addr->sin_port = servent->s_port; + m_addr->sin_port = theServent->s_port; return TRUE; }