X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/53a941d3f97a50964587c6e9533b1e43e74a57a8..c14225f66a85e219ff985884ea8c5c1f682202b7:/pkstream/pkstream.c?ds=inline
diff --git a/pkstream/pkstream.c b/pkstream/pkstream.c
index b84c98b2..4e565e00 100644
--- a/pkstream/pkstream.c
+++ b/pkstream/pkstream.c
@@ -9,19 +9,18 @@
*
* This file is part of Trivial IP Encryption (TrIPE).
*
- * TrIPE is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * TrIPE is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your
+ * option) any later version.
*
- * TrIPE is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * TrIPE is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
*
* You should have received a copy of the GNU General Public License
- * along with TrIPE; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * along with TrIPE. If not, see .
*/
/*----- Header files ------------------------------------------------------*/
@@ -54,6 +53,8 @@
#include
#include
+#include "util.h"
+
/*----- Data structures ---------------------------------------------------*/
typedef struct pk {
@@ -127,7 +128,7 @@ static void rdtcp(octet *b, size_t sz, pkbuf *pk, size_t *k, void *vp)
}
pksz = LOAD16(b);
if (pksz + 2 == sz) {
- write(fd_udp, b + 2, pksz);
+ DISCARD(write(fd_udp, b + 2, pksz));
selpk_want(&p->p, 2);
} else {
selpk_want(&p->p, pksz + 2);
@@ -392,6 +393,7 @@ int main(int argc, char *argv[])
break;
case 'b':
parseaddr(optarg, &bindaddr.sin_addr, 0);
+ cw.me.sin_addr = bindaddr.sin_addr;
break;
case 'c':
parseaddr(optarg, &connaddr.sin_addr, &pt);
@@ -434,8 +436,10 @@ int main(int argc, char *argv[])
} else
dofwd(STDIN_FILENO, STDOUT_FILENO);
- for (;;)
- sel_select(&sel);
+ for (;;) {
+ if (sel_select(&sel) && errno != EINTR)
+ die(1, "select failed: %s", strerror(errno));
+ }
return (0);
}