[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r15873 - gnunet/src/nat
From: |
gnunet |
Subject: |
[GNUnet-SVN] r15873 - gnunet/src/nat |
Date: |
Thu, 7 Jul 2011 16:15:31 +0200 |
Author: grothoff
Date: 2011-07-07 16:15:31 +0200 (Thu, 07 Jul 2011)
New Revision: 15873
Modified:
gnunet/src/nat/nat_test.c
Log:
udp fixes
Modified: gnunet/src/nat/nat_test.c
===================================================================
--- gnunet/src/nat/nat_test.c 2011-07-07 14:15:20 UTC (rev 15872)
+++ gnunet/src/nat/nat_test.c 2011-07-07 14:15:31 UTC (rev 15873)
@@ -196,6 +196,44 @@
* @param tc scheduler context
*/
static void
+do_udp_read (void *cls,
+ const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ struct GNUNET_NAT_Test *tst = cls;
+ uint16_t data;
+
+ tst->ltask = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
+ tst->lsock,
+ &do_udp_read,
+ tst);
+ if ( (NULL != tc->write_ready) &&
+ (GNUNET_NETWORK_fdset_isset (tc->read_ready,
+ tst->lsock)) &&
+ (sizeof (data) ==
+ GNUNET_NETWORK_socket_recv (tst->lsock,
+ &data,
+ sizeof (data))) )
+ {
+ if (data == tst->data)
+ tst->report (tst->report_cls, GNUNET_OK);
+ else
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Received data mismatches expected value\n");
+ }
+ else
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Failed to receive data from inbound connection\n");
+}
+
+
+/**
+ * Activity on our incoming socket. Read data from the
+ * incoming connection.
+ *
+ * @param cls the 'struct NatActivity'
+ * @param tc scheduler context
+ */
+static void
do_read (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc)
{
@@ -375,7 +413,9 @@
else
{
ret->lsock = GNUNET_NETWORK_socket_create (AF_INET,
- (is_tcp==GNUNET_YES) ?
SOCK_STREAM : SOCK_DGRAM, 0);
+ (is_tcp==GNUNET_YES)
+ ? SOCK_STREAM
+ : SOCK_DGRAM, 0);
if ( (ret->lsock == NULL) ||
(GNUNET_OK != GNUNET_NETWORK_socket_bind (ret->lsock,
(const struct sockaddr*)
&sa,
@@ -388,12 +428,22 @@
GNUNET_free (ret);
return NULL;
}
- GNUNET_break (GNUNET_OK ==
- GNUNET_NETWORK_socket_listen (ret->lsock, 5));
- ret->ltask = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
- ret->lsock,
- &do_accept,
- ret);
+ if (GNUNET_YES == is_tcp)
+ {
+ GNUNET_break (GNUNET_OK ==
+ GNUNET_NETWORK_socket_listen (ret->lsock, 5));
+ ret->ltask = GNUNET_SCHEDULER_add_read_net
(GNUNET_TIME_UNIT_FOREVER_REL,
+ ret->lsock,
+ &do_accept,
+ ret);
+ }
+ else
+ {
+ ret->ltask = GNUNET_SCHEDULER_add_read_net
(GNUNET_TIME_UNIT_FOREVER_REL,
+ ret->lsock,
+ &do_udp_read,
+ ret);
+ }
ret->nat = GNUNET_NAT_register (cfg, is_tcp,
adv_port,
1, addrs, addrlens,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r15873 - gnunet/src/nat,
gnunet <=