aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2016-03-14 06:15:04 +0200
committerArnold D. Robbins <arnold@skeeve.com>2016-03-14 06:15:04 +0200
commite53e3aac9604a9ce7563f045249b41ebfb0c2e4e (patch)
treea77e2cc0545e13dc2d07eed93acdc83b32958aae
parente3cc36f1f2f7172ea561664e34bec54c3436297a (diff)
downloadegawk-e53e3aac9604a9ce7563f045249b41ebfb0c2e4e.tar.gz
egawk-e53e3aac9604a9ce7563f045249b41ebfb0c2e4e.tar.bz2
egawk-e53e3aac9604a9ce7563f045249b41ebfb0c2e4e.zip
Make UDP networking more-or-less work again.
-rw-r--r--ChangeLog6
-rw-r--r--io.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 0f700764..7160c86b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-03-14 Arnold D. Robbins <arnold@skeeve.com>
+
+ * io.c (socketopen): For SOCK_DGRAM, set read_len to sizeof
+ remote_addr. Makes UDP more or less work again.
+ Thanks to Juergen Kahrs for the fix.
+
2016-03-10 Arnold D. Robbins <arnold@skeeve.com>
* builtin.c (do_system): Further improvements. Catch core dump
diff --git a/io.c b/io.c
index d700d87a..d4435684 100644
--- a/io.c
+++ b/io.c
@@ -1525,7 +1525,7 @@ socketopen(int family, int type, const char *localpname,
#ifdef MSG_PEEK
char buf[10];
struct sockaddr_storage remote_addr;
- socklen_t read_len = 0;
+ socklen_t read_len = sizeof(remote_addr);
if (recvfrom(socket_fd, buf, 1, MSG_PEEK,
(struct sockaddr *) & remote_addr,