diff options
| author | tomsmeding <tom.smeding@gmail.com> | 2017-05-24 09:43:03 +0200 | 
|---|---|---|
| committer | tomsmeding <tom.smeding@gmail.com> | 2017-05-24 09:43:03 +0200 | 
| commit | 0cfd3e87bba5faee5994dc915ab6485f0cf6832c (patch) | |
| tree | d65e50e1591c0f81727d38601c911b9f168fd304 | |
| parent | ce2945afa3c4a477eef7fd0db3d58b6395c18774 (diff) | |
server: Only send push notifs to offline users
| -rw-r--r-- | firebase.c | 2 | ||||
| -rw-r--r-- | user_data.c | 4 | 
2 files changed, 4 insertions, 2 deletions
| @@ -4,6 +4,7 @@  #include <assert.h>  #include "db.h"  #include "firebase.h" +#include "user_data.h"  #define JS_PLUGIN_PATH "firebase-io/firebase-io.js" @@ -126,6 +127,7 @@ void firebase_send_message(const char *room,i64 roomid,const char *user,const ch  	struct db_user_list members=db_list_members(roomid);  	for(i64 i=0;i<members.count;i++){ +		if(userdata_online(members.list[i].id,NULL))continue;  		struct db_strings_list tokens=db_user_tokens(members.list[i].id);  		for(i64 j=0;j<tokens.count;j++){  			token_send(tokens.list[j],room,user,msg); diff --git a/user_data.c b/user_data.c index 5e7c028..e7d2e2a 100644 --- a/user_data.c +++ b/user_data.c @@ -90,10 +90,10 @@ void userdata_unregister(i64 userid,int fd){  const int* userdata_online(i64 userid,i64 *nfds){  	struct hash_item *item=find_userdata(userid);  	if(!item){ -		*nfds=0; +		if(nfds)*nfds=0;  		return NULL;  	}  	assert(item->data.fds_len!=0); -	*nfds=item->data.fds_len; +	if(nfds)*nfds=item->data.fds_len;  	return item->data.fds;  } | 
