diff options
Diffstat (limited to 'src/arm/gnunet-service-arm_interceptor.c')
-rw-r--r-- | src/arm/gnunet-service-arm_interceptor.c | 155 |
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 | */ |
359 | static void | 359 | static void receiveFromClient (void *cls, |
360 | receiveFromClient (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 | */ |
369 | static void | 369 | static void receiveFromService (void *cls, |
370 | receiveFromService (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 | */ |
376 | static void | 376 | static void start_forwarding (void *cls, |
377 | start_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 | ||
753 | static struct ServiceListeningInfo * | 751 | static struct ServiceListeningInfo * |
754 | service_try_to_connect (const struct sockaddr *addr, | 752 | service_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 | */ |
920 | static void | 916 | static void acceptConnection (void *cls, |
921 | acceptConnection (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc); | 917 | const struct GNUNET_SCHEDULER_TaskContext *tc); |
922 | 918 | ||
923 | 919 | ||
924 | static void | 920 | static 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 | */ |
1147 | static void | 1143 | static void |
1148 | checkPortNumberCB (void *cls, | 1144 | checkPortNumberCB (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++) |