diff options
Diffstat (limited to 'src/setup/gnunet-setup-transport-test.c')
-rw-r--r-- | src/setup/gnunet-setup-transport-test.c | 109 |
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 | */ |
68 | static void | 68 | static void |
69 | display_test_result (struct TestContext *tc, | 69 | display_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 | */ |
113 | static void | 112 | static void |
114 | result_callback (void *cls, | 113 | result_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 | */ |
130 | static void | 128 | static void |
131 | fail_timeout (void *cls, | 129 | fail_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 | */ |
150 | void | 147 | void |
151 | GNUNET_setup_transport_test (const char *section_name, | 148 | GNUNET_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 */ |