* dbus/dbus-sysdeps-win.c, dbus/dbus-sysdeps-spawn-win.c, dbus/dbus-sysdeps-win.h...
authorRalf Habacker <ralf.habacker@freenet.de>
Tue, 19 Jun 2007 20:04:34 +0000 (20:04 +0000)
committerRalf Habacker <ralf.habacker@freenet.de>
Tue, 19 Jun 2007 20:04:34 +0000 (20:04 +0000)
ChangeLog
dbus/dbus-spawn-win.c
dbus/dbus-sysdeps-win.c
dbus/dbus-sysdeps-win.h

index 749d4e4..ea04e26 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-06-19  Ralf Habacker  <ralf.habacker@freenet.de>
+
+       * dbus/dbus-sysdeps-win.c, dbus/dbus-sysdeps-spawn-win.c, 
+       dbus/dbus-sysdeps-win.h: disabled DBusSocket implementation
+       Patch by Peter Kuemmel 
+
 2007-06-18  Ralf Habacker  <ralf.habacker@freenet.de>
 
        * dbus-win.patch: removed obsolate patches
index 4e2365a..138db6c 100644 (file)
@@ -444,7 +444,11 @@ static unsigned __stdcall
 babysitter (void *parameter)
 {
   DBusBabysitter *sitter = (DBusBabysitter *) parameter;
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket *sock;
+#else
+  int fd;
+#endif
   PING();
   _dbus_babysitter_ref (sitter);
 
@@ -499,8 +503,12 @@ babysitter (void *parameter)
 #endif
 
   PING();
+#ifdef ENABLE_DBUSSOCKET
   _dbus_handle_to_socket (sitter->socket_to_main, &sock);
   send (sock->fd, " ", 1, 0);
+#else
+  send (sitter->socket_to_main, " ", 1, 0);
+#endif
 
   _dbus_babysitter_unref (sitter);
 
index 80a1793..166e432 100644 (file)
@@ -69,7 +69,10 @@ struct DBusCredentials{
 #define socklen_t int
 #endif
 
+#ifdef ENABLE_DBUSSOCKET
 _DBUS_DEFINE_GLOBAL_LOCK (win_fds);
+#endif
+
 _DBUS_DEFINE_GLOBAL_LOCK (sid_atom_cache);
 
 #ifdef ENABLE_DBUSUSERINFO
@@ -83,6 +86,7 @@ typedef struct {
 } DBusUserInfo;
 #endif
 
+#ifdef ENABLE_DBUSSOCKET
 static
 void 
 _dbus_lock_sockets()
@@ -98,6 +102,7 @@ _dbus_unlock_sockets()
        _dbus_assert (win_fds!=0); 
        _DBUS_UNLOCK (win_fds);
 }
+#endif
 
 #ifdef _DBUS_WIN_USE_RANDOMIZER
 static int  win_encap_randomizer;
@@ -346,9 +351,11 @@ _dbus_pipe_close  (DBusPipe         *pipe,
  *
  */
 
+#ifdef ENABLE_DBUSSOCKET
 static DBusSocket *win_fds = NULL;
 static int win_n_fds = 0; // is this the size? rename to win_fds_size? #
 
+
 #if 0
 #define TO_HANDLE(n)   ((n)^win32_encap_randomizer)
 #define FROM_HANDLE(n) ((n)^win32_encap_randomizer)
@@ -535,6 +542,7 @@ _dbus_handle_to_socket (int          handle,
   _dbus_unlock_sockets();
 }
 
+
 #undef TO_HANDLE
 #undef IS_HANDLE
 #undef FROM_HANDLE
@@ -542,7 +550,7 @@ _dbus_handle_to_socket (int          handle,
 #define win_fds 1==DBUS_WIN_DONT_USE_win_fds_DIRECTLY
 
 
-
+#endif
 
 /**
  * Thin wrapper around the read() system call that appends
@@ -562,7 +570,9 @@ _dbus_read_socket (int               handle,
                    DBusString       *buffer,
                    int               count)
 {
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket *s;
+#endif
   int bytes_read;
   int start;
   char *data;
@@ -579,12 +589,19 @@ _dbus_read_socket (int               handle,
 
   data = _dbus_string_get_data_len (buffer, start, count);
 
+#ifdef ENABLE_DBUSSOCKET
   _dbus_handle_to_socket(handle, &s);
 
   if(s->is_used)
     {
       _dbus_verbose ("recv: count=%d socket=%d\n", count, s->fd);
       bytes_read = recv (s->fd, data, count, 0);
+#else
+       if(1)
+    {
+      _dbus_verbose ("recv: count=%d socket=%d\n", count, handle);
+      bytes_read = recv (handle, data, count, 0);
+#endif
       if (bytes_read == SOCKET_ERROR)
         {
           DBUS_SOCKET_SET_ERRNO();
@@ -636,19 +653,28 @@ _dbus_write_socket (int               handle,
                     int               start,
                     int               len)
 {
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket *s;
+#endif
   int is_used;
   const char *data;
   int bytes_written;
 
   data = _dbus_string_get_const_data_len (buffer, start, len);
 
+#ifdef ENABLE_DBUSSOCKET
   _dbus_handle_to_socket(handle, &s);
 
   if (s->is_used)
     {
       _dbus_verbose ("send: len=%d socket=%d\n", len, s->fd);
       bytes_written = send (s->fd, data, len, 0);
+#else
+  if (1)
+    {
+      _dbus_verbose ("send: len=%d socket=%d\n", len, handle);
+         bytes_written = send (handle, data, len, 0);
+#endif
       if (bytes_written == SOCKET_ERROR)
         {
           DBUS_SOCKET_SET_ERRNO();
@@ -683,6 +709,7 @@ dbus_bool_t
 _dbus_close_socket (int        handle,
                     DBusError *error)
 {
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket *s;
 
   _DBUS_ASSERT_ERROR_IS_CLEAR (error);
@@ -726,6 +753,32 @@ _dbus_close_socket (int        handle,
 
   return TRUE;
 
+#else
+
+  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+
+  if (1)
+    {
+      if (closesocket (handle) == SOCKET_ERROR)
+        {
+          DBUS_SOCKET_SET_ERRNO ();
+          dbus_set_error (error, _dbus_error_from_errno (errno),
+              "Could not close socket: socket=%d, , %s",
+                          handle, _dbus_strerror (errno));
+          return FALSE;
+        }
+      _dbus_verbose ("_dbus_close_socket: socket=%d, \n",
+                     handle);
+    }
+  else
+    {
+      _dbus_assert_not_reached ("unhandled fd type");
+    }
+
+  return TRUE;
+#endif
+
 }
 
 /**
@@ -738,6 +791,7 @@ _dbus_close_socket (int        handle,
 void
 _dbus_fd_set_close_on_exec (int handle)
 {
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket *s;
   if (handle < 0)
     return;
@@ -748,6 +802,20 @@ _dbus_fd_set_close_on_exec (int handle)
   s->close_on_exec = TRUE;
 
   _dbus_unlock_sockets();
+#else
+  /* TODO unic code.
+  int val;
+  
+  val = fcntl (fd, F_GETFD, 0);
+  
+  if (val < 0)
+    return;
+
+  val |= FD_CLOEXEC;
+  
+  fcntl (fd, F_SETFD, val);
+  */
+#endif
 }
 
 /**
@@ -761,6 +829,7 @@ dbus_bool_t
 _dbus_set_fd_nonblocking (int             handle,
                           DBusError      *error)
 {
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket *s;
   u_long one = 1;
 
@@ -789,6 +858,27 @@ _dbus_set_fd_nonblocking (int             handle,
   _dbus_unlock_sockets();
 
   return TRUE;
+#else
+  u_long one = 1;
+
+  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+  if (1)
+    {
+      if (ioctlsocket (handle, FIONBIO, &one) == SOCKET_ERROR)
+        {
+          dbus_set_error (error, _dbus_error_from_errno (WSAGetLastError ()),
+                          "Failed to set socket %d:%d to nonblocking: %s", handle,
+                          _dbus_strerror (WSAGetLastError ()));
+          return FALSE;
+        }
+    }
+  else
+    {
+      _dbus_assert_not_reached ("unhandled fd type");
+    }
+  return TRUE;
+#endif
 }
 
 
@@ -821,6 +911,7 @@ _dbus_write_socket_two (int               handle,
                         int               start2,
                         int               len2)
 {
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket *s;
   WSABUF vectors[2];
   const char *data1;
@@ -873,6 +964,58 @@ _dbus_write_socket_two (int               handle,
       _dbus_assert_not_reached ("unhandled fd type");
     }
   return 0;
+#else
+  WSABUF vectors[2];
+  const char *data1;
+  const char *data2;
+  int rc;
+  DWORD bytes_written;
+  int ret1;
+
+  _dbus_assert (buffer1 != NULL);
+  _dbus_assert (start1 >= 0);
+  _dbus_assert (start2 >= 0);
+  _dbus_assert (len1 >= 0);
+  _dbus_assert (len2 >= 0);
+
+
+  data1 = _dbus_string_get_const_data_len (buffer1, start1, len1);
+
+  if (buffer2 != NULL)
+    data2 = _dbus_string_get_const_data_len (buffer2, start2, len2);
+  else
+    {
+      data2 = NULL;
+      start2 = 0;
+      len2 = 0;
+    }
+
+  if (1)
+    {
+      vectors[0].buf = (char*) data1;
+      vectors[0].len = len1;
+      vectors[1].buf = (char*) data2;
+      vectors[1].len = len2;
+
+      _dbus_verbose ("WSASend: len1+2=%d+%d socket=%d\n", len1, len2, handle);
+      rc = WSASend (handle, vectors, data2 ? 2 : 1, &bytes_written,
+                    0, NULL, NULL);
+      if (rc < 0)
+        {
+          DBUS_SOCKET_SET_ERRNO ();
+          _dbus_verbose ("WSASend: failed: %s\n", _dbus_strerror (errno));
+          bytes_written = -1;
+        }
+      else
+        _dbus_verbose ("WSASend: = %ld\n", bytes_written);
+      return bytes_written;
+    }
+  else
+    {
+      _dbus_assert_not_reached ("unhandled fd type");
+    }
+  return 0;
+#endif
 }
 
 #if 0
@@ -1810,7 +1953,9 @@ _dbus_full_duplex_pipe (int        *fd1,
   u_long arg;
   fd_set read_set, write_set;
   struct timeval tv;
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket sock;
+#endif
 
 
   _dbus_win_startup_winsock ();
@@ -1935,10 +2080,15 @@ _dbus_full_duplex_pipe (int        *fd1,
         }
     }
 
+#ifdef ENABLE_DBUSSOCKET
   sock.fd = socket1;
   *fd1 = _dbus_socket_to_handle (&sock);
   sock.fd = socket2;
   *fd2 = _dbus_socket_to_handle (&sock);
+#else
+  *fd1 = socket1;
+  *fd2 = socket2;
+#endif
 
   _dbus_verbose ("full-duplex pipe %d:%d <-> %d:%d\n",
                  *fd1, socket1, *fd2, socket2);
@@ -2139,6 +2289,8 @@ _dbus_poll (DBusPollFD *fds,
 
 #else   // USE_CHRIS_IMPL
 
+#ifdef ENABLE_DBUSSOCKET
+
 int
 _dbus_poll (DBusPollFD *fds,
             int         n_fds,
@@ -2282,6 +2434,139 @@ _dbus_poll (DBusPollFD *fds,
       }
   return ready;
 }
+#else // ENABLE_DBUSSOCKET
+
+int
+_dbus_poll (DBusPollFD *fds,
+            int         n_fds,
+            int         timeout_milliseconds)
+{
+#define DBUS_POLL_CHAR_BUFFER_SIZE 2000
+  char msg[DBUS_POLL_CHAR_BUFFER_SIZE];
+  char *msgp;
+
+  fd_set read_set, write_set, err_set;
+  int max_fd = 0;
+  int i;
+  struct timeval tv;
+  int ready;
+
+  FD_ZERO (&read_set);
+  FD_ZERO (&write_set);
+  FD_ZERO (&err_set);
+
+
+#ifdef DBUS_ENABLE_VERBOSE_MODE
+  msgp = msg;
+  msgp += sprintf (msgp, "select: to=%d\n\t", timeout_milliseconds);
+  for (i = 0; i < n_fds; i++)
+    {
+      static dbus_bool_t warned = FALSE;
+      int fd;
+      DBusPollFD *fdp = &fds[i];
+      fd = fdp->fd;  
+
+
+      if (fdp->events & _DBUS_POLLIN)
+        msgp += sprintf (msgp, "R:%d ", fd);
+
+      if (fdp->events & _DBUS_POLLOUT)
+        msgp += sprintf (msgp, "W:%d ", fd);
+
+      msgp += sprintf (msgp, "E:%d\n\t", fd);
+
+      // FIXME: more robust code for long  msg
+      //        create on heap when msg[] becomes too small
+      if (msgp >= msg + DBUS_POLL_CHAR_BUFFER_SIZE)
+        {
+          _dbus_assert_not_reached ("buffer overflow in _dbus_poll");
+        }
+    }
+
+  msgp += sprintf (msgp, "\n");
+  _dbus_verbose ("%s",msg);
+#endif
+  for (i = 0; i < n_fds; i++)
+    {
+        int fd;
+      DBusPollFD *fdp = &fds[i];
+      fd = fdp->fd;  
+
+      if (fdp->events & _DBUS_POLLIN)
+        FD_SET (fd, &read_set);
+
+      if (fdp->events & _DBUS_POLLOUT)
+        FD_SET (fd, &write_set);
+
+      FD_SET (fd, &err_set);
+
+      max_fd = MAX (max_fd, fd);
+    }
+
+
+  tv.tv_sec = timeout_milliseconds / 1000;
+  tv.tv_usec = (timeout_milliseconds % 1000) * 1000;
+
+  ready = select (max_fd + 1, &read_set, &write_set, &err_set,
+                  timeout_milliseconds < 0 ? NULL : &tv);
+
+  if (DBUS_SOCKET_API_RETURNS_ERROR (ready))
+    {
+      DBUS_SOCKET_SET_ERRNO ();
+      if (errno != EWOULDBLOCK)
+        _dbus_verbose ("select: failed: %s\n", _dbus_strerror (errno));
+    }
+  else if (ready == 0)
+    _dbus_verbose ("select: = 0\n");
+  else
+    if (ready > 0)
+      {
+#ifdef DBUS_ENABLE_VERBOSE_MODE
+        msgp = msg;
+        msgp += sprintf (msgp, "select: = %d:\n\t", ready);
+
+        for (i = 0; i < n_fds; i++)
+          {
+            int fd;
+            DBusPollFD *fdp = &fds[i];
+            fd = fdp->fd;  
+
+            if (FD_ISSET (fd, &read_set))
+              msgp += sprintf (msgp, "R:%d ", fd);
+
+            if (FD_ISSET (fd, &write_set))
+              msgp += sprintf (msgp, "W:%d ", fd);
+
+            if (FD_ISSET (fd, &err_set))
+              msgp += sprintf (msgp, "E:%d\n\t", fd);
+          }
+        msgp += sprintf (msgp, "\n");
+        _dbus_verbose ("%s",msg);
+#endif
+
+        for (i = 0; i < n_fds; i++)
+          {
+            int fd;
+            DBusPollFD *fdp = &fds[i];
+            fd = fdp->fd;  
+
+            fdp->revents = 0;
+
+            if (FD_ISSET (fd, &read_set))
+              fdp->revents |= _DBUS_POLLIN;
+
+            if (FD_ISSET (fd, &write_set))
+              fdp->revents |= _DBUS_POLLOUT;
+
+            if (FD_ISSET (fd, &err_set))
+              fdp->revents |= _DBUS_POLLERR;
+          }
+      }
+  return ready;
+}
+
+#endif  //ENABLE_DBUSSOCKET
+
 #endif  // USE_CHRIS_IMPL
 
 
@@ -3199,6 +3484,7 @@ _dbus_connect_tcp_socket (const char     *host,
                           dbus_uint32_t   port,
                           DBusError      *error)
 {
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket s;
   int handle;
   struct sockaddr_in addr;
@@ -3275,6 +3561,81 @@ _dbus_connect_tcp_socket (const char     *host,
     }
 
   return handle;
+#else
+  int fd;
+  struct sockaddr_in addr;
+  struct hostent *he;
+  struct in_addr *haddr;
+  struct in_addr ina;
+
+  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+  _dbus_win_startup_winsock ();
+
+  fd = socket (AF_INET, SOCK_STREAM, 0);
+
+  if (DBUS_SOCKET_IS_INVALID (fd))
+    {
+      DBUS_SOCKET_SET_ERRNO ();
+      dbus_set_error (error,
+                      _dbus_error_from_errno (errno),
+                      "Failed to create socket: %s",
+                      _dbus_strerror (errno));
+
+      return -1;
+    }
+
+  if (host == NULL)
+    {
+      host = "localhost";
+      ina.s_addr = htonl (INADDR_LOOPBACK);
+      haddr = &ina;
+    }
+
+  he = gethostbyname (host);
+  if (he == NULL)
+    {
+      DBUS_SOCKET_SET_ERRNO ();
+      dbus_set_error (error,
+                      _dbus_error_from_errno (errno),
+                      "Failed to lookup hostname: %s",
+                      host);
+      DBUS_CLOSE_SOCKET (fd);
+      return -1;
+    }
+
+  haddr = ((struct in_addr *) (he->h_addr_list)[0]);
+
+  _DBUS_ZERO (addr);
+  memcpy (&addr.sin_addr, haddr, sizeof(struct in_addr));
+  addr.sin_family = AF_INET;
+  addr.sin_port = htons (port);
+
+  if (DBUS_SOCKET_API_RETURNS_ERROR
+      (connect (fd, (struct sockaddr*) &addr, sizeof (addr)) < 0))
+    {
+      DBUS_SOCKET_SET_ERRNO ();
+      dbus_set_error (error,
+                      _dbus_error_from_errno (errno),
+                      "Failed to connect to socket %s:%d %s",
+                      host, port, _dbus_strerror (errno));
+
+      DBUS_CLOSE_SOCKET (fd);
+      fd = -1;
+
+      return -1;
+    }
+
+  if (!_dbus_set_fd_nonblocking (fd, error))
+    {
+      _dbus_close_socket (fd, NULL);
+      fd = -1;
+
+      return -1;
+    }
+
+  return fd;
+#endif
 }
 
 void
@@ -3298,6 +3659,7 @@ _dbus_listen_tcp_socket (const char     *host,
                          dbus_bool_t     inaddr_any,
                          DBusError      *error)
 {
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket slisten;
   int handle;
   struct sockaddr_in addr;
@@ -3388,8 +3750,98 @@ _dbus_listen_tcp_socket (const char     *host,
     }
 
   return handle;
+#else
+  int fd;
+  struct sockaddr_in addr;
+  struct hostent *he;
+  struct in_addr *haddr;
+  socklen_t len = (socklen_t) sizeof (struct sockaddr);
+  struct in_addr ina;
+
+
+  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+  _dbus_win_startup_winsock ();
+
+  fd = socket (AF_INET, SOCK_STREAM, 0);
+
+  if (DBUS_SOCKET_IS_INVALID (fd))
+    {
+      DBUS_SOCKET_SET_ERRNO ();
+      dbus_set_error (error, _dbus_error_from_errno (errno),
+                      "Failed to create socket \"%s:%d\": %s",
+                      host, port, _dbus_strerror (errno));
+      return -1;
+    }
+  if (host == NULL)
+    {
+      host = "localhost";
+      ina.s_addr = htonl (INADDR_LOOPBACK);
+      haddr = &ina;
+    }
+  else if (!host[0])
+    {
+      ina.s_addr = htonl (INADDR_ANY);
+      haddr = &ina;
+    }
+  else
+    {
+      he = gethostbyname (host);
+      if (he == NULL)
+        {
+          DBUS_SOCKET_SET_ERRNO ();
+          dbus_set_error (error,
+                          _dbus_error_from_errno (errno),
+                          "Failed to lookup hostname: %s",
+                          host);
+          DBUS_CLOSE_SOCKET (fd);
+          return -1;
+        }
+
+      haddr = ((struct in_addr *) (he->h_addr_list)[0]);
+    }
+
+  _DBUS_ZERO (addr);
+  memcpy (&addr.sin_addr, haddr, sizeof (struct in_addr));
+  addr.sin_family = AF_INET;
+  addr.sin_port = htons (*port);
+
+  if (bind (fd, (struct sockaddr*) &addr, sizeof (struct sockaddr)))
+    {
+      DBUS_SOCKET_SET_ERRNO ();
+      dbus_set_error (error, _dbus_error_from_errno (errno),
+                      "Failed to bind socket \"%s:%d\": %s",
+                      host, *port, _dbus_strerror (errno));
+      DBUS_CLOSE_SOCKET (fd);
+      return -1;
+    }
+
+  if (DBUS_SOCKET_API_RETURNS_ERROR (listen (fd, 30 /* backlog */)))
+    {
+      DBUS_SOCKET_SET_ERRNO ();
+      dbus_set_error (error, _dbus_error_from_errno (errno),
+                      "Failed to listen on socket \"%s:%d\": %s",
+                      host, *port, _dbus_strerror (errno));
+      DBUS_CLOSE_SOCKET (fd);
+      return -1;
+    }
+
+  getsockname(fd, (struct sockaddr*) &addr, &len);
+  *port = (dbus_uint32_t) ntohs(addr.sin_port);
+  
+  _dbus_daemon_init(host, ntohs(addr.sin_port));
+
+  if (!_dbus_set_fd_nonblocking (fd, error))
+    {
+      _dbus_close_socket (fd, NULL);
+      return -1;
+    }
+
+  return fd;
+#endif
 }
 
+
 /**
  * Accepts a connection on a listening socket.
  * Handles EINTR for you.
@@ -3400,6 +3852,7 @@ _dbus_listen_tcp_socket (const char     *host,
 int
 _dbus_accept  (int listen_handle)
 {
+#ifdef ENABLE_DBUSSOCKET
   DBusSocket *slisten;
   DBusSocket sclient;
   struct sockaddr addr;
@@ -3428,10 +3881,41 @@ retry:
     }
 
   return _dbus_socket_to_handle (&sclient);
+#else
+  int fd;
+  int sclient;
+  struct sockaddr addr;
+  socklen_t addrlen;
+
+  fd = listen_handle;
+
+  addrlen = sizeof (addr);
+
+  //FIXME:  why do we not try it again on Windows?
+#if !defined(DBUS_WIN) && !defined(DBUS_WINCE)
+retry:
+#endif
+
+  sclient = accept (fd, &addr, &addrlen);
+
+  if (DBUS_SOCKET_IS_INVALID (sclient))
+    {
+      DBUS_SOCKET_SET_ERRNO ();
+#if !defined(DBUS_WIN) && !defined(DBUS_WINCE)
+      if (errno == EINTR)
+        goto retry;
+#else
+      return -1;
+#endif
+    }
+
+  return sclient;
+#endif
 }
 
 
 
+
 dbus_bool_t
 _dbus_send_credentials_socket (int            handle,
                         DBusError      *error)
index 4c4d0e8..16dc5ab 100644 (file)
@@ -56,6 +56,10 @@ extern BOOL WINAPI ConvertSidToStringSidA (PSID Sid, LPSTR *StringSid);
 
 #define DBUS_CONSOLE_DIR "/var/run/console/"
 
+
+//#define ENABLE_DBUSSOCKET
+
+#ifdef ENABLE_DBUSSOCKET
 typedef struct
   {
     int fd;               /* File descriptor, SOCKET or file HANDLE */
@@ -71,6 +75,7 @@ DBusSocket;
 
 extern DBusSocket *win_fds;
 extern int win32_n_fds;
+#endif
 
 
 void _dbus_win_startup_winsock (void);
@@ -157,14 +162,18 @@ struct DBusFile
     int FDATA;
   };
 
-
+#ifdef ENABLE_DBUSSOCKET
 void _dbus_handle_to_socket (int          handle,
                              DBusSocket **socket);
 int  _dbus_socket_to_handle (DBusSocket  *socket);
+#endif
+
 
 dbus_bool_t _dbus_get_config_file_name(DBusString *config_file, 
                                        char *s);
 
+
+
 #endif
 
 /** @} end of sysdeps-win.h */