#! /bin/sh /usr/share/dpatch/dpatch-run ## fix-return-values.dpatch by ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: No description. @DPATCH@ diff -urNad nstx-1.1-beta6~/nstx_tuntap.c nstx-1.1-beta6/nstx_tuntap.c --- nstx-1.1-beta6~/nstx_tuntap.c 2009-10-10 13:57:50.000000000 +0200 +++ nstx-1.1-beta6/nstx_tuntap.c 2009-10-10 13:58:17.000000000 +0200 @@ -266,7 +266,21 @@ sendtun(const char *data, size_t len) { // printf("Sent len %d, csum %d\n", len, checksum(data, len)); - write(tfd, data, len); + + size_t count; + ssize_t ret; + + for (count = 0; count < len; count += ret) { + ret = write(tfd, data + count, len - count); + + if (ret < 0) { + if (errno == EINTR) { + ret = 0; + continue; + } + return; + } + } } void