diff options
Diffstat (limited to 'command.c')
-rw-r--r-- | command.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -212,10 +212,13 @@ static bool cmd_send(struct conn_data *data,const char *tag,const char **args){ struct db_user_list members=db_get_members(roomid); for(i64 i=0;i<members.count;i++){ - int fd=userdata_online(members.list[i].id); - if(fd!=-1&&fd!=data->fd){ - send_push(fd,"message",args[1]); - // TODO: unregister and close users that aren't reachable anymore; maybe ping instead? + i64 nfds; + const int *fds=userdata_online(members.list[i].id,&nfds); + if(nfds<=0)continue; + for(i64 j=0;j<nfds;j++){ + if(fds[j]!=data->fd){ + send_push(fds[j],"message",args[1]); + } } } |