-userv-utils (0.4~beta2) unstable; urgency=low
+userv-utils (0.4.2) unstable; urgency=low
+
+ ipif bugfix:
+ * Fix failure which occurs when input data starts to back up:
+ service.c:866: copydata: Assertion `r < sizeof(input_buf)' failed.
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Sun, 15 Jan 2012 01:00:00 +0000
+
+userv-utils (0.4.1) unstable; urgency=low
+
+ ipif bugfixes:
+ * Ignore empty packets (ie consecutive END bytes), as tun rejects
+ them with EINVAL.
+ * Tolerate ENOMEM from tun.
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Sat, 14 Jan 2012 15:46:53 +0000
+
+userv-utils (0.4) unstable; urgency=low
ipif:
* Now uses tun, not slip. All modern Linux kernels have tun support,
been implicated in kernel problems. Interfaces are now called
"userv%d" (ie, userv0, userv1, etc.). Only "slip" is now supported.
- --
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Sat, 14 Jan 2012 15:24:57 +0000
userv-utils (0.4~beta1) unstable; urgency=low
Source: userv-utils
Section: admin
Priority: extra
-Maintainer: Ian Jackson <ian@chiark.greenend.org.uk>
+Maintainer: Ian Jackson <ijackson@chiark.greenend.org.uk>
Standards-Version: 2.1.1.0
Package: userv-ipif
}
static void rx_packet(const uint8_t *packet, int len) {
+ if (!len)
+ return;
for (;;) {
int r= write(tunfd, packet, len);
if (r<0) {
if (errno==EINTR) continue;
- if (errno==EAGAIN) return; /* oh well */
+ if (errno==EAGAIN || errno==ENOMEM) return; /* oh well */
sysfatal("error writing packet to tun (transmitting)");
}
assert(r==len);
r= read(0, input_buf + input_waiting, want);
if (r>0) {
input_waiting += r;
- assert(r < sizeof(input_buf));
+ assert(input_waiting <= sizeof(input_buf));
more_rx_data(input_buf, rx_packet_buf);
} else if (r==0) {
terminate(0);