diff options
author | tomsmeding <tom.smeding@gmail.com> | 2017-04-15 18:09:48 +0200 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2017-04-15 18:58:34 +0200 |
commit | 8e1a1c1f01aef52ba8b2af47503461320a0abc20 (patch) | |
tree | 58a10a92ae3ad8b26db8efb72ded1169d50537e9 /main.c | |
parent | 393b27c556008d1ae4eaa7438fa8a376202b1c88 (diff) |
server: Send _push online messages on online change
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -7,6 +7,7 @@ #include <netinet/in.h> #include <errno.h> #include <assert.h> +#include "broadcast.h" #include "command.h" #include "conn_data.h" #include "db.h" @@ -53,7 +54,10 @@ static void delete_conn_data(int fd){ struct hash_item *item=conn_hash[fd%CONN_HASH_SIZE]; assert(item); if(item->cd.fd==fd){ - if(item->cd.userid!=-1)userdata_unregister(item->cd.userid,fd); + if(item->cd.userid!=-1){ + userdata_unregister(item->cd.userid,fd); + broadcast_online_change(item->cd.userid); + } conn_hash[fd%CONN_HASH_SIZE]=item->next; conn_data_nullify(&item->cd); free(item); @@ -66,7 +70,10 @@ static void delete_conn_data(int fd){ } assert(parent); assert(item); - if(item->cd.userid!=-1)userdata_unregister(item->cd.userid,fd); + if(item->cd.userid!=-1){ + userdata_unregister(item->cd.userid,fd); + broadcast_online_change(item->cd.userid); + } conn_data_nullify(&item->cd); parent->next=item->next; free(item); |