]> rtime.felk.cvut.cz Git - sojka/can-utils.git/commitdiff
When sending a sequence, we need to resend the same frame when poll() returns.
authorOliver Hartkopp <socketcan@hartkopp.net>
Fri, 26 Feb 2010 08:38:47 +0000 (08:38 +0000)
committerOliver Hartkopp <socketcan@hartkopp.net>
Fri, 26 Feb 2010 08:38:47 +0000 (08:38 +0000)
Fixed that to be a valid data source e.g. for ptx cansequence.

cangen.c

index df6b77f60d594a07af5f259f93dc1634f78b681f..898068b9829e4d1a9589f4639e5419be9bc29ec1 100644 (file)
--- a/cangen.c
+++ b/cangen.c
@@ -341,6 +341,7 @@ int main(int argc, char **argv)
                                fprint_canframe(stdout, &frame, "\n", 1);
                }
 
+resend:
                nbytes = write(s, &frame, sizeof(struct can_frame));
                if (nbytes < 0) {
                        if (errno != ENOBUFS) {
@@ -356,7 +357,8 @@ int main(int argc, char **argv)
                                if (poll(&fds, 1, polltimeout) < 0) {
                                        perror("poll");
                                        return 1;
-                               }
+                               } else
+                                       goto resend;
                        } else
                                enobufs_count++;