#pragma hdrstop
#endif
+#if wxUSE_SOCKETS
+
#ifndef WX_PRECOMP
#endif
#endif // __WINDOWS__
#if defined(__UNIX__)
-
#ifdef VMS
#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>
#include <unistd.h>
#include <netdb.h>
+#ifdef __SUN__
+extern "C"
+{
+ struct hostent *gethostbyname(const char *name);
+ int gethostname(char *name, int namelen);
+};
+#endif
+
#endif // __UNIX__
#include "wx/sckaddr.h"
return FALSE;
if (!name.IsNumber()) {
- if ((theHostent = gethostbyname(name.GetData())) == 0) {
+ if ((theHostent = gethostbyname(name.fn_str())) == 0) {
return FALSE;
}
} else {
#ifdef __WXMAC__
- long len_addr = inet_addr(name.GetData()).s_addr ;
+ long len_addr = inet_addr(name.fn_str()).s_addr ;
#else
- long len_addr = inet_addr(name.GetData());
+ long len_addr = inet_addr(name.fn_str());
#endif
if (len_addr == -1)
return FALSE;
return FALSE;
if (!name.IsNumber()) {
- if ((theServent = getservbyname(name, "tcp")) == 0)
+ if ((theServent = getservbyname(name.fn_str(), "tcp")) == 0)
return FALSE;
} else {
- if ((theServent = getservbyport(atoi(name), "tcp")) == 0) {
- m_addr->sin_port = htons(atoi(name));
+ if ((theServent = getservbyport(wxAtoi(name), "tcp")) == 0) {
+ m_addr->sin_port = htons(wxAtoi(name));
return TRUE;
}
}
h_ent = gethostbyaddr((char *)&(m_addr->sin_addr), sizeof(m_addr->sin_addr),
GetFamily());
- return wxString(h_ent->h_name);
+
+ if (!h_ent)
+ return wxString("");
+ else
+ return wxString(h_ent->h_name);
}
unsigned short wxIPV4address::Service()
void wxUNIXaddress::Filename(const wxString& fname)
{
- sprintf(m_addr->sun_path, "%s", WXSTRINGCAST fname);
+ sprintf(m_addr->sun_path, "%s", MBSTRINGCAST fname.mb_str());
}
wxString wxUNIXaddress::Filename()
*m_addr = *(struct sockaddr_un *)addr;
}
#endif
+
+#endif
+ // wxUSE_SOCKETS