aboutsummaryrefslogtreecommitdiff
path: root/src/setup/gnunet-setup-transport-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/setup/gnunet-setup-transport-test.c')
-rw-r--r--src/setup/gnunet-setup-transport-test.c109
1 files changed, 48 insertions, 61 deletions
diff --git a/src/setup/gnunet-setup-transport-test.c b/src/setup/gnunet-setup-transport-test.c
index 4bc9c26c..87f8fc9f 100644
--- a/src/setup/gnunet-setup-transport-test.c
+++ b/src/setup/gnunet-setup-transport-test.c
@@ -48,9 +48,9 @@ struct TestContext
48 48
49 /** 49 /**
50 * Name of widget to show on success. 50 * Name of widget to show on success.
51 */ 51 */
52 const char *success_image; 52 const char *success_image;
53 53
54 /** 54 /**
55 * Name of widget to show on failure. 55 * Name of widget to show on failure.
56 */ 56 */
@@ -66,39 +66,38 @@ struct TestContext
66 * @param result GNUNET_YES on success 66 * @param result GNUNET_YES on success
67 */ 67 */
68static void 68static void
69display_test_result (struct TestContext *tc, 69display_test_result (struct TestContext *tc, int result)
70 int result)
71{ 70{
72 GObject *w; 71 GObject *w;
73 72
74 if (GNUNET_YES != result) 73 if (GNUNET_YES != result)
75 { 74 {
76 w = GNUNET_SETUP_get_object (tc->failure_image); 75 w = GNUNET_SETUP_get_object (tc->failure_image);
77 if (NULL != w) 76 if (NULL != w)
78 gtk_widget_show (GTK_WIDGET (w)); 77 gtk_widget_show (GTK_WIDGET (w));
79 w = GNUNET_SETUP_get_object (tc->success_image); 78 w = GNUNET_SETUP_get_object (tc->success_image);
80 if (NULL != w) 79 if (NULL != w)
81 gtk_widget_hide (GTK_WIDGET (w)); 80 gtk_widget_hide (GTK_WIDGET (w));
82 } 81 }
83 else 82 else
84 { 83 {
85 w = GNUNET_SETUP_get_object (tc->failure_image); 84 w = GNUNET_SETUP_get_object (tc->failure_image);
86 if (NULL != w) 85 if (NULL != w)
87 gtk_widget_hide (GTK_WIDGET (w)); 86 gtk_widget_hide (GTK_WIDGET (w));
88 w = GNUNET_SETUP_get_object (tc->success_image); 87 w = GNUNET_SETUP_get_object (tc->success_image);
89 if (NULL != w) 88 if (NULL != w)
90 gtk_widget_show (GTK_WIDGET (w)); 89 gtk_widget_show (GTK_WIDGET (w));
91 } 90 }
92 if (GNUNET_SCHEDULER_NO_TASK != tc->tsk) 91 if (GNUNET_SCHEDULER_NO_TASK != tc->tsk)
93 { 92 {
94 GNUNET_SCHEDULER_cancel (tc->tsk); 93 GNUNET_SCHEDULER_cancel (tc->tsk);
95 tc->tsk = GNUNET_SCHEDULER_NO_TASK; 94 tc->tsk = GNUNET_SCHEDULER_NO_TASK;
96 } 95 }
97 if (NULL != tc->tst) 96 if (NULL != tc->tst)
98 { 97 {
99 GNUNET_NAT_test_stop (tc->tst); 98 GNUNET_NAT_test_stop (tc->tst);
100 tc->tst = NULL; 99 tc->tst = NULL;
101 } 100 }
102 GNUNET_free (tc); 101 GNUNET_free (tc);
103} 102}
104 103
@@ -111,8 +110,7 @@ display_test_result (struct TestContext *tc,
111 * @param success currently always GNUNET_OK 110 * @param success currently always GNUNET_OK
112 */ 111 */
113static void 112static void
114result_callback (void *cls, 113result_callback (void *cls, int success)
115 int success)
116{ 114{
117 struct TestContext *tc = cls; 115 struct TestContext *tc = cls;
118 116
@@ -128,8 +126,7 @@ result_callback (void *cls,
128 * @param tc scheduler callback 126 * @param tc scheduler callback
129 */ 127 */
130static void 128static void
131fail_timeout (void *cls, 129fail_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
132 const struct GNUNET_SCHEDULER_TaskContext *tc)
133{ 130{
134 struct TestContext *tstc = cls; 131 struct TestContext *tstc = cls;
135 132
@@ -148,10 +145,9 @@ fail_timeout (void *cls,
148 * @param failure_image image to show on failure 145 * @param failure_image image to show on failure
149 */ 146 */
150void 147void
151GNUNET_setup_transport_test (const char *section_name, 148GNUNET_setup_transport_test (const char *section_name, int is_tcp,
152 int is_tcp, 149 const char *success_image,
153 const char *success_image, 150 const char *failure_image)
154 const char *failure_image)
155{ 151{
156 struct TestContext *tc; 152 struct TestContext *tc;
157 unsigned long long bnd_port; 153 unsigned long long bnd_port;
@@ -159,19 +155,15 @@ GNUNET_setup_transport_test (const char *section_name,
159 GtkWidget *w; 155 GtkWidget *w;
160 156
161 if (GNUNET_OK != 157 if (GNUNET_OK !=
162 GNUNET_CONFIGURATION_get_value_number (cfg, 158 GNUNET_CONFIGURATION_get_value_number (cfg, section_name, "PORT",
163 section_name, 159 &bnd_port))
164 "PORT", 160 {
165 &bnd_port)) 161 GNUNET_break (0);
166 { 162 return;
167 GNUNET_break (0); 163 }
168 return;
169 }
170 if (GNUNET_OK != 164 if (GNUNET_OK !=
171 GNUNET_CONFIGURATION_get_value_number (cfg, 165 GNUNET_CONFIGURATION_get_value_number (cfg, section_name,
172 section_name, 166 "ADVERTISED_PORT", &adv_port))
173 "ADVERTISED_PORT",
174 &adv_port))
175 adv_port = bnd_port; 167 adv_port = bnd_port;
176 tc = GNUNET_malloc (sizeof (struct TestContext)); 168 tc = GNUNET_malloc (sizeof (struct TestContext));
177 tc->success_image = success_image; 169 tc->success_image = success_image;
@@ -180,20 +172,15 @@ GNUNET_setup_transport_test (const char *section_name,
180 gtk_widget_hide (w); 172 gtk_widget_hide (w);
181 GNUNET_assert (NULL != cfg); 173 GNUNET_assert (NULL != cfg);
182 GNUNET_RESOLVER_connect (cfg); 174 GNUNET_RESOLVER_connect (cfg);
183 tc->tst = GNUNET_NAT_test_start (cfg, 175 tc->tst =
184 is_tcp, 176 GNUNET_NAT_test_start (cfg, is_tcp, (uint16_t) bnd_port,
185 (uint16_t) bnd_port, 177 (uint16_t) adv_port, &result_callback, tc);
186 (uint16_t) adv_port,
187 &result_callback,
188 tc);
189 if (NULL == tc->tst) 178 if (NULL == tc->tst)
190 { 179 {
191 display_test_result (tc, GNUNET_SYSERR); 180 display_test_result (tc, GNUNET_SYSERR);
192 return; 181 return;
193 } 182 }
194 tc->tsk = GNUNET_SCHEDULER_add_delayed (TIMEOUT, 183 tc->tsk = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &fail_timeout, tc);
195 &fail_timeout,
196 tc);
197} 184}
198 185
199/* end of gnunet-setup-transport-test.c */ 186/* end of gnunet-setup-transport-test.c */