aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-12-23 22:34:19 +0000
committerChristian Grothoff <christian@grothoff.org>2013-12-23 22:34:19 +0000
commitdf64e68d7a864d9204c44c82cc32696393161bb1 (patch)
treecfd7229c20e2c6465362c2ad156ab29741397c0f
parente5494c55573c92958633c08c906b95d4ce0dc472 (diff)
downloadgnunet-df64e68d7a864d9204c44c82cc32696393161bb1.tar.gz
gnunet-df64e68d7a864d9204c44c82cc32696393161bb1.zip
-fix issues with multi-user setup and ARM
-rw-r--r--po/de.po6
-rw-r--r--po/es.po6
-rw-r--r--po/sv.po6
-rw-r--r--po/vi.po6
-rw-r--r--po/zh_CN.po6
-rw-r--r--src/arm/arm_api.c11
-rw-r--r--src/arm/gnunet-service-arm.c94
7 files changed, 84 insertions, 51 deletions
diff --git a/po/de.po b/po/de.po
index 2dc5731a5..145059278 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: GNUnet 0.7.0b\n" 8"Project-Id-Version: GNUnet 0.7.0b\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2013-12-23 22:41+0100\n" 10"POT-Creation-Date: 2013-12-23 22:54+0100\n"
11"PO-Revision-Date: 2006-03-17 21:37+0100\n" 11"PO-Revision-Date: 2006-03-17 21:37+0100\n"
12"Last-Translator: Nils Durner <durner@gnunet.org>\n" 12"Last-Translator: Nils Durner <durner@gnunet.org>\n"
13"Language-Team: German <de@li.org>\n" 13"Language-Team: German <de@li.org>\n"
@@ -4082,6 +4082,10 @@ msgstr ""
4082msgid "Failed to connect to identity service\n" 4082msgid "Failed to connect to identity service\n"
4083msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" 4083msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
4084 4084
4085#: src/gns/gnunet-gns-import.c:476
4086msgid "This program will import some GNS authorities into your GNS namestore."
4087msgstr ""
4088
4085#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469 4089#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469
4086#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689 4090#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689
4087#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750 4091#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
diff --git a/po/es.po b/po/es.po
index 22b2a9682..52088913b 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: gnunet 0.9.5a\n" 8"Project-Id-Version: gnunet 0.9.5a\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2013-12-23 22:41+0100\n" 10"POT-Creation-Date: 2013-12-23 22:54+0100\n"
11"PO-Revision-Date: 2013-02-23 17:50+0100\n" 11"PO-Revision-Date: 2013-02-23 17:50+0100\n"
12"Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n" 12"Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
13"Language-Team: Spanish <es@li.org>\n" 13"Language-Team: Spanish <es@li.org>\n"
@@ -4087,6 +4087,10 @@ msgstr ""
4087msgid "Failed to connect to identity service\n" 4087msgid "Failed to connect to identity service\n"
4088msgstr "Fallo al conectar a gnunetd.\n" 4088msgstr "Fallo al conectar a gnunetd.\n"
4089 4089
4090#: src/gns/gnunet-gns-import.c:476
4091msgid "This program will import some GNS authorities into your GNS namestore."
4092msgstr ""
4093
4090#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469 4094#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469
4091#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689 4095#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689
4092#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750 4096#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
diff --git a/po/sv.po b/po/sv.po
index 6d6aa3766..d926abcb9 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: GNUnet 0.7.0b\n" 8"Project-Id-Version: GNUnet 0.7.0b\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2013-12-23 22:41+0100\n" 10"POT-Creation-Date: 2013-12-23 22:54+0100\n"
11"PO-Revision-Date: 2006-01-21 17:16+0100\n" 11"PO-Revision-Date: 2006-01-21 17:16+0100\n"
12"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" 12"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
13"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" 13"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -4031,6 +4031,10 @@ msgstr ""
4031msgid "Failed to connect to identity service\n" 4031msgid "Failed to connect to identity service\n"
4032msgstr "Misslyckades att ansluta till gnunetd.\n" 4032msgstr "Misslyckades att ansluta till gnunetd.\n"
4033 4033
4034#: src/gns/gnunet-gns-import.c:476
4035msgid "This program will import some GNS authorities into your GNS namestore."
4036msgstr ""
4037
4034#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469 4038#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469
4035#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689 4039#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689
4036#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750 4040#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
diff --git a/po/vi.po b/po/vi.po
index da8a08d6d..5a6ed8844 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: gnunet 0.8.0a\n" 9"Project-Id-Version: gnunet 0.8.0a\n"
10"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 10"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
11"POT-Creation-Date: 2013-12-23 22:41+0100\n" 11"POT-Creation-Date: 2013-12-23 22:54+0100\n"
12"PO-Revision-Date: 2008-09-10 22:05+0930\n" 12"PO-Revision-Date: 2008-09-10 22:05+0930\n"
13"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" 13"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
14"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" 14"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -4082,6 +4082,10 @@ msgstr ""
4082msgid "Failed to connect to identity service\n" 4082msgid "Failed to connect to identity service\n"
4083msgstr "Lỗi kết nối đến gnunetd.\n" 4083msgstr "Lỗi kết nối đến gnunetd.\n"
4084 4084
4085#: src/gns/gnunet-gns-import.c:476
4086msgid "This program will import some GNS authorities into your GNS namestore."
4087msgstr ""
4088
4085#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469 4089#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469
4086#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689 4090#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689
4087#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750 4091#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
diff --git a/po/zh_CN.po b/po/zh_CN.po
index c9e9ee1ba..4b9ae77f0 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: gnunet-0.8.1\n" 8"Project-Id-Version: gnunet-0.8.1\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2013-12-23 22:41+0100\n" 10"POT-Creation-Date: 2013-12-23 22:54+0100\n"
11"PO-Revision-Date: 2011-07-09 12:12+0800\n" 11"PO-Revision-Date: 2011-07-09 12:12+0800\n"
12"Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n" 12"Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n"
13"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" 13"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -3879,6 +3879,10 @@ msgstr ""
3879msgid "Failed to connect to identity service\n" 3879msgid "Failed to connect to identity service\n"
3880msgstr "初始化“%s”服务失败。\n" 3880msgstr "初始化“%s”服务失败。\n"
3881 3881
3882#: src/gns/gnunet-gns-import.c:476
3883msgid "This program will import some GNS authorities into your GNS namestore."
3884msgstr ""
3885
3882#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469 3886#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469
3883#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689 3887#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689
3884#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750 3888#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
diff --git a/src/arm/arm_api.c b/src/arm/arm_api.c
index 6c0dec4a6..ee699739a 100644
--- a/src/arm/arm_api.c
+++ b/src/arm/arm_api.c
@@ -308,11 +308,12 @@ arm_termination_handler (void *cls, const struct GNUNET_MessageHeader *msg)
308/** 308/**
309 * Handler for ARM replies. 309 * Handler for ARM replies.
310 * 310 *
311 * @param cls our "struct GNUNET_ARM_Handle" 311 * @param cls our `struct GNUNET_ARM_Handle`
312 * @param msg the message received from the arm service 312 * @param msg the message received from the arm service
313 */ 313 */
314static void 314static void
315client_notify_handler (void *cls, const struct GNUNET_MessageHeader *msg) 315client_notify_handler (void *cls,
316 const struct GNUNET_MessageHeader *msg)
316{ 317{
317 struct GNUNET_ARM_Handle *h = cls; 318 struct GNUNET_ARM_Handle *h = cls;
318 const struct GNUNET_ARM_Message *arm_msg; 319 const struct GNUNET_ARM_Message *arm_msg;
@@ -353,7 +354,9 @@ client_notify_handler (void *cls, const struct GNUNET_MessageHeader *msg)
353 cm = find_cm_by_id (h, id); 354 cm = find_cm_by_id (h, id);
354 if (NULL == cm) 355 if (NULL == cm)
355 { 356 {
356 LOG (GNUNET_ERROR_TYPE_DEBUG, "Message with unknown id %llu\n", id); 357 LOG (GNUNET_ERROR_TYPE_DEBUG,
358 "Message with unknown id %llu\n",
359 id);
357 return; 360 return;
358 } 361 }
359 fail = GNUNET_NO; 362 fail = GNUNET_NO;
@@ -460,7 +463,7 @@ client_notify_handler (void *cls, const struct GNUNET_MessageHeader *msg)
460 if (NULL != cm->list_cont) 463 if (NULL != cm->list_cont)
461 cm->list_cont (cm->cont_cls, GNUNET_ARM_REQUEST_SENT_OK, rcount, 464 cm->list_cont (cm->cont_cls, GNUNET_ARM_REQUEST_SENT_OK, rcount,
462 list); 465 list);
463 GNUNET_free (list); 466 GNUNET_free_non_null (list);
464 break; 467 break;
465 } 468 }
466 GNUNET_free (cm->msg); 469 GNUNET_free (cm->msg);
diff --git a/src/arm/gnunet-service-arm.c b/src/arm/gnunet-service-arm.c
index 704b6f2fc..af232b11c 100644
--- a/src/arm/gnunet-service-arm.c
+++ b/src/arm/gnunet-service-arm.c
@@ -260,7 +260,7 @@ write_result (void *cls, size_t size, void *buf)
260 struct GNUNET_ARM_ResultMessage *msg = cls; 260 struct GNUNET_ARM_ResultMessage *msg = cls;
261 size_t msize; 261 size_t msize;
262 262
263 if (buf == NULL) 263 if (NULL == buf)
264 { 264 {
265 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 265 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
266 _("Could not send status result to client\n")); 266 _("Could not send status result to client\n"));
@@ -296,7 +296,7 @@ write_list_result (void *cls, size_t size, void *buf)
296 struct GNUNET_ARM_ListResultMessage *msg = cls; 296 struct GNUNET_ARM_ListResultMessage *msg = cls;
297 size_t rslt_size; 297 size_t rslt_size;
298 298
299 if (buf == NULL) 299 if (NULL == buf)
300 { 300 {
301 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 301 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
302 _("Could not send list result to client\n")); 302 _("Could not send list result to client\n"));
@@ -525,14 +525,19 @@ start_process (struct ServiceList *sl,
525 GNUNET_free (quotedbinary); 525 GNUNET_free (quotedbinary);
526 if (sl->proc == NULL) 526 if (sl->proc == NULL)
527 { 527 {
528 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Failed to start service `%s'\n"), 528 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
529 _("Failed to start service `%s'\n"),
529 sl->name); 530 sl->name);
530 if (client) 531 if (client)
531 signal_result (client, sl->name, request_id, GNUNET_ARM_RESULT_START_FAILED); 532 signal_result (client,
533 sl->name,
534 request_id,
535 GNUNET_ARM_RESULT_START_FAILED);
532 } 536 }
533 else 537 else
534 { 538 {
535 GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Starting service `%s'\n"), 539 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
540 _("Starting service `%s'\n"),
536 sl->name); 541 sl->name);
537 broadcast_status (sl->name, GNUNET_ARM_SERVICE_STARTING, NULL); 542 broadcast_status (sl->name, GNUNET_ARM_SERVICE_STARTING, NULL);
538 if (client) 543 if (client)
@@ -903,7 +908,7 @@ handle_list (void *cls, struct GNUNET_SERVER_Client *client,
903 /* first count the running processes get their name's size */ 908 /* first count the running processes get their name's size */
904 for (sl = running_head; NULL != sl; sl = sl->next) 909 for (sl = running_head; NULL != sl; sl = sl->next)
905 { 910 {
906 if (sl->proc != NULL) 911 if (NULL != sl->proc)
907 { 912 {
908 string_list_size += strlen (sl->name); 913 string_list_size += strlen (sl->name);
909 string_list_size += strlen (sl->binary); 914 string_list_size += strlen (sl->binary);
@@ -922,20 +927,19 @@ handle_list (void *cls, struct GNUNET_SERVER_Client *client,
922 msg->count = count; 927 msg->count = count;
923 928
924 char *pos = (char *)&msg[1]; 929 char *pos = (char *)&msg[1];
925 for (sl = running_head; sl != NULL; sl = sl->next) 930 for (sl = running_head; NULL != sl; sl = sl->next)
926 { 931 {
927 if (sl->proc != NULL) 932 if (NULL != sl->proc)
928 { 933 {
929 size_t s = strlen (sl->name) + strlen (sl->binary) + 4; 934 size_t s = strlen (sl->name) + strlen (sl->binary) + 4;
930 GNUNET_snprintf(pos, s, "%s (%s)", sl->name, sl->binary); 935 GNUNET_snprintf (pos, s, "%s (%s)", sl->name, sl->binary);
931 pos += s; 936 pos += s;
932 } 937 }
933 } 938 }
934
935 GNUNET_SERVER_notify_transmit_ready (client, 939 GNUNET_SERVER_notify_transmit_ready (client,
936 total_size, 940 total_size,
937 GNUNET_TIME_UNIT_FOREVER_REL, 941 GNUNET_TIME_UNIT_FOREVER_REL,
938 write_list_result, msg); 942 &write_list_result, msg);
939 GNUNET_SERVER_receive_done (client, GNUNET_OK); 943 GNUNET_SERVER_receive_done (client, GNUNET_OK);
940} 944}
941 945
@@ -966,6 +970,12 @@ do_shutdown ()
966} 970}
967 971
968 972
973/**
974 * Count how many services are still active.
975 *
976 * @param running_head list of services
977 * @return number of active services found
978 */
969static unsigned int 979static unsigned int
970list_count (struct ServiceList *running_head) 980list_count (struct ServiceList *running_head)
971{ 981{
@@ -1442,8 +1452,9 @@ run (void *cls, struct GNUNET_SERVER_Handle *serv,
1442 1452
1443 cfg = c; 1453 cfg = c;
1444 server = serv; 1454 server = serv;
1445 GNUNET_assert (serv != NULL); 1455 GNUNET_assert (NULL != serv);
1446 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task, 1456 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
1457 &shutdown_task,
1447 NULL); 1458 NULL);
1448 child_death_task = 1459 child_death_task =
1449 GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, 1460 GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -1464,50 +1475,49 @@ run (void *cls, struct GNUNET_SERVER_Handle *serv,
1464 { 1475 {
1465 GNUNET_break (GNUNET_YES == start_user); 1476 GNUNET_break (GNUNET_YES == start_user);
1466 start_system = GNUNET_NO; 1477 start_system = GNUNET_NO;
1467 return;
1468 } 1478 }
1469 if (GNUNET_YES == 1479 if (GNUNET_YES ==
1470 GNUNET_CONFIGURATION_get_value_yesno (cfg, "ARM", "SYSTEM_ONLY")) 1480 GNUNET_CONFIGURATION_get_value_yesno (cfg, "ARM", "SYSTEM_ONLY"))
1471 { 1481 {
1472 GNUNET_break (GNUNET_YES == start_system); 1482 GNUNET_break (GNUNET_YES == start_system);
1473 start_user = GNUNET_NO; 1483 start_user = GNUNET_NO;
1474 return;
1475 } 1484 }
1476 GNUNET_CONFIGURATION_iterate_sections (cfg, &setup_service, NULL); 1485 GNUNET_CONFIGURATION_iterate_sections (cfg, &setup_service, NULL);
1477 1486
1478 /* start default services... */ 1487 /* start default services... */
1479 if (GNUNET_OK == 1488 if (GNUNET_OK ==
1480 GNUNET_CONFIGURATION_get_value_string (cfg, "ARM", "DEFAULTSERVICES", 1489 GNUNET_CONFIGURATION_get_value_string (cfg,
1490 "ARM",
1491 "DEFAULTSERVICES",
1481 &defaultservices)) 1492 &defaultservices))
1493 {
1494 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
1495 _("Starting default services `%s'\n"),
1496 defaultservices);
1497 if (0 < strlen (defaultservices))
1482 { 1498 {
1483 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 1499 for (pos = strtok (defaultservices, " "); NULL != pos;
1484 _("Starting default services `%s'\n"), defaultservices); 1500 pos = strtok (NULL, " "))
1485 if (0 < strlen (defaultservices)) 1501 {
1486 { 1502 sl = find_service (pos);
1487 for (pos = strtok (defaultservices, " "); NULL != pos; 1503 if (NULL == sl)
1488 pos = strtok (NULL, " ")) 1504 {
1489 { 1505 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
1490 sl = find_service (pos); 1506 _("Default service `%s' not configured correctly!\n"),
1491 if (NULL == sl) 1507 pos);
1492 { 1508 continue;
1493 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 1509 }
1494 _ 1510 sl->is_default = GNUNET_YES;
1495 ("Default service `%s' not configured correctly!\n"), 1511 start_process (sl, NULL, 0);
1496 pos); 1512 }
1497 continue;
1498 }
1499 sl->is_default = GNUNET_YES;
1500 start_process (sl, NULL, 0);
1501 }
1502 }
1503 GNUNET_free (defaultservices);
1504 } 1513 }
1514 GNUNET_free (defaultservices);
1515 }
1505 else 1516 else
1506 { 1517 {
1507 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 1518 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
1508 _ 1519 _("No default services configured, GNUnet will not really start right now.\n"));
1509 ("No default services configured, GNUnet will not really start right now.\n")); 1520 }
1510 }
1511 1521
1512 notifier = 1522 notifier =
1513 GNUNET_SERVER_notification_context_create (server, MAX_NOTIFY_QUEUE); 1523 GNUNET_SERVER_notification_context_create (server, MAX_NOTIFY_QUEUE);