diff options
author | LRN <lrn1986@gmail.com> | 2013-03-13 21:01:29 +0000 |
---|---|---|
committer | LRN <lrn1986@gmail.com> | 2013-03-13 21:01:29 +0000 |
commit | 94d238dfdc117e210afffde1c326b5b776b6ac9a (patch) | |
tree | c43b3e92f9fc95b9d14507a1d276f69ddd8b5ed3 /src | |
parent | 23aa8d77a881c282b6efca16da3c6bccfad0e49f (diff) | |
download | gnunet-94d238dfdc117e210afffde1c326b5b776b6ac9a.tar.gz gnunet-94d238dfdc117e210afffde1c326b5b776b6ac9a.zip |
Modify one of the tests to check service list
Diffstat (limited to 'src')
-rw-r--r-- | src/arm/test_gnunet_service_arm.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/src/arm/test_gnunet_service_arm.c b/src/arm/test_gnunet_service_arm.c index bd7fe5fa9..a641f10c5 100644 --- a/src/arm/test_gnunet_service_arm.c +++ b/src/arm/test_gnunet_service_arm.c | |||
@@ -40,6 +40,10 @@ | |||
40 | 40 | ||
41 | static int ret = 1; | 41 | static int ret = 1; |
42 | 42 | ||
43 | static int resolved_ok = 0; | ||
44 | |||
45 | static int asked_for_a_list = 0; | ||
46 | |||
43 | static struct GNUNET_ARM_Handle *arm; | 47 | static struct GNUNET_ARM_Handle *arm; |
44 | 48 | ||
45 | static void | 49 | static void |
@@ -60,22 +64,37 @@ arm_stop_cb (void *cls, struct GNUNET_ARM_Handle *h, enum GNUNET_ARM_RequestStat | |||
60 | } | 64 | } |
61 | 65 | ||
62 | static void | 66 | static void |
67 | service_list (void *cls, struct GNUNET_ARM_Handle *arm, | ||
68 | enum GNUNET_ARM_RequestStatus rs, | ||
69 | unsigned int count, const char *const*list) | ||
70 | { | ||
71 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%u services are are currently running\n", count); | ||
72 | GNUNET_assert (count == 1); | ||
73 | GNUNET_break (0 == strcasecmp (list[0], "resolver (gnunet-service-resolver)")); | ||
74 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Got service list, now stopping arm\n"); | ||
75 | ret = 0; | ||
76 | GNUNET_ARM_request_service_stop (arm, "arm", TIMEOUT, arm_stop_cb, NULL); | ||
77 | } | ||
78 | |||
79 | static void | ||
63 | hostNameResolveCB (void *cls, const struct sockaddr *addr, socklen_t addrlen) | 80 | hostNameResolveCB (void *cls, const struct sockaddr *addr, socklen_t addrlen) |
64 | { | 81 | { |
65 | if ((ret == 0) || (ret == 4)) | 82 | if ((ret == 0) || (ret == 4) || (resolved_ok == 1)) |
66 | return; | 83 | return; |
67 | if (NULL == addr) | 84 | if (NULL == addr) |
68 | { | 85 | { |
69 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Name not resolved!\n"); | 86 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Name not resolved!\n"); |
70 | ret = 3; | 87 | ret = 3; |
88 | GNUNET_ARM_request_service_stop (arm, "arm", TIMEOUT, arm_stop_cb, NULL); | ||
71 | } | 89 | } |
72 | else | 90 | else if (asked_for_a_list == 0) |
73 | { | 91 | { |
74 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 92 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
75 | "Resolved hostname, now stopping ARM\n"); | 93 | "Resolved hostname, now checking the service list\n"); |
76 | ret = 0; | 94 | GNUNET_ARM_request_service_list (arm, TIMEOUT, service_list, NULL); |
95 | asked_for_a_list = 1; | ||
96 | resolved_ok = 1; | ||
77 | } | 97 | } |
78 | GNUNET_ARM_request_service_stop (arm, "arm", TIMEOUT, arm_stop_cb, NULL); | ||
79 | } | 98 | } |
80 | 99 | ||
81 | static void | 100 | static void |