diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-09-21 10:56:28 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-09-21 10:56:28 +0000 |
commit | d4afc6e37a14fe3257263c377a243c1a22ed9ee5 (patch) | |
tree | ccfce6d4f92808372d3e7ebfe9f5372e9f21f50c /src/ats/gnunet-service-ats_preferences.c | |
parent | 60d02b5b0899f454cb65408bd2ed4c453fa75a3d (diff) | |
download | gnunet-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.c | 42 |
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 | */ |
555 | static void | 555 | static void |
556 | update_preference (struct GNUNET_SERVER_Client *client, | 556 | update_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 | */ |
653 | void | 652 | void |
654 | GAS_handle_preference_change (void *cls, | 653 | GAS_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 | */ |
784 | void | 758 | void |
785 | GAS_preference_client_disconnect (struct GNUNET_SERVER_Client *client) | 759 | GAS_preference_client_disconnect (struct GNUNET_SERVICE_Client *client) |
786 | { | 760 | { |
787 | struct PreferenceClient *c_cur; | 761 | struct PreferenceClient *c_cur; |
788 | 762 | ||