aboutsummaryrefslogtreecommitdiff
path: root/src/ats/gnunet-service-ats_preferences.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-09-21 10:56:28 +0000
committerChristian Grothoff <christian@grothoff.org>2016-09-21 10:56:28 +0000
commitd4afc6e37a14fe3257263c377a243c1a22ed9ee5 (patch)
treeccfce6d4f92808372d3e7ebfe9f5372e9f21f50c /src/ats/gnunet-service-ats_preferences.c
parent60d02b5b0899f454cb65408bd2ed4c453fa75a3d (diff)
downloadgnunet-d4afc6e37a14fe3257263c377a243c1a22ed9ee5.tar.gz
gnunet-d4afc6e37a14fe3257263c377a243c1a22ed9ee5.zip
migrating more services to new service API
Diffstat (limited to 'src/ats/gnunet-service-ats_preferences.c')
-rw-r--r--src/ats/gnunet-service-ats_preferences.c42
1 files changed, 8 insertions, 34 deletions
diff --git a/src/ats/gnunet-service-ats_preferences.c b/src/ats/gnunet-service-ats_preferences.c
index 64779bbca..9f11dc6a8 100644
--- a/src/ats/gnunet-service-ats_preferences.c
+++ b/src/ats/gnunet-service-ats_preferences.c
@@ -132,7 +132,7 @@ struct PreferenceClient
132 /** 132 /**
133 * Client handle 133 * Client handle
134 */ 134 */
135 struct GNUNET_SERVER_Client *client; 135 struct GNUNET_SERVICE_Client *client;
136 136
137 /** 137 /**
138 * Mapping peer identities to `struct PreferencePeer` entry 138 * Mapping peer identities to `struct PreferencePeer` entry
@@ -553,7 +553,7 @@ update_iterator (void *cls,
553 * @param score_abs the normalized score 553 * @param score_abs the normalized score
554 */ 554 */
555static void 555static void
556update_preference (struct GNUNET_SERVER_Client *client, 556update_preference (struct GNUNET_SERVICE_Client *client,
557 const struct GNUNET_PeerIdentity *peer, 557 const struct GNUNET_PeerIdentity *peer,
558 enum GNUNET_ATS_PreferenceKind kind, 558 enum GNUNET_ATS_PreferenceKind kind,
559 float score_abs) 559 float score_abs)
@@ -646,41 +646,17 @@ update_preference (struct GNUNET_SERVER_Client *client,
646/** 646/**
647 * Handle 'preference change' messages from clients. 647 * Handle 'preference change' messages from clients.
648 * 648 *
649 * @param cls unused, NULL 649 * @param client the client that sent the request
650 * @param client client that sent the request 650 * @param msg the request message
651 * @param message the request message
652 */ 651 */
653void 652void
654GAS_handle_preference_change (void *cls, 653GAS_handle_preference_change (struct GNUNET_SERVICE_Client *client,
655 struct GNUNET_SERVER_Client *client, 654 const struct ChangePreferenceMessage *msg)
656 const struct GNUNET_MessageHeader *message)
657{ 655{
658 const struct ChangePreferenceMessage *msg;
659 const struct PreferenceInformation *pi; 656 const struct PreferenceInformation *pi;
660 uint16_t msize;
661 uint32_t nump; 657 uint32_t nump;
662 uint32_t i;
663 658
664 msize = ntohs (message->size);
665 if (msize < sizeof (struct ChangePreferenceMessage))
666 {
667 GNUNET_break (0);
668 GNUNET_SERVER_receive_done (client,
669 GNUNET_SYSERR);
670 return;
671 }
672 msg = (const struct ChangePreferenceMessage *) message;
673 nump = ntohl (msg->num_preferences); 659 nump = ntohl (msg->num_preferences);
674 if ( (msize !=
675 sizeof (struct ChangePreferenceMessage) +
676 nump * sizeof (struct PreferenceInformation)) ||
677 (UINT16_MAX / sizeof (struct PreferenceInformation) < nump) )
678 {
679 GNUNET_break (0);
680 GNUNET_SERVER_receive_done (client,
681 GNUNET_SYSERR);
682 return;
683 }
684 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 660 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
685 "Received PREFERENCE_CHANGE message for peer `%s'\n", 661 "Received PREFERENCE_CHANGE message for peer `%s'\n",
686 GNUNET_i2s (&msg->peer)); 662 GNUNET_i2s (&msg->peer));
@@ -690,14 +666,12 @@ GAS_handle_preference_change (void *cls,
690 GNUNET_NO); 666 GNUNET_NO);
691 pi = (const struct PreferenceInformation *) &msg[1]; 667 pi = (const struct PreferenceInformation *) &msg[1];
692 GAS_plugin_solver_lock (); 668 GAS_plugin_solver_lock ();
693 for (i = 0; i < nump; i++) 669 for (uint32_t i = 0; i < nump; i++)
694 update_preference (client, 670 update_preference (client,
695 &msg->peer, 671 &msg->peer,
696 (enum GNUNET_ATS_PreferenceKind) ntohl (pi[i].preference_kind), 672 (enum GNUNET_ATS_PreferenceKind) ntohl (pi[i].preference_kind),
697 pi[i].preference_value); 673 pi[i].preference_value);
698 GAS_plugin_solver_unlock (); 674 GAS_plugin_solver_unlock ();
699 GNUNET_SERVER_receive_done (client,
700 GNUNET_OK);
701} 675}
702 676
703 677
@@ -782,7 +756,7 @@ GAS_preference_get_by_peer (void *cls,
782 * @param client the client 756 * @param client the client
783 */ 757 */
784void 758void
785GAS_preference_client_disconnect (struct GNUNET_SERVER_Client *client) 759GAS_preference_client_disconnect (struct GNUNET_SERVICE_Client *client)
786{ 760{
787 struct PreferenceClient *c_cur; 761 struct PreferenceClient *c_cur;
788 762