diff options
| author | Tom Smeding <tom.smeding@gmail.com> | 2020-06-28 21:09:24 +0200 | 
|---|---|---|
| committer | Tom Smeding <tom.smeding@gmail.com> | 2020-06-28 21:09:24 +0200 | 
| commit | 0fafc1469701dfd6e4ae81dfc27fddb905ad602f (patch) | |
| tree | bcfcff476a4d140f74f774523b193cc296c8d2d0 | |
| parent | 65bae05af453ea0ea3ef9d8400374abb7c6bf7a2 (diff) | |
server: Simplify delete_conn_data
| -rw-r--r-- | main.c | 14 | 
1 files changed, 2 insertions, 12 deletions
| @@ -58,29 +58,19 @@ static void delete_conn_data(int fd){  	debug("Deleting conn_data for fd=%d",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); -			broadcast_online_change(item->cd.userid); -		} -		conn_hash[fd%CONN_HASH_SIZE]=item->next; -		conn_data_nullify(&item->cd); -		free(item); -		return; -	}  	struct hash_item *parent=NULL;  	while(item&&item->cd.fd!=fd){  		parent=item;  		item=item->next;  	} -	assert(parent);  	assert(item);  	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; +	if(parent)parent->next=item->next; +	else conn_hash[fd%CONN_HASH_SIZE]=item->next;  	free(item);  } | 
