diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2008-09-10 11:24:25 +0000 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2008-09-10 11:24:25 +0000 |
commit | 4dc7f6538ccbddf40af2bd6b03e56127d721b456 (patch) | |
tree | 96fc93f910f29647a4fd96090ee74687011fbf3e /src/cansend.c | |
parent | 86f71be175210e715261432b94784269a2fc2052 (diff) | |
download | canutils-4dc7f6538ccbddf40af2bd6b03e56127d721b456.tar.gz canutils-4dc7f6538ccbddf40af2bd6b03e56127d721b456.tar.xz |
git-svn-id: https://iocaste.extern.pengutronix.de/svn/canutils/trunks/canutils-3.0-trunk@92 5fd5a299-6ef2-0310-aa18-8b01d7c39d8c
Diffstat (limited to 'src/cansend.c')
-rw-r--r-- | src/cansend.c | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/src/cansend.c b/src/cansend.c index fb534e9..caec590 100644 --- a/src/cansend.c +++ b/src/cansend.c @@ -24,7 +24,7 @@ extern int optind, opterr, optopt; static void print_usage(char *prg) { fprintf(stderr, - "Usage: %s <can-interface> [Options] <can-msg>\n" + "Usage: %s [<can-interface>] [Options] <can-msg>\n" "<can-msg> can consist of up to 8 bytes given as a space separated list\n" "Options:\n" " -i, --identifier=ID CAN Identifier (default = 1)\n" @@ -47,13 +47,14 @@ enum { int main(int argc, char **argv) { - int family = PF_CAN, type = SOCK_RAW, proto = CAN_RAW; + struct can_frame frame; + struct ifreq ifr; struct sockaddr_can addr; + char *interface = "can0"; + int family = PF_CAN, type = SOCK_RAW, proto = CAN_RAW; + int loopcount = 1, infinite = 0; int s, opt, ret, i, dlc = 0, rtr = 0, extended = 0; - struct can_frame frame; int verbose = 0; - int loopcount = 1, infinite = 0; - struct ifreq ifr; struct option long_options[] = { { "help", no_argument, 0, 'h' }, @@ -121,19 +122,11 @@ int main(int argc, char **argv) } } - if (optind == argc) { - print_usage(basename(argv[0])); - exit(0); - } - - if (argv[optind] == NULL) { - fprintf(stderr, "No Interface supplied\n"); - exit(-1); - } + if (optind != argc) + interface = argv[optind]; - if (verbose) - printf("interface = %s, family = %d, type = %d, proto = %d\n", - argv[optind], family, type, proto); + printf("interface = %s, family = %d, type = %d, proto = %d\n", + interface, family, type, proto); s = socket(family, type, proto); if (s < 0) { @@ -142,7 +135,7 @@ int main(int argc, char **argv) } addr.can_family = family; - strcpy(ifr.ifr_name, argv[optind]); + strcpy(ifr.ifr_name, interface); if (ioctl(s, SIOCGIFINDEX, &ifr)) { perror("ioctl"); return 1; @@ -154,7 +147,6 @@ int main(int argc, char **argv) return 1; } - for (i = optind + 1; i < argc; i++) { frame.data[dlc] = strtoul(argv[i], NULL, 0); dlc++; |