aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2014-06-16 07:58:28 +0000
committerChristian Grothoff <christian@grothoff.org>2014-06-16 07:58:28 +0000
commit2c8688f023c99960394e066a30a3eed4041f43fb (patch)
treea5da5beebe1b9104caf2077f3d1998bf67f380ea
parentca86c832ab602853100a7e0c559aacd162046678 (diff)
downloadgnunet-2c8688f023c99960394e066a30a3eed4041f43fb.tar.gz
gnunet-2c8688f023c99960394e066a30a3eed4041f43fb.zip
-doxygen, indentation
-rw-r--r--src/ats-tool/gnunet-ats.c83
-rw-r--r--src/ats/gnunet-service-ats.c2
-rw-r--r--src/include/gnunet_ats_service.h37
-rw-r--r--src/util/strings.c3
4 files changed, 78 insertions, 47 deletions
diff --git a/src/ats-tool/gnunet-ats.c b/src/ats-tool/gnunet-ats.c
index 7360e4c50..0f6609365 100644
--- a/src/ats-tool/gnunet-ats.c
+++ b/src/ats-tool/gnunet-ats.c
@@ -200,7 +200,7 @@ transport_addr_to_str_cb (void *cls,
200 "Failed to convert address for peer `%s' plugin `%s' length %lu to string \n", 200 "Failed to convert address for peer `%s' plugin `%s' length %lu to string \n",
201 GNUNET_i2s (&pr->address->peer), 201 GNUNET_i2s (&pr->address->peer),
202 pr->address->transport_name, 202 pr->address->transport_name,
203 pr->address->address_length ); 203 pr->address->address_length);
204 return; 204 return;
205 } 205 }
206 206
@@ -215,9 +215,9 @@ transport_addr_to_str_cb (void *cls,
215 if ((GNUNET_YES == receive_done) && (0 == pending)) 215 if ((GNUNET_YES == receive_done) && (0 == pending))
216 { 216 {
217 /* All messages received and no resolutions pending*/ 217 /* All messages received and no resolutions pending*/
218 if (end_task != GNUNET_SCHEDULER_NO_TASK ) 218 if (end_task != GNUNET_SCHEDULER_NO_TASK)
219 GNUNET_SCHEDULER_cancel (end_task); 219 GNUNET_SCHEDULER_cancel (end_task);
220 end_task = GNUNET_SCHEDULER_add_now (end, NULL ); 220 end_task = GNUNET_SCHEDULER_add_now (end, NULL);
221 } 221 }
222 222
223 return; 223 return;
@@ -309,6 +309,19 @@ find_address_it (void *cls,
309} 309}
310 310
311 311
312
313/**
314 * Signature of a function that is called with QoS information about an address.
315 *
316 * @param cls closure (NULL)
317 * @param address the address, NULL if ATS service was disconnected
318 * @param address_active is this address actively used to maintain a connection
319 to a peer
320 * @param bandwidth_out assigned outbound bandwidth for the connection
321 * @param bandwidth_in assigned inbound bandwidth for the connection
322 * @param ats performance data for the address (as far as known)
323 * @param ats_count number of performance records in @a ats
324 */
312static void 325static void
313ats_perf_mon_cb(void *cls, 326ats_perf_mon_cb(void *cls,
314 const struct GNUNET_HELLO_Address *address, 327 const struct GNUNET_HELLO_Address *address,
@@ -342,15 +355,18 @@ ats_perf_mon_cb(void *cls,
342 if (GNUNET_NO == verbose) 355 if (GNUNET_NO == verbose)
343 { 356 {
344 struct AddressFindCtx actx; 357 struct AddressFindCtx actx;
358 struct ATSAddress *a;
345 359
346 actx.src = address; 360 actx.src = address;
347 actx.res = NULL; 361 actx.res = NULL;
348 362
349 GNUNET_CONTAINER_multipeermap_iterate (addresses, find_address_it, &actx); 363 GNUNET_CONTAINER_multipeermap_iterate (addresses,
350 if ((actx.res != NULL)) 364 &find_address_it,
365 &actx);
366 if ((NULL != actx.res))
351 { 367 {
352 if ((bandwidth_in.value__ == actx.res->bandwidth_in.value__) && 368 if ((bandwidth_in.value__ == actx.res->bandwidth_in.value__) &&
353 (bandwidth_out.value__ == actx.res->bandwidth_out.value__) ) 369 (bandwidth_out.value__ == actx.res->bandwidth_out.value__))
354 { 370 {
355 return; /* Nothing to do here */ 371 return; /* Nothing to do here */
356 } 372 }
@@ -360,12 +376,14 @@ ats_perf_mon_cb(void *cls,
360 actx.res->bandwidth_out = bandwidth_out; 376 actx.res->bandwidth_out = bandwidth_out;
361 } 377 }
362 } 378 }
363 struct ATSAddress *a = GNUNET_new (struct ATSAddress); 379 a = GNUNET_new (struct ATSAddress);
364 a->address = GNUNET_HELLO_address_copy(address); 380 a->address = GNUNET_HELLO_address_copy(address);
365 a->bandwidth_in = bandwidth_in; 381 a->bandwidth_in = bandwidth_in;
366 a->bandwidth_out = bandwidth_out; 382 a->bandwidth_out = bandwidth_out;
367 GNUNET_CONTAINER_multipeermap_put (addresses, &address->peer, a, 383 GNUNET_CONTAINER_multipeermap_put (addresses,
368 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); 384 &address->peer,
385 a,
386 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
369 } 387 }
370 388
371 pr = GNUNET_malloc (sizeof (struct PendingResolutions) + 389 pr = GNUNET_malloc (sizeof (struct PendingResolutions) +
@@ -379,9 +397,10 @@ ats_perf_mon_cb(void *cls,
379 pr->bandwidth_in = bandwidth_in; 397 pr->bandwidth_in = bandwidth_in;
380 pr->bandwidth_out = bandwidth_out; 398 pr->bandwidth_out = bandwidth_out;
381 pr->tats_ctx = GNUNET_TRANSPORT_address_to_string (cfg, address, 399 pr->tats_ctx = GNUNET_TRANSPORT_address_to_string (cfg, address,
382 resolve_addresses_numeric, 400 resolve_addresses_numeric,
383 GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10), 401 GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10),
384 transport_addr_to_str_cb, pr); 402 &transport_addr_to_str_cb,
403 pr);
385 GNUNET_CONTAINER_DLL_insert (head, tail, pr); 404 GNUNET_CONTAINER_DLL_insert (head, tail, pr);
386 results++; 405 results++;
387 pending++; 406 pending++;
@@ -407,9 +426,9 @@ ats_perf_cb(void *cls,
407 if (0 == pending) 426 if (0 == pending)
408 { 427 {
409 /* All messages received and no resolutions pending*/ 428 /* All messages received and no resolutions pending*/
410 if (end_task != GNUNET_SCHEDULER_NO_TASK ) 429 if (end_task != GNUNET_SCHEDULER_NO_TASK)
411 GNUNET_SCHEDULER_cancel (end_task); 430 GNUNET_SCHEDULER_cancel (end_task);
412 end_task = GNUNET_SCHEDULER_add_now (end, NULL ); 431 end_task = GNUNET_SCHEDULER_add_now (end, NULL);
413 } 432 }
414 return; 433 return;
415 } 434 }
@@ -550,21 +569,21 @@ testservice_ats(void *cls, int result)
550 } 569 }
551 if (op_list_all) 570 if (op_list_all)
552 { 571 {
553 ph = GNUNET_ATS_performance_init (cfg, NULL, NULL ); 572 ph = GNUNET_ATS_performance_init (cfg, NULL, NULL);
554 if (NULL == ph) 573 if (NULL == ph)
555 { 574 {
556 fprintf (stderr, 575 fprintf (stderr,
557 _("Cannot connect to ATS service, exiting...\n") ); 576 _("Cannot connect to ATS service, exiting...\n"));
558 return; 577 return;
559 } 578 }
560 579
561 alh = GNUNET_ATS_performance_list_addresses (ph, 580 alh = GNUNET_ATS_performance_list_addresses (ph,
562 (NULL == pid_str) ? NULL : &pid, GNUNET_YES, ats_perf_cb, NULL ); 581 (NULL == pid_str) ? NULL : &pid, GNUNET_YES, ats_perf_cb, NULL);
563 if (NULL == alh) 582 if (NULL == alh)
564 { 583 {
565 fprintf (stderr, 584 fprintf (stderr,
566 _("Cannot issue request to ATS service, exiting...\n") ); 585 _("Cannot issue request to ATS service, exiting...\n"));
567 end_task = GNUNET_SCHEDULER_add_now (&end, NULL ); 586 end_task = GNUNET_SCHEDULER_add_now (&end, NULL);
568 return; 587 return;
569 } 588 }
570 end_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, 589 end_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -573,18 +592,18 @@ testservice_ats(void *cls, int result)
573 } 592 }
574 else if (op_list_used) 593 else if (op_list_used)
575 { 594 {
576 ph = GNUNET_ATS_performance_init (cfg, NULL, NULL ); 595 ph = GNUNET_ATS_performance_init (cfg, NULL, NULL);
577 if (NULL == ph) 596 if (NULL == ph)
578 fprintf (stderr, 597 fprintf (stderr,
579 _("Cannot connect to ATS service, exiting...\n") ); 598 _("Cannot connect to ATS service, exiting...\n"));
580 599
581 alh = GNUNET_ATS_performance_list_addresses (ph, 600 alh = GNUNET_ATS_performance_list_addresses (ph,
582 (NULL == pid_str) ? NULL : &pid, GNUNET_NO, ats_perf_cb, NULL ); 601 (NULL == pid_str) ? NULL : &pid, GNUNET_NO, ats_perf_cb, NULL);
583 if (NULL == alh) 602 if (NULL == alh)
584 { 603 {
585 fprintf (stderr, 604 fprintf (stderr,
586 _("Cannot issue request to ATS service, exiting...\n") ); 605 _("Cannot issue request to ATS service, exiting...\n"));
587 end_task = GNUNET_SCHEDULER_add_now (&end, NULL ); 606 end_task = GNUNET_SCHEDULER_add_now (&end, NULL);
588 return; 607 return;
589 } 608 }
590 end_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, 609 end_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -593,10 +612,10 @@ testservice_ats(void *cls, int result)
593 } 612 }
594 else if (op_monitor) 613 else if (op_monitor)
595 { 614 {
596 ph = GNUNET_ATS_performance_init (cfg, &ats_perf_mon_cb, NULL ); 615 ph = GNUNET_ATS_performance_init (cfg, &ats_perf_mon_cb, NULL);
597 if (NULL == ph) 616 if (NULL == ph)
598 fprintf (stderr, 617 fprintf (stderr,
599 _("Cannot connect to ATS service, exiting...\n") ); 618 _("Cannot connect to ATS service, exiting...\n"));
600 end_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, 619 end_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
601 &end, 620 &end,
602 NULL); 621 NULL);
@@ -607,13 +626,13 @@ testservice_ats(void *cls, int result)
607 if (NULL == type_str) 626 if (NULL == type_str)
608 { 627 {
609 fprintf (stderr, 628 fprintf (stderr,
610 _("No preference type given!\n") ); 629 _("No preference type given!\n"));
611 return; 630 return;
612 } 631 }
613 if (NULL == pid_str) 632 if (NULL == pid_str)
614 { 633 {
615 fprintf (stderr, 634 fprintf (stderr,
616 _("No peer given!\n") ); 635 _("No peer given!\n"));
617 return; 636 return;
618 } 637 }
619 638
@@ -629,15 +648,15 @@ testservice_ats(void *cls, int result)
629 type = GNUNET_ATS_PREFERENCE_BANDWIDTH; 648 type = GNUNET_ATS_PREFERENCE_BANDWIDTH;
630 else 649 else
631 { 650 {
632 FPRINTF (stderr, "%s", _("Valid type required\n") ); 651 FPRINTF (stderr, "%s", _("Valid type required\n"));
633 return; 652 return;
634 } 653 }
635 654
636 /* set */ 655 /* set */
637 ph = GNUNET_ATS_performance_init (cfg, NULL, NULL ); 656 ph = GNUNET_ATS_performance_init (cfg, NULL, NULL);
638 if (NULL == ph) 657 if (NULL == ph)
639 fprintf (stderr, 658 fprintf (stderr,
640 _("Cannot connect to ATS service, exiting...\n") ); 659 _("Cannot connect to ATS service, exiting...\n"));
641 660
642 GNUNET_ATS_performance_change_preference (ph, &pid, type, (double) value, 661 GNUNET_ATS_performance_change_preference (ph, &pid, type, (double) value,
643 GNUNET_ATS_PREFERENCE_END); 662 GNUNET_ATS_PREFERENCE_END);
@@ -728,7 +747,7 @@ main(int argc, char * const *argv)
728 &run, NULL); 747 &run, NULL);
729 GNUNET_free_non_null(pid_str); 748 GNUNET_free_non_null(pid_str);
730 GNUNET_free_non_null(type_str); 749 GNUNET_free_non_null(type_str);
731 GNUNET_free((void * ) argv); 750 GNUNET_free((void *) argv);
732 751
733 if (GNUNET_OK == res) 752 if (GNUNET_OK == res)
734 return ret; 753 return ret;
diff --git a/src/ats/gnunet-service-ats.c b/src/ats/gnunet-service-ats.c
index 68be19ba5..4d3ac5679 100644
--- a/src/ats/gnunet-service-ats.c
+++ b/src/ats/gnunet-service-ats.c
@@ -44,7 +44,7 @@ static struct GNUNET_SERVER_Handle *GSA_server;
44struct GAS_Addresses_Handle *GSA_addresses; 44struct GAS_Addresses_Handle *GSA_addresses;
45 45
46/** 46/**
47 * We have received a 'ClientStartMessage' from a client. Find out which 47 * We have received a `struct ClientStartMessage` from a client. Find out which
48 * type of client it is and notify the respective subsystem. 48 * type of client it is and notify the respective subsystem.
49 * 49 *
50 * @param cls closure, unused 50 * @param cls closure, unused
diff --git a/src/include/gnunet_ats_service.h b/src/include/gnunet_ats_service.h
index eeb9eec38..18c338c2c 100644
--- a/src/include/gnunet_ats_service.h
+++ b/src/include/gnunet_ats_service.h
@@ -570,13 +570,14 @@ typedef void
570 * 570 *
571 * @param cfg configuration to use 571 * @param cfg configuration to use
572 * @param suggest_cb notification to call whenever the suggestation changed 572 * @param suggest_cb notification to call whenever the suggestation changed
573 * @param suggest_cb_cls closure for 'suggest_cb' 573 * @param suggest_cb_cls closure for @a suggest_cb
574 * @return ats context 574 * @return ats context
575 */ 575 */
576struct GNUNET_ATS_SchedulingHandle * 576struct GNUNET_ATS_SchedulingHandle *
577GNUNET_ATS_scheduling_init (const struct GNUNET_CONFIGURATION_Handle *cfg, 577GNUNET_ATS_scheduling_init (const struct GNUNET_CONFIGURATION_Handle *cfg,
578 GNUNET_ATS_AddressSuggestionCallback suggest_cb, void *suggest_cb_cls); 578 GNUNET_ATS_AddressSuggestionCallback suggest_cb, void *suggest_cb_cls);
579 579
580
580/** 581/**
581 * Client is done with ATS scheduling, release resources. 582 * Client is done with ATS scheduling, release resources.
582 * 583 *
@@ -585,6 +586,7 @@ GNUNET_ATS_scheduling_init (const struct GNUNET_CONFIGURATION_Handle *cfg,
585void 586void
586GNUNET_ATS_scheduling_done (struct GNUNET_ATS_SchedulingHandle *sh); 587GNUNET_ATS_scheduling_done (struct GNUNET_ATS_SchedulingHandle *sh);
587 588
589
588/** 590/**
589 * We would like to reset the address suggestion block time for this 591 * We would like to reset the address suggestion block time for this
590 * peer 592 * peer
@@ -604,7 +606,7 @@ GNUNET_ATS_reset_backoff (struct GNUNET_ATS_SchedulingHandle *sh,
604 * @param sh handle 606 * @param sh handle
605 * @param peer identity of the peer we need an address for 607 * @param peer identity of the peer we need an address for
606 * @param cont the continuation to indicate success to call with the address 608 * @param cont the continuation to indicate success to call with the address
607 * @param cont_cls the cls for the continuation 609 * @param cont_cls the closure for the @a cont
608 * @return suggestion handle 610 * @return suggestion handle
609 */ 611 */
610struct GNUNET_ATS_SuggestHandle * 612struct GNUNET_ATS_SuggestHandle *
@@ -647,10 +649,10 @@ GNUNET_ATS_print_network_type (uint32_t net);
647 649
648/** 650/**
649 * Returns where the address is located: LAN or WAN or ... 651 * Returns where the address is located: LAN or WAN or ...
650 * @param sh the GNUNET_ATS_SchedulingHandle handle 652 * @param sh the `struct GNUNET_ATS_SchedulingHandle` handle
651 * @param addr address 653 * @param addr address
652 * @param addrlen address length 654 * @param addrlen address length
653 * @return location as GNUNET_ATS_Information 655 * @return location as `struct GNUNET_ATS_Information`
654 */ 656 */
655struct GNUNET_ATS_Information 657struct GNUNET_ATS_Information
656GNUNET_ATS_address_get_type (struct GNUNET_ATS_SchedulingHandle *sh, 658GNUNET_ATS_address_get_type (struct GNUNET_ATS_SchedulingHandle *sh,
@@ -762,7 +764,7 @@ struct GNUNET_ATS_PerformanceHandle;
762 * @param bandwidth_out assigned outbound bandwidth for the connection 764 * @param bandwidth_out assigned outbound bandwidth for the connection
763 * @param bandwidth_in assigned inbound bandwidth for the connection 765 * @param bandwidth_in assigned inbound bandwidth for the connection
764 * @param ats performance data for the address (as far as known) 766 * @param ats performance data for the address (as far as known)
765 * @param ats_count number of performance records in 'ats' 767 * @param ats_count number of performance records in @a ats
766 */ 768 */
767typedef void 769typedef void
768(*GNUNET_ATS_AddressInformationCallback) (void *cls, 770(*GNUNET_ATS_AddressInformationCallback) (void *cls,
@@ -778,18 +780,21 @@ typedef void
778 */ 780 */
779struct GNUNET_ATS_AddressListHandle; 781struct GNUNET_ATS_AddressListHandle;
780 782
783
781/** 784/**
782 * Get handle to access performance API of the ATS subsystem. 785 * Get handle to access performance API of the ATS subsystem.
783 * 786 *
784 * @param cfg configuration to use 787 * @param cfg configuration to use
785 * @param addr_info_cb callback called when performance characteristics for 788 * @param addr_info_cb callback called when performance characteristics for
786 * an address change 789 * an address change
787 * @param addr_info_cb_cls closure for infocb 790 * @param addr_info_cb_cls closure for @a addr_info_cb
788 * @return ats performance context 791 * @return ats performance context
789 */ 792 */
790struct GNUNET_ATS_PerformanceHandle * 793struct GNUNET_ATS_PerformanceHandle *
791GNUNET_ATS_performance_init (const struct GNUNET_CONFIGURATION_Handle *cfg, 794GNUNET_ATS_performance_init (const struct GNUNET_CONFIGURATION_Handle *cfg,
792 GNUNET_ATS_AddressInformationCallback addr_info_cb, void *addr_info_cb_cls); 795 GNUNET_ATS_AddressInformationCallback addr_info_cb,
796 void *addr_info_cb_cls);
797
793 798
794/** 799/**
795 * Get information about addresses known to the ATS subsystem. 800 * Get information about addresses known to the ATS subsystem.
@@ -809,14 +814,15 @@ GNUNET_ATS_performance_list_addresses (
809 const struct GNUNET_PeerIdentity *peer, int all, 814 const struct GNUNET_PeerIdentity *peer, int all,
810 GNUNET_ATS_AddressInformationCallback infocb, void *infocb_cls); 815 GNUNET_ATS_AddressInformationCallback infocb, void *infocb_cls);
811 816
817
812/** 818/**
813 * Cancel a pending address listing operation 819 * Cancel a pending address listing operation
814 * 820 *
815 * @param handle the GNUNET_ATS_AddressListHandle handle to cancel 821 * @param handle the `struct GNUNET_ATS_AddressListHandle` handle to cancel
816 */ 822 */
817void 823void
818GNUNET_ATS_performance_list_addresses_cancel ( 824GNUNET_ATS_performance_list_addresses_cancel (struct GNUNET_ATS_AddressListHandle *handle);
819 struct GNUNET_ATS_AddressListHandle *handle); 825
820 826
821/** 827/**
822 * Client is done using the ATS performance subsystem, release resources. 828 * Client is done using the ATS performance subsystem, release resources.
@@ -826,6 +832,7 @@ GNUNET_ATS_performance_list_addresses_cancel (
826void 832void
827GNUNET_ATS_performance_done (struct GNUNET_ATS_PerformanceHandle *ph); 833GNUNET_ATS_performance_done (struct GNUNET_ATS_PerformanceHandle *ph);
828 834
835
829/** 836/**
830 * Function called with reservation result. 837 * Function called with reservation result.
831 * 838 *
@@ -841,11 +848,13 @@ typedef void
841 const struct GNUNET_PeerIdentity * peer, int32_t amount, 848 const struct GNUNET_PeerIdentity * peer, int32_t amount,
842 struct GNUNET_TIME_Relative res_delay); 849 struct GNUNET_TIME_Relative res_delay);
843 850
851
844/** 852/**
845 * Context that can be used to cancel a peer information request. 853 * Context that can be used to cancel a peer information request.
846 */ 854 */
847struct GNUNET_ATS_ReservationContext; 855struct GNUNET_ATS_ReservationContext;
848 856
857
849/** 858/**
850 * Reserve inbound bandwidth from the given peer. ATS will look at 859 * Reserve inbound bandwidth from the given peer. ATS will look at
851 * the current amount of traffic we receive from the peer and ensure 860 * the current amount of traffic we receive from the peer and ensure
@@ -865,6 +874,7 @@ GNUNET_ATS_reserve_bandwidth (struct GNUNET_ATS_PerformanceHandle *ph,
865 const struct GNUNET_PeerIdentity *peer, int32_t amount, 874 const struct GNUNET_PeerIdentity *peer, int32_t amount,
866 GNUNET_ATS_ReservationCallback rcb, void *rcb_cls); 875 GNUNET_ATS_ReservationCallback rcb, void *rcb_cls);
867 876
877
868/** 878/**
869 * Cancel request for reserving bandwidth. 879 * Cancel request for reserving bandwidth.
870 * 880 *
@@ -926,6 +936,7 @@ enum GNUNET_ATS_PreferenceKind
926const char * 936const char *
927GNUNET_ATS_print_preference_type (uint32_t type); 937GNUNET_ATS_print_preference_type (uint32_t type);
928 938
939
929/** 940/**
930 * Change preferences for the given peer. Preference changes are forgotten if peers 941 * Change preferences for the given peer. Preference changes are forgotten if peers
931 * disconnect. 942 * disconnect.
@@ -935,9 +946,9 @@ GNUNET_ATS_print_preference_type (uint32_t type);
935 * @param ... 0-terminated specification of the desired changes 946 * @param ... 0-terminated specification of the desired changes
936 */ 947 */
937void 948void
938GNUNET_ATS_performance_change_preference ( 949GNUNET_ATS_performance_change_preference (struct GNUNET_ATS_PerformanceHandle *ph,
939 struct GNUNET_ATS_PerformanceHandle *ph, 950 const struct GNUNET_PeerIdentity *peer, ...);
940 const struct GNUNET_PeerIdentity *peer, ...); 951
941 952
942/** 953/**
943 * Application feedback on how good preference requirements are fulfilled 954 * Application feedback on how good preference requirements are fulfilled
diff --git a/src/util/strings.c b/src/util/strings.c
index 964ecc4df..e0196108a 100644
--- a/src/util/strings.c
+++ b/src/util/strings.c
@@ -430,7 +430,8 @@ GNUNET_STRINGS_conv (const char *input,
430 free (encoded_string); 430 free (encoded_string);
431 return ret; 431 return ret;
432 fail: 432 fail:
433 LOG (GNUNET_ERROR_TYPE_WARNING, _("Character sets requested were `%s'->`%s'\n"), 433 LOG (GNUNET_ERROR_TYPE_WARNING,
434 _("Character sets requested were `%s'->`%s'\n"),
434 "UTF-8", output_charset); 435 "UTF-8", output_charset);
435 ret = GNUNET_malloc (len + 1); 436 ret = GNUNET_malloc (len + 1);
436 memcpy (ret, input, len); 437 memcpy (ret, input, len);