FreeCalypso > hg > freecalypso-tools
diff rfcal/cmu200/dispatch.c @ 196:47d56330609d
fc-cmu200d: skeleton complete, ready to start adding meat
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 24 Apr 2017 02:17:04 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rfcal/cmu200/dispatch.c Mon Apr 24 02:17:04 2017 +0000 @@ -0,0 +1,38 @@ +/* + * This module contains the code that dispatches client commands. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> + +extern char *client_cmd_fields[]; +extern int client_cmd_nfields; + +cmd_ping() +{ + send_socket_response("+Pong\n"); + return(0); +} + +static struct cmdtab { + char *cmd_kw; + int (*handler)(); +} cmdtab[] = { + {"ping", cmd_ping}, + {0, 0} +}; + +dispatch_client_command() +{ + struct cmdtab *tp; + + for (tp = cmdtab; tp->cmd_kw; tp++) + if (!strcmp(client_cmd_fields[0], tp->cmd_kw)) + break; + if (tp->handler) + return tp->handler(); + send_socket_response("-Unknown or unimplemented command\n"); + return(0); +}