aboutsummaryrefslogtreecommitdiff
path: root/src/transport
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-08-11 23:32:53 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-08-11 23:32:53 +0000
commit96c4f70b09d1413e2fedba83b2dcbeba13c9b1f7 (patch)
tree95c39e90930e3e5a725c341093fba98b047beae2 /src/transport
parentcb11932b64344bc9bde5f5163eefdfc059946c9a (diff)
downloadgnunet-96c4f70b09d1413e2fedba83b2dcbeba13c9b1f7.tar.gz
gnunet-96c4f70b09d1413e2fedba83b2dcbeba13c9b1f7.zip
version with connecting peer working
Diffstat (limited to 'src/transport')
-rw-r--r--src/transport/test_transport_testing.c78
-rw-r--r--src/transport/transport-testing.c24
2 files changed, 77 insertions, 25 deletions
diff --git a/src/transport/test_transport_testing.c b/src/transport/test_transport_testing.c
index c67d1b27e..d9789d980 100644
--- a/src/transport/test_transport_testing.c
+++ b/src/transport/test_transport_testing.c
@@ -48,7 +48,44 @@
48 */ 48 */
49#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30) 49#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30)
50 50
51static struct PeerContext * p; 51GNUNET_SCHEDULER_TaskIdentifier timeout_task;
52
53static struct PeerContext * p1;
54static struct PeerContext * p2;
55
56static int connected = GNUNET_NO;
57
58static int ret = 0;
59
60static void
61end ()
62{
63 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n");
64
65 if (timeout_task != GNUNET_SCHEDULER_NO_TASK)
66 GNUNET_SCHEDULER_cancel(timeout_task);
67
68 GNUNET_TRANSPORT_TESTING_stop_peer(p1);
69 GNUNET_TRANSPORT_TESTING_stop_peer(p2);
70}
71
72static void
73end_badly ()
74{
75 timeout_task = GNUNET_SCHEDULER_NO_TASK;
76 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n");
77
78 GNUNET_TRANSPORT_TESTING_stop_peer(p1);
79 GNUNET_TRANSPORT_TESTING_stop_peer(p2);
80
81 ret = GNUNET_SYSERR;
82}
83
84static void
85testing_connect_cb (struct PeerContext * p1, struct PeerContext * p2, void *cls)
86{
87 end();
88}
52 89
53static void 90static void
54notify_connect (void *cls, 91notify_connect (void *cls,
@@ -58,6 +95,10 @@ notify_connect (void *cls,
58{ 95{
59 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' connected \n", 96 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' connected \n",
60 GNUNET_i2s (peer)); 97 GNUNET_i2s (peer));
98 connected++;
99
100 if (connected == 2)
101 end ();
61} 102}
62 103
63static void 104static void
@@ -83,32 +124,43 @@ run (void *cls,
83 char *const *args, 124 char *const *args,
84 const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) 125 const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
85{ 126{
127 timeout_task = GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_MINUTES, &end_badly, NULL);
128
86 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Starting peer\n"); 129 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Starting peer\n");
87 p = GNUNET_TRANSPORT_TESTING_start_peer("test_quota_compliance_tcp_peer1.conf", 130 p1 = GNUNET_TRANSPORT_TESTING_start_peer("test_transport_api_tcp_peer1.conf",
88 &notify_receive, 131 &notify_receive,
89 &notify_connect, 132 &notify_connect,
90 &notify_disconnect, 133 &notify_disconnect,
91 NULL); 134 p1);
92 135
93 if (p != NULL) 136 p2 = GNUNET_TRANSPORT_TESTING_start_peer("test_transport_api_tcp_peer2.conf",
94 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer was successfully started\n"); 137 &notify_receive,
95 else 138 &notify_connect,
96 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer was not started successfully\n"); 139 &notify_disconnect,
97 GNUNET_assert (p != NULL); 140 p2);
98 GNUNET_assert (p->th != NULL);
99 141
100 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peer\n"); 142 if (p1 != NULL)
143 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer1 was successfully started\n");
144 else
145 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer1 was not started successfully\n");
146 GNUNET_assert (p1 != NULL);
147 GNUNET_assert (p1->th != NULL);
101 148
102 GNUNET_TRANSPORT_TESTING_stop_peer(p); 149 if (p2 != NULL)
150 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer2 was successfully started\n");
151 else
152 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer2 was not started successfully\n");
153 GNUNET_assert (p2 != NULL);
154 GNUNET_assert (p2->th != NULL);
103 155
104 156
157 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Connecting peers\n");
158 GNUNET_TRANSPORT_TESTING_connect_peers(p1, p2, NULL, NULL);
105} 159}
106 160
107int 161int
108main (int argc, char *argv[]) 162main (int argc, char *argv[])
109{ 163{
110 int ret = 0;
111
112 GNUNET_log_setup ("test_transport_testing", 164 GNUNET_log_setup ("test_transport_testing",
113#if VERBOSE 165#if VERBOSE
114 "DEBUG", 166 "DEBUG",
diff --git a/src/transport/transport-testing.c b/src/transport/transport-testing.c
index 910d9a6d8..25e173b4a 100644
--- a/src/transport/transport-testing.c
+++ b/src/transport/transport-testing.c
@@ -40,9 +40,6 @@ notify_connect (void *cls,
40 const struct GNUNET_TRANSPORT_ATS_Information *ats, 40 const struct GNUNET_TRANSPORT_ATS_Information *ats,
41 uint32_t ats_count) 41 uint32_t ats_count)
42{ 42{
43 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' connected \n",
44 GNUNET_i2s (peer));
45
46 struct PeerContext * p = cls; 43 struct PeerContext * p = cls;
47 if (p == NULL) 44 if (p == NULL)
48 return; 45 return;
@@ -53,9 +50,6 @@ notify_connect (void *cls,
53static void 50static void
54notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) 51notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer)
55{ 52{
56 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' disconnected \n",
57 GNUNET_i2s (peer));
58
59 struct PeerContext * p = cls; 53 struct PeerContext * p = cls;
60 if (p == NULL) 54 if (p == NULL)
61 return; 55 return;
@@ -70,8 +64,6 @@ notify_receive (void *cls,
70 const struct GNUNET_TRANSPORT_ATS_Information *ats, 64 const struct GNUNET_TRANSPORT_ATS_Information *ats,
71 uint32_t ats_count) 65 uint32_t ats_count)
72{ 66{
73 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Receiving\n");
74
75 struct PeerContext * p = cls; 67 struct PeerContext * p = cls;
76 if (p == NULL) 68 if (p == NULL)
77 return; 69 return;
@@ -97,6 +89,7 @@ exchange_hello_last (void *cls,
97 GNUNET_HELLO_get_id ((const struct GNUNET_HELLO_Message *) 89 GNUNET_HELLO_get_id ((const struct GNUNET_HELLO_Message *)
98 message, &me->id)); 90 message, &me->id));
99 GNUNET_TRANSPORT_offer_hello (p1->th, message, NULL, NULL); 91 GNUNET_TRANSPORT_offer_hello (p1->th, message, NULL, NULL);
92 GNUNET_TRANSPORT_get_hello_cancel (me->th, &exchange_hello_last, cc);
100} 93}
101 94
102 95
@@ -117,6 +110,7 @@ exchange_hello (void *cls,
117 (int) GNUNET_HELLO_size((const struct GNUNET_HELLO_Message *)message), 110 (int) GNUNET_HELLO_size((const struct GNUNET_HELLO_Message *)message),
118 GNUNET_i2s (&me->id)); 111 GNUNET_i2s (&me->id));
119 GNUNET_TRANSPORT_offer_hello (p2->th, message, NULL, NULL); 112 GNUNET_TRANSPORT_offer_hello (p2->th, message, NULL, NULL);
113 GNUNET_TRANSPORT_get_hello_cancel (me->th, &exchange_hello, cc);
120} 114}
121 115
122static void 116static void
@@ -134,9 +128,9 @@ try_connect (void *cls,
134 &p1->id); 128 &p1->id);
135 GNUNET_TRANSPORT_try_connect (p1->th, 129 GNUNET_TRANSPORT_try_connect (p1->th,
136 &p2->id); 130 &p2->id);
137 cc->tct = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, 131// cc->tct = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
138 &try_connect, 132// &try_connect,
139 cc); 133// cc);
140} 134}
141 135
142struct PeerContext * 136struct PeerContext *
@@ -157,7 +151,13 @@ GNUNET_TRANSPORT_TESTING_start_peer (const char * cfgname,
157 GNUNET_DISK_directory_remove (p->servicehome); 151 GNUNET_DISK_directory_remove (p->servicehome);
158 p->arm_proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm", 152 p->arm_proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm",
159 "gnunet-service-arm", 153 "gnunet-service-arm",
160 "-c", cfgname, NULL); 154 "-c", cfgname,
155#if VERBOSE_PEERS
156 "-L", "DEBUG",
157#else
158 "-L", "ERROR",
159#endif
160 NULL);
161 p->nc = nc; 161 p->nc = nc;
162 p->nd = nd; 162 p->nd = nd;
163 p->rec = rec; 163 p->rec = rec;