]> rtime.felk.cvut.cz Git - socketcan-devel.git/commitdiff
When sending a sequence, we need to resend the same frame when poll() returns.
authorhartkopp <hartkopp@030b6a49-0b11-0410-94ab-b0dab22257f2>
Fri, 26 Feb 2010 08:38:47 +0000 (08:38 +0000)
committerhartkopp <hartkopp@030b6a49-0b11-0410-94ab-b0dab22257f2>
Fri, 26 Feb 2010 08:38:47 +0000 (08:38 +0000)
Fixed that to be a valid data source e.g. for ptx cansequence.

git-svn-id: svn://svn.berlios.de//socketcan/trunk@1148 030b6a49-0b11-0410-94ab-b0dab22257f2

can-utils/cangen.c

index df6b77f60d594a07af5f259f93dc1634f78b681f..898068b9829e4d1a9589f4639e5419be9bc29ec1 100644 (file)
@@ -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++;