FreeCalypso > hg > freecalypso-sw
diff rvinterf/asyncshell/sendarb.c @ 1013:6eee1e547778
fc-shell: arbitrary send command implemented in interactive mode
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Sun, 20 Mar 2016 22:27:07 +0000 |
parents | 93f4fc26b204 |
children |
line wrap: on
line diff
--- a/rvinterf/asyncshell/sendarb.c Sun Mar 20 22:06:11 2016 +0000 +++ b/rvinterf/asyncshell/sendarb.c Sun Mar 20 22:27:07 2016 +0000 @@ -10,15 +10,15 @@ #include <stdlib.h> #include "limits.h" -cmd_send_oneshot(argc, argv) +cmd_send_common(argc, argv) char **argv; { u_char sendpkt[MAX_PKT_TO_TARGET]; - unsigned pktlen = argc - 1, i; + unsigned pktlen = argc, i; char *endp; for (i = 0; i < pktlen; i++) { - sendpkt[i] = strtoul(argv[i+1], &endp, 16); + sendpkt[i] = strtoul(argv[i], &endp, 16); if (*endp) { printf( "error: all arguments to send command must be hex bytes\n"); @@ -29,3 +29,23 @@ send_pkt_to_target(sendpkt, pktlen); return(0); } + +void +cmd_send_interactive(argstr) + char *argstr; +{ + char *argv[MAX_PKT_TO_TARGET+1]; + int argc, rc; + + rc = parse_interactive_command_into_argv(argstr, argv, 1, + MAX_PKT_TO_TARGET, &argc); + if (rc < 0) + return; + cmd_send_common(argc, argv); +} + +cmd_send_oneshot(argc, argv) + char **argv; +{ + return cmd_send_common(argc - 1, argv + 1); +}