diff options
| -rw-r--r-- | command.c | 6 | ||||
| -rw-r--r-- | net.c | 8 | ||||
| -rw-r--r-- | net.h | 1 | 
3 files changed, 15 insertions, 0 deletions
@@ -258,6 +258,11 @@ static bool cmd_history(struct conn_data *data,const char *tag,const char **args  	return closed;  } +static bool cmd_ping(struct conn_data *data,const char *tag,const char **args){ +	(void)args; +	return net_send_pong(data->fd,tag); +} +  struct cmd_info{  	const char *cmdname; @@ -275,6 +280,7 @@ static const struct cmd_info commands[]={  	{"invite",2,false,cmd_invite},  	{"send",2,true,cmd_send},  	{"history",2,false,cmd_history}, +	{"ping",0,false,cmd_ping},  };  #define NCOMMANDS (sizeof(commands)/sizeof(commands[0])) @@ -73,3 +73,11 @@ bool net_send_list(int fd,const char *tag,i64 count,const char **list){  	return net_send_raw_text(fd,"\n",1);  } + +bool net_send_pong(int fd,const char *tag){ +	char *buf=NULL; +	i64 len=asprintf(&buf,"%s pong\n",tag); +	bool closed=net_send_raw_text(fd,buf,len); +	free(buf); +	return closed; +} @@ -8,3 +8,4 @@ bool net_send_ok(int fd,const char *tag);  bool net_send_error(int fd,const char *tag,const char *msg);  bool net_send_name(int fd,const char *tag,const char *name);  bool net_send_list(int fd,const char *tag,i64 count,const char **list); +bool net_send_pong(int fd,const char *tag);  | 
