aboutsummaryrefslogtreecommitdiff
path: root/src/gnunet_chat_handle_intern.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gnunet_chat_handle_intern.c')
-rw-r--r--src/gnunet_chat_handle_intern.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/gnunet_chat_handle_intern.c b/src/gnunet_chat_handle_intern.c
index bb4c107..e3f660d 100644
--- a/src/gnunet_chat_handle_intern.c
+++ b/src/gnunet_chat_handle_intern.c
@@ -212,10 +212,31 @@ on_handle_gnunet_identity(void *cls,
212 return; 212 return;
213 } 213 }
214 214
215 struct GNUNET_CHAT_InternalAccounts *accounts = GNUNET_new( 215 struct GNUNET_CHAT_InternalAccounts *accounts = handle->accounts_head;
216 struct GNUNET_CHAT_InternalAccounts 216
217 ); 217 while (accounts)
218 {
219 if (!(accounts->account))
220 goto skip_account;
221
222 if ((accounts->account->name) &&
223 (0 == strcmp(accounts->account->name, name)))
224 {
225 accounts->account->ego = ego;
226 return;
227 }
228
229 if (ego == accounts->account->ego)
230 {
231 util_set_name_field(name, &(accounts->account->name));
232 return;
233 }
234
235skip_account:
236 accounts = accounts->next;
237 }
218 238
239 accounts = GNUNET_new(struct GNUNET_CHAT_InternalAccounts);
219 accounts->account = account_create_from_ego(ego, name); 240 accounts->account = account_create_from_ego(ego, name);
220 241
221 GNUNET_CONTAINER_DLL_insert_tail( 242 GNUNET_CONTAINER_DLL_insert_tail(