[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r33719 - gnunet/src/transport,
gnunet <=