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; } |