aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/main.c b/main.c
index 622e1b9..5afece8 100644
--- a/main.c
+++ b/main.c
@@ -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);