aboutsummaryrefslogtreecommitdiff
path: root/src/arm/gnunet-service-arm_interceptor.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arm/gnunet-service-arm_interceptor.c')
-rw-r--r--src/arm/gnunet-service-arm_interceptor.c155
1 files changed, 76 insertions, 79 deletions
diff --git a/src/arm/gnunet-service-arm_interceptor.c b/src/arm/gnunet-service-arm_interceptor.c
index b99b076da..6d417ba37 100644
--- a/src/arm/gnunet-service-arm_interceptor.c
+++ b/src/arm/gnunet-service-arm_interceptor.c
@@ -356,8 +356,8 @@ closeClientAndServiceSockets (struct ForwardedConnection *fc, int reason)
356 * @param cls callback data, struct ForwardedConnection for the communication between client and service 356 * @param cls callback data, struct ForwardedConnection for the communication between client and service
357 * @param tc context 357 * @param tc context
358 */ 358 */
359static void 359static void receiveFromClient (void *cls,
360receiveFromClient (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc); 360 const struct GNUNET_SCHEDULER_TaskContext *tc);
361 361
362 362
363/** 363/**
@@ -366,15 +366,15 @@ receiveFromClient (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
366 * @param cls callback data, struct ForwardedConnection for the communication between client and service 366 * @param cls callback data, struct ForwardedConnection for the communication between client and service
367 * @param tc scheduler context 367 * @param tc scheduler context
368 */ 368 */
369static void 369static void receiveFromService (void *cls,
370receiveFromService (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc); 370 const struct GNUNET_SCHEDULER_TaskContext *tc);
371 371
372 372
373/** 373/**
374 * 374 *
375 */ 375 */
376static void 376static void start_forwarding (void *cls,
377start_forwarding (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc); 377 const struct GNUNET_SCHEDULER_TaskContext *tc);
378 378
379 379
380 380
@@ -391,13 +391,13 @@ forwardToClient (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
391 ssize_t numberOfBytesSent; 391 ssize_t numberOfBytesSent;
392 392
393 fc->service_to_client_task = GNUNET_SCHEDULER_NO_TASK; 393 fc->service_to_client_task = GNUNET_SCHEDULER_NO_TASK;
394 if (GNUNET_YES != GNUNET_NETWORK_fdset_isset (tc->write_ready, 394 if (GNUNET_YES !=
395 fc->armClientSocket)) 395 GNUNET_NETWORK_fdset_isset (tc->write_ready, fc->armClientSocket))
396 { 396 {
397 fc->service_to_client_task = 397 fc->service_to_client_task =
398 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL, 398 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL,
399 fc->armClientSocket, 399 fc->armClientSocket, &forwardToClient,
400 &forwardToClient, fc); 400 fc);
401 return; 401 return;
402 } 402 }
403 /* Forwarding service response to client */ 403 /* Forwarding service response to client */
@@ -415,8 +415,8 @@ forwardToClient (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
415 return; 415 return;
416 } 416 }
417#if DEBUG_SERVICE_MANAGER 417#if DEBUG_SERVICE_MANAGER
418 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 418 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Forwarded %d bytes to client\n",
419 "Forwarded %d bytes to client\n", numberOfBytesSent); 419 numberOfBytesSent);
420#endif 420#endif
421 if (numberOfBytesSent < fc->service_to_client_bufferDataLength) 421 if (numberOfBytesSent < fc->service_to_client_bufferDataLength)
422 { 422 {
@@ -424,14 +424,14 @@ forwardToClient (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
424 fc->service_to_client_bufferDataLength -= numberOfBytesSent; 424 fc->service_to_client_bufferDataLength -= numberOfBytesSent;
425 fc->service_to_client_task = 425 fc->service_to_client_task =
426 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL, 426 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL,
427 fc->armClientSocket, 427 fc->armClientSocket, &forwardToClient,
428 &forwardToClient, fc); 428 fc);
429 return; 429 return;
430 } 430 }
431 fc->service_to_client_task = 431 fc->service_to_client_task =
432 GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, 432 GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
433 fc->armServiceSocket, 433 fc->armServiceSocket, &receiveFromService,
434 &receiveFromService, fc); 434 fc);
435} 435}
436 436
437 437
@@ -454,8 +454,8 @@ receiveFromService (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
454 closeClientAndServiceSockets (fc, REASON_ERROR); 454 closeClientAndServiceSockets (fc, REASON_ERROR);
455 return; 455 return;
456 } 456 }
457 if (GNUNET_YES != GNUNET_NETWORK_fdset_isset (tc->read_ready, 457 if (GNUNET_YES !=
458 fc->armServiceSocket)) 458 GNUNET_NETWORK_fdset_isset (tc->read_ready, fc->armServiceSocket))
459 { 459 {
460 fc->service_to_client_task = 460 fc->service_to_client_task =
461 GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, 461 GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -497,12 +497,12 @@ receiveFromService (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
497 GNUNET_a2s (fc->listen_info->service_addr, 497 GNUNET_a2s (fc->listen_info->service_addr,
498 fc->listen_info->service_addr_len), 498 fc->listen_info->service_addr_len),
499 (unsigned long long) GNUNET_TIME_relative_min (fc->back_off, 499 (unsigned long long) GNUNET_TIME_relative_min (fc->back_off,
500 rem).rel_value); 500 rem).
501 rel_value);
501#endif 502#endif
502 rem = GNUNET_TIME_absolute_get_remaining (fc->timeout); 503 rem = GNUNET_TIME_absolute_get_remaining (fc->timeout);
503 GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == fc->start_task); 504 GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == fc->start_task);
504 fc->start_task 505 fc->start_task =
505 =
506 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_min 506 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_min
507 (fc->back_off, rem), &start_forwarding, 507 (fc->back_off, rem), &start_forwarding,
508 fc); 508 fc);
@@ -520,14 +520,13 @@ receiveFromService (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
520 } 520 }
521 fc->first_write_done = GNUNET_YES; 521 fc->first_write_done = GNUNET_YES;
522#if DEBUG_SERVICE_MANAGER 522#if DEBUG_SERVICE_MANAGER
523 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 523 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received %d bytes for client\n",
524 "Received %d bytes for client\n",
525 fc->service_to_client_bufferDataLength); 524 fc->service_to_client_bufferDataLength);
526#endif 525#endif
527 fc->service_to_client_task = 526 fc->service_to_client_task =
528 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL, 527 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL,
529 fc->armClientSocket, 528 fc->armClientSocket, &forwardToClient,
530 &forwardToClient, fc); 529 fc);
531} 530}
532 531
533 532
@@ -551,13 +550,13 @@ forwardToService (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
551 closeClientAndServiceSockets (fc, REASON_ERROR); 550 closeClientAndServiceSockets (fc, REASON_ERROR);
552 return; 551 return;
553 } 552 }
554 if (GNUNET_YES != GNUNET_NETWORK_fdset_isset (tc->write_ready, 553 if (GNUNET_YES !=
555 fc->armServiceSocket)) 554 GNUNET_NETWORK_fdset_isset (tc->write_ready, fc->armServiceSocket))
556 { 555 {
557 fc->client_to_service_task = 556 fc->client_to_service_task =
558 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL, 557 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL,
559 fc->armServiceSocket, 558 fc->armServiceSocket, &forwardToService,
560 &forwardToService, fc); 559 fc);
561 return; 560 return;
562 } 561 }
563 numberOfBytesSent = 562 numberOfBytesSent =
@@ -585,12 +584,12 @@ forwardToService (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
585 GNUNET_a2s (fc->listen_info->service_addr, 584 GNUNET_a2s (fc->listen_info->service_addr,
586 fc->listen_info->service_addr_len), 585 fc->listen_info->service_addr_len),
587 (unsigned long long) GNUNET_TIME_relative_min (fc->back_off, 586 (unsigned long long) GNUNET_TIME_relative_min (fc->back_off,
588 rem).rel_value); 587 rem).
588 rel_value);
589#endif 589#endif
590 rem = GNUNET_TIME_absolute_get_remaining (fc->timeout); 590 rem = GNUNET_TIME_absolute_get_remaining (fc->timeout);
591 GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == fc->start_task); 591 GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == fc->start_task);
592 fc->start_task 592 fc->start_task =
593 =
594 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_min 593 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_min
595 (fc->back_off, rem), &start_forwarding, 594 (fc->back_off, rem), &start_forwarding,
596 fc); 595 fc);
@@ -606,8 +605,8 @@ forwardToService (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
606 return; 605 return;
607 } 606 }
608#if DEBUG_SERVICE_MANAGER 607#if DEBUG_SERVICE_MANAGER
609 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 608 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Forwarded %d bytes to service\n",
610 "Forwarded %d bytes to service\n", numberOfBytesSent); 609 numberOfBytesSent);
611#endif 610#endif
612 fc->first_write_done = GNUNET_YES; 611 fc->first_write_done = GNUNET_YES;
613 if (numberOfBytesSent < fc->client_to_service_bufferDataLength) 612 if (numberOfBytesSent < fc->client_to_service_bufferDataLength)
@@ -616,14 +615,14 @@ forwardToService (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
616 fc->client_to_service_bufferDataLength -= numberOfBytesSent; 615 fc->client_to_service_bufferDataLength -= numberOfBytesSent;
617 fc->client_to_service_task = 616 fc->client_to_service_task =
618 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL, 617 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL,
619 fc->armServiceSocket, 618 fc->armServiceSocket, &forwardToService,
620 &forwardToService, fc); 619 fc);
621 return; 620 return;
622 } 621 }
623 fc->client_to_service_task = 622 fc->client_to_service_task =
624 GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, 623 GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
625 fc->armClientSocket, 624 fc->armClientSocket, &receiveFromClient,
626 &receiveFromClient, fc); 625 fc);
627} 626}
628 627
629 628
@@ -639,13 +638,13 @@ receiveFromClient (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
639 struct ForwardedConnection *fc = cls; 638 struct ForwardedConnection *fc = cls;
640 639
641 fc->client_to_service_task = GNUNET_SCHEDULER_NO_TASK; 640 fc->client_to_service_task = GNUNET_SCHEDULER_NO_TASK;
642 if (GNUNET_YES != GNUNET_NETWORK_fdset_isset (tc->read_ready, 641 if (GNUNET_YES !=
643 fc->armClientSocket)) 642 GNUNET_NETWORK_fdset_isset (tc->read_ready, fc->armClientSocket))
644 { 643 {
645 fc->client_to_service_task = 644 fc->client_to_service_task =
646 GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, 645 GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
647 fc->armClientSocket, 646 fc->armClientSocket, &receiveFromClient,
648 &receiveFromClient, fc); 647 fc);
649 return; 648 return;
650 } 649 }
651 fc->client_to_service_bufferPos = fc->client_to_service_buffer; 650 fc->client_to_service_bufferPos = fc->client_to_service_buffer;
@@ -665,23 +664,22 @@ receiveFromClient (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
665 else 664 else
666 { 665 {
667#if DEBUG_SERVICE_MANAGER 666#if DEBUG_SERVICE_MANAGER
668 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 667 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Error receiving from client: %s\n",
669 "Error receiving from client: %s\n", STRERROR (errno)); 668 STRERROR (errno));
670#endif 669#endif
671 } 670 }
672 closeClientAndServiceSockets (fc, REASON_CLIENT_TO_SERVICE); 671 closeClientAndServiceSockets (fc, REASON_CLIENT_TO_SERVICE);
673 return; 672 return;
674 } 673 }
675#if DEBUG_SERVICE_MANAGER 674#if DEBUG_SERVICE_MANAGER
676 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 675 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received %d bytes for service\n",
677 "Received %d bytes for service\n",
678 fc->client_to_service_bufferDataLength); 676 fc->client_to_service_bufferDataLength);
679#endif 677#endif
680 if (fc->armServiceSocket != NULL) 678 if (fc->armServiceSocket != NULL)
681 fc->client_to_service_task = 679 fc->client_to_service_task =
682 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL, 680 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL,
683 fc->armServiceSocket, 681 fc->armServiceSocket, &forwardToService,
684 &forwardToService, fc); 682 fc);
685 else 683 else
686 /* We have not added any task with fc as a closure, so we're 684 /* We have not added any task with fc as a closure, so we're
687 * dropping our reference to fc 685 * dropping our reference to fc
@@ -742,8 +740,8 @@ fc_acceptConnection (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
742 else 740 else
743 fc->service_to_client_task = 741 fc->service_to_client_task =
744 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL, 742 GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL,
745 fc->armClientSocket, 743 fc->armClientSocket, &forwardToClient,
746 &forwardToClient, fc); 744 fc);
747 fc->reference_count += 1; 745 fc->reference_count += 1;
748 } 746 }
749 GNUNET_free (sli); 747 GNUNET_free (sli);
@@ -751,9 +749,8 @@ fc_acceptConnection (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
751 749
752 750
753static struct ServiceListeningInfo * 751static struct ServiceListeningInfo *
754service_try_to_connect (const struct sockaddr *addr, 752service_try_to_connect (const struct sockaddr *addr, int pf, socklen_t addrlen,
755 int pf, 753 struct ForwardedConnection *fc)
756 socklen_t addrlen, struct ForwardedConnection *fc)
757{ 754{
758 struct GNUNET_NETWORK_Handle *sock; 755 struct GNUNET_NETWORK_Handle *sock;
759 struct ServiceListeningInfo *serviceListeningInfo; 756 struct ServiceListeningInfo *serviceListeningInfo;
@@ -839,8 +836,8 @@ start_forwarding (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
839 target_ipv4.sin_port = v4->sin_port; 836 target_ipv4.sin_port = v4->sin_port;
840 v4 = &target_ipv4; 837 v4 = &target_ipv4;
841 } 838 }
842 sc = service_try_to_connect ((const struct sockaddr *) v4, 839 sc = service_try_to_connect ((const struct sockaddr *) v4, PF_INET,
843 PF_INET, sizeof (struct sockaddr_in), fc); 840 sizeof (struct sockaddr_in), fc);
844 break; 841 break;
845 case AF_INET6: 842 case AF_INET6:
846 v6 = (struct sockaddr_in6 *) fc->listen_info->service_addr; 843 v6 = (struct sockaddr_in6 *) fc->listen_info->service_addr;
@@ -855,12 +852,11 @@ start_forwarding (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
855 target_ipv6.sin6_port = v6->sin6_port; 852 target_ipv6.sin6_port = v6->sin6_port;
856 v6 = &target_ipv6; 853 v6 = &target_ipv6;
857 } 854 }
858 sc = service_try_to_connect ((const struct sockaddr *) v6, 855 sc = service_try_to_connect ((const struct sockaddr *) v6, PF_INET6,
859 PF_INET6, sizeof (struct sockaddr_in6), fc); 856 sizeof (struct sockaddr_in6), fc);
860 break; 857 break;
861 case AF_UNIX: 858 case AF_UNIX:
862 sc = service_try_to_connect (fc->listen_info->service_addr, 859 sc = service_try_to_connect (fc->listen_info->service_addr, PF_UNIX,
863 PF_UNIX,
864 fc->listen_info->service_addr_len, fc); 860 fc->listen_info->service_addr_len, fc);
865 break; 861 break;
866 default: 862 default:
@@ -917,8 +913,8 @@ stop_listening (const char *serviceName)
917 * @param cls callback data, struct ServiceListeningInfo describing a listen socket 913 * @param cls callback data, struct ServiceListeningInfo describing a listen socket
918 * @param tc context 914 * @param tc context
919 */ 915 */
920static void 916static void acceptConnection (void *cls,
921acceptConnection (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc); 917 const struct GNUNET_SCHEDULER_TaskContext *tc);
922 918
923 919
924static void 920static void
@@ -952,18 +948,18 @@ accept_and_forward (struct ServiceListeningInfo *serviceListeningInfo)
952 return; 948 return;
953 } 949 }
954 GNUNET_break (GNUNET_OK == 950 GNUNET_break (GNUNET_OK ==
955 GNUNET_NETWORK_socket_close 951 GNUNET_NETWORK_socket_close (serviceListeningInfo->
956 (serviceListeningInfo->listeningSocket)); 952 listeningSocket));
957 start_service (NULL, serviceListeningInfo->serviceName, NULL); 953 start_service (NULL, serviceListeningInfo->serviceName, NULL);
958 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 954 GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Service `%s' started\n"),
959 _("Service `%s' started\n"), fc->listen_info->serviceName); 955 fc->listen_info->serviceName);
960 fc->timeout = 956 fc->timeout =
961 GNUNET_TIME_relative_to_absolute (GNUNET_CONSTANTS_SERVICE_TIMEOUT); 957 GNUNET_TIME_relative_to_absolute (GNUNET_CONSTANTS_SERVICE_TIMEOUT);
962 fc->back_off = GNUNET_TIME_UNIT_MILLISECONDS; 958 fc->back_off = GNUNET_TIME_UNIT_MILLISECONDS;
963 fc->client_to_service_task = 959 fc->client_to_service_task =
964 GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, 960 GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
965 fc->armClientSocket, 961 fc->armClientSocket, &receiveFromClient,
966 &receiveFromClient, fc); 962 fc);
967 GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == fc->start_task); 963 GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == fc->start_task);
968 /* We're creating another chain of tasks for this fc that 964 /* We're creating another chain of tasks for this fc that
969 * will have its own reference to it. 965 * will have its own reference to it.
@@ -997,12 +993,12 @@ acceptConnection (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
997 serviceListeningInfoList_tail, sli); 993 serviceListeningInfoList_tail, sli);
998#ifndef MINGW 994#ifndef MINGW
999 use_lsocks = GNUNET_NO; 995 use_lsocks = GNUNET_NO;
1000 if (GNUNET_YES == GNUNET_CONFIGURATION_have_value (cfg, 996 if (GNUNET_YES ==
1001 sli->serviceName, 997 GNUNET_CONFIGURATION_have_value (cfg, sli->serviceName,
1002 "DISABLE_SOCKET_FORWARDING")) 998 "DISABLE_SOCKET_FORWARDING"))
1003 use_lsocks = GNUNET_CONFIGURATION_get_value_yesno (cfg, 999 use_lsocks =
1004 sli->serviceName, 1000 GNUNET_CONFIGURATION_get_value_yesno (cfg, sli->serviceName,
1005 "DISABLE_SOCKET_FORWARDING"); 1001 "DISABLE_SOCKET_FORWARDING");
1006#else 1002#else
1007 use_lsocks = GNUNET_YES; 1003 use_lsocks = GNUNET_YES;
1008#endif 1004#endif
@@ -1100,8 +1096,8 @@ createListeningSocket (struct sockaddr *sa, socklen_t addr_len,
1100 "setsockopt"); 1096 "setsockopt");
1101#endif 1097#endif
1102 1098
1103 if (GNUNET_NETWORK_socket_bind 1099 if (GNUNET_NETWORK_socket_bind (sock, (const struct sockaddr *) sa, addr_len)
1104 (sock, (const struct sockaddr *) sa, addr_len) != GNUNET_OK) 1100 != GNUNET_OK)
1105 { 1101 {
1106 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 1102 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
1107 _ 1103 _
@@ -1145,8 +1141,8 @@ createListeningSocket (struct sockaddr *sa, socklen_t addr_len,
1145 * @param value the option's value 1141 * @param value the option's value
1146 */ 1142 */
1147static void 1143static void
1148checkPortNumberCB (void *cls, 1144checkPortNumberCB (void *cls, const char *section, const char *option,
1149 const char *section, const char *option, const char *value) 1145 const char *value)
1150{ 1146{
1151 struct sockaddr **addrs; 1147 struct sockaddr **addrs;
1152 socklen_t *addr_lens; 1148 socklen_t *addr_lens;
@@ -1158,8 +1154,9 @@ checkPortNumberCB (void *cls,
1158 (strcasecmp (value, "YES") != 0) || 1154 (strcasecmp (value, "YES") != 0) ||
1159 (isInDefaultList (section) == GNUNET_YES)) 1155 (isInDefaultList (section) == GNUNET_YES))
1160 return; 1156 return;
1161 if (0 >= (ret = GNUNET_SERVICE_get_server_addresses (section, cfg, &addrs, 1157 if (0 >=
1162 &addr_lens))) 1158 (ret =
1159 GNUNET_SERVICE_get_server_addresses (section, cfg, &addrs, &addr_lens)))
1163 return; 1160 return;
1164 /* this will free (or capture) addrs[i] */ 1161 /* this will free (or capture) addrs[i] */
1165 for (i = 0; i < ret; i++) 1162 for (i = 0; i < ret; i++)