diff options
Diffstat (limited to 'src/block/plugin_block_dht.c')
-rw-r--r-- | src/block/plugin_block_dht.c | 83 |
1 files changed, 39 insertions, 44 deletions
diff --git a/src/block/plugin_block_dht.c b/src/block/plugin_block_dht.c index 0e499b821..1fe51e1a3 100644 --- a/src/block/plugin_block_dht.c +++ b/src/block/plugin_block_dht.c | |||
@@ -50,14 +50,13 @@ | |||
50 | */ | 50 | */ |
51 | static enum GNUNET_BLOCK_EvaluationResult | 51 | static enum GNUNET_BLOCK_EvaluationResult |
52 | block_plugin_dht_evaluate (void *cls, | 52 | block_plugin_dht_evaluate (void *cls, |
53 | enum GNUNET_BLOCK_Type type, | 53 | enum GNUNET_BLOCK_Type type, |
54 | const GNUNET_HashCode *query, | 54 | const GNUNET_HashCode * query, |
55 | struct GNUNET_CONTAINER_BloomFilter **bf, | 55 | struct GNUNET_CONTAINER_BloomFilter **bf, |
56 | int32_t bf_mutator, | 56 | int32_t bf_mutator, |
57 | const void *xquery, | 57 | const void *xquery, |
58 | size_t xquery_size, | 58 | size_t xquery_size, |
59 | const void *reply_block, | 59 | const void *reply_block, size_t reply_block_size) |
60 | size_t reply_block_size) | ||
61 | { | 60 | { |
62 | switch (type) | 61 | switch (type) |
63 | { | 62 | { |
@@ -67,7 +66,7 @@ block_plugin_dht_evaluate (void *cls, | |||
67 | if (reply_block_size == 0) | 66 | if (reply_block_size == 0) |
68 | return GNUNET_BLOCK_EVALUATION_REQUEST_VALID; | 67 | return GNUNET_BLOCK_EVALUATION_REQUEST_VALID; |
69 | GNUNET_break (NULL == *bf); | 68 | GNUNET_break (NULL == *bf); |
70 | return GNUNET_BLOCK_EVALUATION_OK_LAST; | 69 | return GNUNET_BLOCK_EVALUATION_OK_LAST; |
71 | default: | 70 | default: |
72 | return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED; | 71 | return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED; |
73 | } | 72 | } |
@@ -87,10 +86,9 @@ block_plugin_dht_evaluate (void *cls, | |||
87 | */ | 86 | */ |
88 | static int | 87 | static int |
89 | block_plugin_dht_get_key (void *cls, | 88 | block_plugin_dht_get_key (void *cls, |
90 | enum GNUNET_BLOCK_Type type, | 89 | enum GNUNET_BLOCK_Type type, |
91 | const void *block, | 90 | const void *block, |
92 | size_t block_size, | 91 | size_t block_size, GNUNET_HashCode * key) |
93 | GNUNET_HashCode *key) | ||
94 | { | 92 | { |
95 | const struct GNUNET_MessageHeader *msg; | 93 | const struct GNUNET_MessageHeader *msg; |
96 | const struct GNUNET_HELLO_Message *hello; | 94 | const struct GNUNET_HELLO_Message *hello; |
@@ -99,37 +97,34 @@ block_plugin_dht_get_key (void *cls, | |||
99 | if (type != GNUNET_BLOCK_TYPE_DHT_HELLO) | 97 | if (type != GNUNET_BLOCK_TYPE_DHT_HELLO) |
100 | return GNUNET_SYSERR; | 98 | return GNUNET_SYSERR; |
101 | if (block_size < sizeof (struct GNUNET_MessageHeader)) | 99 | if (block_size < sizeof (struct GNUNET_MessageHeader)) |
102 | { | 100 | { |
103 | GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, | 101 | GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, |
104 | "block-dht", | 102 | "block-dht", |
105 | _("Block not of type %u\n"), | 103 | _("Block not of type %u\n"), GNUNET_BLOCK_TYPE_DHT_HELLO); |
106 | GNUNET_BLOCK_TYPE_DHT_HELLO); | 104 | return GNUNET_NO; |
107 | return GNUNET_NO; | 105 | } |
108 | } | ||
109 | msg = block; | 106 | msg = block; |
110 | if (block_size != ntohs (msg->size)) | 107 | if (block_size != ntohs (msg->size)) |
111 | { | 108 | { |
112 | GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, | 109 | GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, |
113 | "block-dht", | 110 | "block-dht", |
114 | _("Size mismatch for block\n"), | 111 | _("Size mismatch for block\n"), |
115 | GNUNET_BLOCK_TYPE_DHT_HELLO); | 112 | GNUNET_BLOCK_TYPE_DHT_HELLO); |
116 | return GNUNET_NO; | 113 | return GNUNET_NO; |
117 | } | 114 | } |
118 | hello = block; | 115 | hello = block; |
119 | pid = (struct GNUNET_PeerIdentity*) key; | 116 | pid = (struct GNUNET_PeerIdentity *) key; |
120 | if (GNUNET_OK != | 117 | if (GNUNET_OK != GNUNET_HELLO_get_id (hello, pid)) |
121 | GNUNET_HELLO_get_id (hello, | 118 | { |
122 | pid)) | 119 | GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, |
123 | { | 120 | "block-dht", |
124 | GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, | 121 | _("Block of type %u is malformed\n"), |
125 | "block-dht", | 122 | GNUNET_BLOCK_TYPE_DHT_HELLO); |
126 | _("Block of type %u is malformed\n"), | 123 | return GNUNET_NO; |
127 | GNUNET_BLOCK_TYPE_DHT_HELLO); | 124 | } |
128 | return GNUNET_NO; | ||
129 | } | ||
130 | return GNUNET_OK; | 125 | return GNUNET_OK; |
131 | } | 126 | } |
132 | 127 | ||
133 | 128 | ||
134 | /** | 129 | /** |
135 | * Entry point for the plugin. | 130 | * Entry point for the plugin. |
@@ -137,11 +132,11 @@ block_plugin_dht_get_key (void *cls, | |||
137 | void * | 132 | void * |
138 | libgnunet_plugin_block_dht_init (void *cls) | 133 | libgnunet_plugin_block_dht_init (void *cls) |
139 | { | 134 | { |
140 | static enum GNUNET_BLOCK_Type types[] = | 135 | static enum GNUNET_BLOCK_Type types[] = |
141 | { | 136 | { |
142 | GNUNET_BLOCK_TYPE_DHT_HELLO, | 137 | GNUNET_BLOCK_TYPE_DHT_HELLO, |
143 | GNUNET_BLOCK_TYPE_ANY /* end of list */ | 138 | GNUNET_BLOCK_TYPE_ANY /* end of list */ |
144 | }; | 139 | }; |
145 | struct GNUNET_BLOCK_PluginFunctions *api; | 140 | struct GNUNET_BLOCK_PluginFunctions *api; |
146 | 141 | ||
147 | api = GNUNET_malloc (sizeof (struct GNUNET_BLOCK_PluginFunctions)); | 142 | api = GNUNET_malloc (sizeof (struct GNUNET_BLOCK_PluginFunctions)); |