[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r24751 - in gnunet/src: include transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r24751 - in gnunet/src: include transport |
Date: |
Mon, 5 Nov 2012 16:13:04 +0100 |
Author: wachs
Date: 2012-11-05 16:13:04 +0100 (Mon, 05 Nov 2012)
New Revision: 24751
Modified:
gnunet/src/include/gnunet_transport_service.h
gnunet/src/transport/transport_api.c
Log:
- fix for mantis 0002618
Modified: gnunet/src/include/gnunet_transport_service.h
===================================================================
--- gnunet/src/include/gnunet_transport_service.h 2012-11-05 15:06:13 UTC
(rev 24750)
+++ gnunet/src/include/gnunet_transport_service.h 2012-11-05 15:13:04 UTC
(rev 24751)
@@ -164,8 +164,11 @@
*
* @param handle connection to transport service
* @param target who we should try to connect to
+ * @return GNUNET_OK if request can be scheduled
+ * GNUNET_NO please retry later because we are reconnecting
+ * GNUNET_SYSERR on failure
*/
-void
+int
GNUNET_TRANSPORT_try_connect (struct GNUNET_TRANSPORT_Handle *handle,
const struct GNUNET_PeerIdentity *target);
Modified: gnunet/src/transport/transport_api.c
===================================================================
--- gnunet/src/transport/transport_api.c 2012-11-05 15:06:13 UTC (rev
24750)
+++ gnunet/src/transport/transport_api.c 2012-11-05 15:13:04 UTC (rev
24751)
@@ -298,6 +298,11 @@
* (if GNUNET_NO, then 'self' is all zeros!).
*/
int check_self;
+
+ /**
+ * Reconnect in progress
+ */
+ int reconnecting;
};
@@ -987,24 +992,27 @@
return sizeof (struct TransportRequestConnectMessage);
}
-
/**
* Ask the transport service to establish a connection to
* the given peer.
*
* @param handle connection to transport service
* @param target who we should try to connect to
+ * @return GNUNET_OK if request can be scheduled
+ * GNUNET_NO please retry later because we are reconnecting
+ * GNUNET_SYSERR on failure
*/
-void
+int
GNUNET_TRANSPORT_try_connect (struct GNUNET_TRANSPORT_Handle *handle,
const struct GNUNET_PeerIdentity *target)
{
struct GNUNET_PeerIdentity *pid;
if (NULL == handle->client)
{
- /* FIXME: handle->client can be NULL when transport api is reconnecting
*/
- GNUNET_break (0);
- return;
+ if (GNUNET_SCHEDULER_NO_TASK == handle->reconnect_task)
+ return GNUNET_SYSERR; /* this should never happen */
+ else
+ return GNUNET_NO; /* please retry */
}
pid = GNUNET_malloc (sizeof (struct GNUNET_PeerIdentity));
@@ -1012,6 +1020,7 @@
schedule_control_transmit (handle,
sizeof (struct TransportRequestConnectMessage),
&send_try_connect, pid);
+ return GNUNET_OK;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r24751 - in gnunet/src: include transport,
gnunet <=