gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r33719 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r33719 - gnunet/src/transport
Date: Tue, 17 Jun 2014 22:23:42 +0200

Author: grothoff
Date: 2014-06-17 22:23:42 +0200 (Tue, 17 Jun 2014)
New Revision: 33719

Modified:
   gnunet/src/transport/gnunet-helper-transport-bluetooth.c
Log:
-check 'socket' call return value, handle failure

Modified: gnunet/src/transport/gnunet-helper-transport-bluetooth.c
===================================================================
--- gnunet/src/transport/gnunet-helper-transport-bluetooth.c    2014-06-17 
20:20:21 UTC (rev 33718)
+++ gnunet/src/transport/gnunet-helper-transport-bluetooth.c    2014-06-17 
20:23:42 UTC (rev 33719)
@@ -1538,22 +1538,33 @@
         addr_rc.rc_channel = get_channel (dev, addr_rc.rc_bdaddr);
 
         *sendsocket = socket (AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
-        if (connect (*sendsocket, (struct sockaddr *)&addr_rc, sizeof 
(addr_rc)) == 0)
+        if ( (-1 < *sendsocket) &&
+             (0 == connect (*sendsocket,
+                            (struct sockaddr *) &addr_rc,
+                            sizeof (addr_rc))) )
         {
           neighbours.fds[neighbours.pos++] = *sendsocket;
           connection_successful = 1;
           char addr[19] = { 0 };
           ba2str (&(neighbours.devices[neighbours.pos - 1]), addr);
           fprintf (stderr, "LOG : Connected to %s\n", addr);
-
           break;
         }
         else
         {
           char addr[19] = { 0 };
           errno_copy = errno;  //Save a copy for later
+
+          if (-1 != *sendsocket)
+          {
+            (void) close (*sendsocket);
+            *sendsocket = -1;
+          }
           ba2str (&(neighbours.devices[neighbours.pos]), addr);
-          fprintf (stderr, "LOG : Couldn't connect on device %s, error : 
%s\n", addr, strerror(errno));
+          fprintf (stderr,
+                   "LOG : Couldn't connect on device %s, error : %s\n",
+                   addr,
+                   strerror (errno));
           if (errno != ECONNREFUSED) //FIXME be sure that this works
           {
             fprintf (stderr, "LOG : Removes %d device from the list\n", 
neighbours.pos);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]