From 94b96aec6bbd5397e10f45fcf2419fad2f2ec800 Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Thu, 25 May 2017 11:38:38 +0200 Subject: server: Client can mark fd's active/inactive --- user_data.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'user_data.c') diff --git a/user_data.c b/user_data.c index b6a8012..f92d4d4 100644 --- a/user_data.c +++ b/user_data.c @@ -97,19 +97,20 @@ void userdata_unregister(i64 userid,int fd){ } } -void userdata_mark_active(i64 userid,int fd){ +void userdata_mark_active(i64 userid,int fd,bool active){ struct hash_item *item=find_userdata(userid); if(!item){ - die("userdata_mark_active(%" PRIi64 ") while nonexistent",userid); + die("userdata_mark_active(%" PRIi64 ", %d, %d) with nonexistent userid",userid,fd,active); } i64 i; for(i=0;idata.len;i++){ if(item->data.fds[i]==fd)break; } if(i==item->data.len){ - die("userdata_mark_active(%" PRIi64 ", %d) while nonexistent",userid,fd); + die("userdata_mark_active(%" PRIi64 ", %d, %d) while nonexistent",userid,fd,active); } - item->data.last_active[i]=make_timestamp(); + + item->data.last_active[i]=active?make_timestamp():-1; } bool userdata_is_active(i64 userid){ -- cgit v1.2.3-54-g00ecf