mirror of
https://github.com/linux-can/can-utils.git
synced 2026-08-05 06:20:00 +02:00
Fixed checking of CAN interface name commandline parameter.
Cosmetics.
This commit is contained in:
+14
-4
@@ -71,6 +71,7 @@
|
|||||||
#define U64_DATA(p) (*(unsigned long long*)(p)->data)
|
#define U64_DATA(p) (*(unsigned long long*)(p)->data)
|
||||||
|
|
||||||
#define SETFNAME "sniffset."
|
#define SETFNAME "sniffset."
|
||||||
|
#define ANYDEV "any"
|
||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
|
|
||||||
@@ -175,6 +176,7 @@ void print_usage(char *prg)
|
|||||||
fprintf(stderr, " -t <time> (timeout for ID display [x100ms] default: %d)\n", TIMEOUT);
|
fprintf(stderr, " -t <time> (timeout for ID display [x100ms] default: %d)\n", TIMEOUT);
|
||||||
fprintf(stderr, " -h <time> (hold marker on changes [x100ms] default: %d)\n", HOLD);
|
fprintf(stderr, " -h <time> (hold marker on changes [x100ms] default: %d)\n", HOLD);
|
||||||
fprintf(stderr, " -l <time> (loop time (display) [x100ms] default: %d)\n", LOOP);
|
fprintf(stderr, " -l <time> (loop time (display) [x100ms] default: %d)\n", LOOP);
|
||||||
|
fprintf(stderr, "Use interface name '%s' to receive from all can-interfaces\n", ANYDEV);
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
fprintf(stderr, "%s", manual);
|
fprintf(stderr, "%s", manual);
|
||||||
}
|
}
|
||||||
@@ -290,12 +292,20 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
addr.can_family = AF_CAN;
|
addr.can_family = AF_CAN;
|
||||||
strcpy(ifr.ifr_name, argv[optind]);
|
|
||||||
ioctl(s, SIOCGIFINDEX, &ifr);
|
if (strcmp(ANYDEV, argv[optind])) {
|
||||||
addr.can_ifindex = ifr.ifr_ifindex;
|
strcpy(ifr.ifr_name, argv[optind]);
|
||||||
|
if (ioctl(s, SIOCGIFINDEX, &ifr) < 0) {
|
||||||
|
perror("SIOCGIFINDEX");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
addr.can_ifindex = ifr.ifr_ifindex;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
addr.can_ifindex = 0; /* any can interface */
|
||||||
|
|
||||||
if (connect(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
|
if (connect(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
|
||||||
perror("bind");
|
perror("connect");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user