]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/gsocket.c
Committing in .
[wxWidgets.git] / src / unix / gsocket.c
index 81d56e818fd4f1cdce4a11f4b535c6d77cf78f11..85a38c699f63e7be550c976e24a5c2663d320272 100644 (file)
@@ -25,7 +25,8 @@
 
 #ifdef __VMS__
 #include <socket.h>
-struct sockaddr_un {
+struct sockaddr_un
+{
     u_char  sun_len;        /* sockaddr len including null */
     u_char  sun_family;     /* AF_UNIX */
     char    sun_path[108];  /* path name (gag) */
@@ -122,9 +123,9 @@ struct sockaddr_un {
 
 /* Global initialisers */
 
-bool GSocket_Init(void)
+int GSocket_Init(void)
 {
-  return TRUE;
+  return 1;
 }
 
 void GSocket_Cleanup(void)
@@ -350,7 +351,6 @@ GAddress *GSocket_GetPeer(GSocket *socket)
  */
 GSocketError GSocket_SetServer(GSocket *sck)
 {
-  int type;
   int arg = 1;
 
   assert(sck != NULL);
@@ -895,7 +895,7 @@ GSocketEventFlags GSocket_Select(GSocket *socket, GSocketEventFlags flags)
  *  Sets the socket to non-blocking mode. All IO calls will return
  *  immediately.
  */
-void GSocket_SetNonBlocking(GSocket *socket, bool non_block)
+void GSocket_SetNonBlocking(GSocket *socket, int non_block)
 {
   assert(socket != NULL);
 
@@ -1499,7 +1499,9 @@ GSocketError GAddress_INET_SetPortName(GAddress *address, const char *port,
   se = getservbyname(port, protocol);
   if (!se)
   {
-    if (isdigit(port[0]))
+    /* the cast to int suppresses compiler warnings about subscript having the
+       type char */
+    if (isdigit((int)port[0]))
     {
       int port_int;
 
@@ -1603,6 +1605,8 @@ GSocketError _GAddress_Init_UNIX(GAddress *address)
   return GSOCK_NOERROR;
 }
 
+#define UNIX_SOCK_PATHLEN (sizeof(addr->sun_path)/sizeof(addr->sun_path[0]))
+
 GSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path)
 {
   struct sockaddr_un *addr;
@@ -1612,7 +1616,8 @@ GSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path)
   CHECK_ADDRESS(address, UNIX); 
 
   addr = ((struct sockaddr_un *)address->m_addr);
-  memcpy(addr->sun_path, path, strlen(path));
+  strncpy(addr->sun_path, path, UNIX_SOCK_PATHLEN);
+  addr->sun_path[UNIX_SOCK_PATHLEN - 1] = '\0';
 
   return GSOCK_NOERROR;
 }