diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-05-07 09:42:24 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-05-07 09:42:24 +0000 |
commit | 3d6353b9601e966a7aedd294beb8b78363911bb2 (patch) | |
tree | 2ede39bdc6415c4d829f985cd251aa8469128e8c /src/arm/test_arm_api.c | |
parent | cd6145855d32f8fdb54db5696667ca17997d321f (diff) | |
download | gnunet-3d6353b9601e966a7aedd294beb8b78363911bb2.tar.gz gnunet-3d6353b9601e966a7aedd294beb8b78363911bb2.zip |
make error more robust
Diffstat (limited to 'src/arm/test_arm_api.c')
-rw-r--r-- | src/arm/test_arm_api.c | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/src/arm/test_arm_api.c b/src/arm/test_arm_api.c index 7fab89ca7..66201aebe 100644 --- a/src/arm/test_arm_api.c +++ b/src/arm/test_arm_api.c | |||
@@ -49,9 +49,9 @@ static int ok = 1; | |||
49 | static void | 49 | static void |
50 | arm_stopped (void *cls, int success) | 50 | arm_stopped (void *cls, int success) |
51 | { | 51 | { |
52 | if (success != GNUNET_NO) | 52 | if (success != GNUNET_NO) |
53 | ok = 1; | 53 | ok = 3; |
54 | else | 54 | else if (ok == 1) |
55 | ok = 0; | 55 | ok = 0; |
56 | } | 56 | } |
57 | 57 | ||
@@ -70,7 +70,11 @@ dns_notify (void *cls, const struct sockaddr *addr, socklen_t addrlen) | |||
70 | { | 70 | { |
71 | if (addr == NULL) | 71 | if (addr == NULL) |
72 | { | 72 | { |
73 | GNUNET_assert (ok == 0); | 73 | if (ok != 0) |
74 | { | ||
75 | GNUNET_break (0); | ||
76 | ok = 2; | ||
77 | } | ||
74 | GNUNET_ARM_stop_service (arm, "resolver", TIMEOUT, &arm_notify_stop, NULL); | 78 | GNUNET_ARM_stop_service (arm, "resolver", TIMEOUT, &arm_notify_stop, NULL); |
75 | return; | 79 | return; |
76 | } | 80 | } |
@@ -82,7 +86,15 @@ dns_notify (void *cls, const struct sockaddr *addr, socklen_t addrlen) | |||
82 | static void | 86 | static void |
83 | resolver_notify (void *cls, int success) | 87 | resolver_notify (void *cls, int success) |
84 | { | 88 | { |
85 | GNUNET_assert (success == GNUNET_YES); | 89 | if (success != GNUNET_YES) |
90 | { | ||
91 | GNUNET_break (0); | ||
92 | ok = 2; | ||
93 | #if START_ARM | ||
94 | GNUNET_ARM_stop_service (arm, "arm", TIMEOUT, &arm_stopped, NULL); | ||
95 | #endif | ||
96 | return; | ||
97 | } | ||
86 | GNUNET_RESOLVER_ip_get (sched, | 98 | GNUNET_RESOLVER_ip_get (sched, |
87 | cfg, | 99 | cfg, |
88 | "localhost", AF_INET, TIMEOUT, &dns_notify, NULL); | 100 | "localhost", AF_INET, TIMEOUT, &dns_notify, NULL); |
@@ -92,7 +104,14 @@ resolver_notify (void *cls, int success) | |||
92 | static void | 104 | static void |
93 | arm_notify (void *cls, int success) | 105 | arm_notify (void *cls, int success) |
94 | { | 106 | { |
95 | GNUNET_assert (success == GNUNET_YES); | 107 | if (success != GNUNET_YES) |
108 | { | ||
109 | GNUNET_break (0); | ||
110 | ok = 2; | ||
111 | #if START_ARM | ||
112 | GNUNET_ARM_stop_service (arm, "arm", TIMEOUT, &arm_stopped, NULL); | ||
113 | #endif | ||
114 | } | ||
96 | GNUNET_ARM_start_service (arm, "resolver", START_TIMEOUT, &resolver_notify, NULL); | 115 | GNUNET_ARM_start_service (arm, "resolver", START_TIMEOUT, &resolver_notify, NULL); |
97 | } | 116 | } |
98 | 117 | ||