summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--improve-inet.mbx6362
1 files changed, 6362 insertions, 0 deletions
diff --git a/improve-inet.mbx b/improve-inet.mbx
new file mode 100644
index 00000000..5c9b5e00
--- /dev/null
+++ b/improve-inet.mbx
@@ -0,0 +1,6362 @@
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Jun 30 17:19:40 2013
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv4.telemetry-investments.com (ti21 [192.168.78.21])
+ by ti119.telemetry-investments.com (Postfix) with ESMTP id F3C66383
+ for <schorr@schorr.telemetry-investments.com>; Sun, 30 Jun 2013 17:19:39 -0400 (EDT)
+Received: by sv4.telemetry-investments.com (Postfix)
+ id E21951CCE; Sun, 30 Jun 2013 17:19:39 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv4.telemetry-investments.com (Postfix) with ESMTP id CC6C41CBB
+ for <aschorr@telemetry-investments.com>; Sun, 30 Jun 2013 17:19:39 -0400 (EDT)
+Received: from localhost ([::1]:57504 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1UtP23-0005F1-CT
+ for aschorr@telemetry-investments.com; Sun, 30 Jun 2013 17:19:39 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:39119)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UtP1y-0005EA-Nz
+ for gawk-devel@gnu.org; Sun, 30 Jun 2013 17:19:38 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UtP1u-00006i-Dc
+ for gawk-devel@gnu.org; Sun, 30 Jun 2013 17:19:34 -0400
+Received: from gw3a.telemetry-investments.com ([38.76.0.51]:50548
+ helo=sv3.telemetry-investments.com)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UtP1q-000064-BJ; Sun, 30 Jun 2013 17:19:26 -0400
+Received: from ti119.telemetry-investments.com (ti119 [192.168.53.119])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 621041DCB;
+ Sun, 30 Jun 2013 17:19:25 -0400 (EDT)
+Received: by ti119.telemetry-investments.com (Postfix, from userid 300)
+ id 152FA3EC; Sun, 30 Jun 2013 17:19:25 -0400 (EDT)
+Date: Sun, 30 Jun 2013 17:19:24 -0400
+From: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+To: Aharon Robbins <arnold@skeeve.com>
+Message-ID: <20130630211924.GA17745@ti119.telemetry-investments.com>
+References: <20130531144140.GA12968@ti119.telemetry-investments.com>
+ <83fvx32ns4.fsf@gnu.org>
+ <20130531151439.GA15359@ti119.telemetry-investments.com>
+ <83bo7r2mne.fsf@gnu.org>
+ <20130531153803.GA16477@ti119.telemetry-investments.com>
+ <838v2v2g3b.fsf@gnu.org>
+ <20130531181542.GA24861@ti119.telemetry-investments.com>
+ <83zjvb0yvq.fsf@gnu.org> <51A91CD6.3010904@fi.upm.es>
+ <201306271422.r5REMUgo015427@skeeve.com>
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="6c2NcOVqGQ03X4Wi"
+Content-Disposition: inline
+In-Reply-To: <201306271422.r5REMUgo015427@skeeve.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic]
+X-Received-From: 38.76.0.51
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] generalizing socket i/o
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Status: RO
+X-Status: A
+Content-Length: 11770
+Lines: 320
+
+
+--6c2NcOVqGQ03X4Wi
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+
+Hi all,
+
+I started to work on this. I have encountered a few "challenges" :-).
+Here's a test program that demonstrates some basic functionality:
+
+@load "select"
+@load "time"
+
+BEGIN {
+ start = gettimeofday()
+ cmd["echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3"] = ""
+ cmd["sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3"] = ""
+
+ # XXX fire up child processes: we need a way to launch them without reading
+ # the first line of input!
+ for (i in cmd) {
+ i | getline x
+ printf "%.6f cmd [%s]: %s\n", gettimeofday()-start, i, x
+ }
+ delete writefds
+ delete exceptds
+ while (length(cmd) > 0) {
+ delete readfds
+ for (i in cmd)
+ readfds[i] = ""
+ switch (select(readfds, writefds, exceptfds)) {
+ case -1:
+ printf "Error: select failed: %s\n", ERRNO > "/dev/stderr"
+ exit 1
+ case 0:
+ print "Timeout. Trying again."
+ break
+ default:
+ for (i in readfds) {
+ if ((rc = (i | getline x)) > 0)
+ printf "%.6f cmd [%s]: %s\n", gettimeofday()-start, i, x
+ else {
+ delete cmd[i]
+ if (rc < 0) {
+ printf "Error: getline(%s) failed, errno = %s\n", i, ERRNO
+ erc = 1
+ }
+ }
+ }
+ break
+ }
+ }
+ exit erc+0
+}
+
+And the output:
+
+schorr@ti119: ./gawk -f /tmp/multiplex.awk
+1.005721 cmd [sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3]: B:msg1
+1.007885 cmd [echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3]: A:msg1
+2.009040 cmd [echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3]: A:msg2
+3.007013 cmd [sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3]: B:msg2
+4.008378 cmd [sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3]: B:msg3
+4.010283 cmd [echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3]: A:msg3
+schorr@ti119: ./gawk -f /tmp/multiplex.awk
+1.002733 cmd [sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3]: B:msg1
+1.004928 cmd [echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3]: A:msg1
+2.006261 cmd [echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3]: A:msg2
+3.004054 cmd [sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3]: B:msg2
+4.005410 cmd [sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3]: B:msg3
+4.007458 cmd [echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3]: A:msg3
+
+I haven't pushed the branch yet, because I'm not quite ready to commit
+this code. I first need to figure out how to solve the following problems:
+
+1. When trying to read from the current input file (i.e. the data found in
+the FILENAME), there's a bootstrapping problem. When the BEGIN rule executes,
+the input files have not been opened yet. So if one tries to lookup the
+current value of FILENAME, it is NULL. In normal execution, when one
+calls getline or processes the first line of input the regular way, the
+code calls "nextfile(& curfile, false)". You can see this in "interpret.h"
+in the Op_newfile and Op_K_getline sections. That's what bootstraps the
+reading of the files. After nextfile is called the first time, it returns
+a positive value, and this tells the calling code to run the beginfile logic
+by executing 'JUMPTO((pc + 1)->target_beginfile'. I'd like the lookup_file
+code to see that curfile is NULL and recognize that it needs to bootstrap
+the file reading by calling nextfile(& curfile, false) and then execute
+the beginfile rules, but I don't know how to run the BEGINFILE targets.
+I would appreciate help with that.
+
+2. I will need a way to bootstrap pipes and coprocess fds. In the usual case,
+gawk calls io.c:redirect() to open a pipe when the first getline call occurs.
+In our case, we want to open the popes and/or sockets prior to calling select
+the first time. I will need to add a new open_file API call that takes the
+name of a command and redirection type and calls the redirect() function.
+My current plan is to change the select calling convention so that the array
+value for a given filename contains the requested open mode (one of ">", ">>",
+"<", "|&", and "|"). So in the above program, it might say:
+ cmd["echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3"] = "|"
+ cmd["sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3"] = "|"
+Since they appear in the readfds array, we know that this is an input
+pipe, not output.
+
+3. The tcp server logic was designed to be single-threaded. If you try to read
+input from a server socket, it waits for a client to connect, closes the
+listener socket, and then processes I/O from the newly connected socket. If I
+could start over, I'd change the TCP server mechanism to work something like
+this:
+
+ server = "/inet/tcp/8080/0/0"
+ while (1) {
+ # wait for a client to connect
+ server |& getline client
+ # at this point, client contains the handle for the connected socket,
+ # something like "/inet/tcp/8080/client-host/client-port", and the server
+ # socket should still be open to accept new connections!
+ while ((client |& getline x) > 0)
+ printf "client %s says: %s\n", client, x
+ close(client)
+ }
+
+If it had been done that way, it would be easy to use the new select
+multiplexing mechanisms to service multiple connected clients at once.
+Since it was not designed that way, I'm not sure how best to remedy this.
+I guess we can add a function to open a socket to listen for connections,
+and another to accept connections, but it may be painful to integrate this
+into the existing socket I/O scheme. A separate BSD-style API would be
+easy to implement, but it seems suboptimal to have 2 different approaches
+to networking. Does anbody have any thoughts on how best to solve this?
+
+That's it for now. The current pre-alpha version of the select extension
+is attached. Arnold's flatten_array API makes it pretty easy -- thanks
+Arnold!
+
+I think I know how to solve problem #2, but I'm currently stumped on #1 (I
+think I need to find a way to run the rule_block[BEGINFILE] code, but I don't
+know how). I don't consider #3 an urgent problem right now, but we should
+figure out how best to handle this to support socket I/O properly.
+
+I haven't started to work on signal support yet.
+
+Regards,
+Andy
+
+--6c2NcOVqGQ03X4Wi
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: attachment; filename="select.c"
+
+/*
+ * select.c - Builtin functions to provide select I/O multiplexing.
+ */
+
+/*
+ * Copyright (C) 2013 the Free Software Foundation, Inc.
+ *
+ * This file is part of GAWK, the GNU implementation of the
+ * AWK Programming Language.
+ *
+ * GAWK 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.
+ *
+ * GAWK 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <assert.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include "gawkapi.h"
+
+#include "gettext.h"
+#define _(msgid) gettext(msgid)
+#define N_(msgid) msgid
+
+static const gawk_api_t *api; /* for convenience macros to work */
+static awk_ext_id_t *ext_id;
+static const char *ext_version = "ordchr extension: version 1.0";
+static awk_bool_t (*init_func)(void) = NULL;
+
+int plugin_is_GPL_compatible;
+
+#if defined(HAVE_SELECT) && defined(HAVE_SYS_SELECT_H)
+#include <sys/select.h>
+#endif
+
+#ifdef HAVE_SIGNAL_H
+#include <signal.h>
+#endif
+
+/* do_ord --- return numeric value of first char of string */
+
+static awk_value_t *
+do_select(int nargs, awk_value_t *result)
+{
+ static const char *argname[] = { "read", "write", "except" };
+ struct {
+ awk_value_t array;
+ awk_flat_array_t *flat;
+ fd_set bits;
+ int *array2fd;
+ } fds[3];
+ awk_value_t timeout_arg;
+ int i;
+ struct timeval maxwait;
+ struct timeval *timeout;
+ int nfds = 0;
+ int rc;
+
+ if (do_lint && nargs > 5)
+ lintwarn(ext_id, _("select: called with too many arguments"));
+
+ for (i = 0; i < sizeof(fds)/sizeof(fds[0]); i++) {
+ size_t j;
+
+ if (! get_argument(i, AWK_ARRAY, & fds[i].array)) {
+ warning(ext_id, _("select: bad array parameter `%s'"), argname[i]);
+ update_ERRNO_string(_("select: bad array parameter"));
+ return make_number(-1, result);
+ }
+ /* N.B. flatten_array fails for empty arrays, so that's OK */
+ FD_ZERO(&fds[i].bits);
+ if (flatten_array(fds[i].array.array_cookie, &fds[i].flat)) {
+ emalloc(fds[i].array2fd, int *, fds[i].flat->count*sizeof(int), "select");
+ for (j = 0; j < fds[i].flat->count; j++) {
+ const awk_input_buf_t *buf;
+ char junk[3];
+
+ if ((buf = lookup_file(fds[i].flat->elements[j].index.str_value.str, fds[i].flat->elements[j].index.str_value.len)) != NULL)
+ fds[i].array2fd[j] = buf->fd;
+ else if ((sscanf(fds[i].flat->elements[j].index.str_value.str, "%d%s", & fds[i].array2fd[j], junk) != 1) || (fds[i].array2fd[j] < 0)) {
+ warning(ext_id, _("select: lookup_file failed on `%s'"), fds[i].flat->elements[j].index.str_value.str);
+ update_ERRNO_string(_("select: lookup_file failed"));
+ if (! release_flattened_array(fds[i].array.array_cookie, fds[i].flat))
+ warning(ext_id, _("select: release_flattened_array failed"));
+ free(fds[i].array2fd);
+ return make_number(-1, result);
+ }
+ FD_SET(fds[i].array2fd[j], &fds[i].bits);
+ if (nfds <= fds[i].array2fd[j])
+ nfds = fds[i].array2fd[j]+1;
+ }
+ }
+ else
+ fds[i].flat = NULL;
+ }
+ if (get_argument(3, AWK_NUMBER, &timeout_arg)) {
+ double secs = timeout_arg.num_value;
+ if (secs < 0) {
+ warning(ext_id, _("select: treating negative timeout as zero"));
+ secs = 0;
+ }
+ maxwait.tv_sec = secs;
+ maxwait.tv_usec = (secs-(double)maxwait.tv_sec)*1000000.0;
+ timeout = &maxwait;
+ } else
+ timeout = NULL;
+ rc = select(nfds, &fds[0].bits, &fds[1].bits, &fds[2].bits, timeout);
+
+ if (rc < 0) {
+ update_ERRNO_int(errno);
+ /* bit masks are undefined, so delete all array entries */
+ for (i = 0; i < sizeof(fds)/sizeof(fds[0]); i++) {
+ if (fds[i].flat) {
+ size_t j;
+ for (j = 0; j < fds[i].flat->count; j++)
+ fds[i].flat->elements[j].flags |= AWK_ELEMENT_DELETE;
+ if (! release_flattened_array(fds[i].array.array_cookie, fds[i].flat))
+ warning(ext_id, _("select: release_flattened_array failed"));
+ free(fds[i].array2fd);
+ }
+ }
+ return make_number(rc, result);
+ }
+
+ for (i = 0; i < sizeof(fds)/sizeof(fds[0]); i++) {
+ if (fds[i].flat) {
+ size_t j;
+ /* remove array elements not set in the bit mask */
+ for (j = 0; j < fds[i].flat->count; j++) {
+ if (! FD_ISSET(fds[i].array2fd[j], &fds[i].bits))
+ fds[i].flat->elements[j].flags |= AWK_ELEMENT_DELETE;
+ }
+ if (! release_flattened_array(fds[i].array.array_cookie, fds[i].flat))
+ warning(ext_id, _("select: release_flattened_array failed"));
+ free(fds[i].array2fd);
+ }
+ }
+
+ /* Set the return value */
+ return make_number(rc, result);
+}
+
+static awk_ext_func_t func_table[] = {
+ { "select", do_select, 5 },
+};
+
+/* define the dl_load function using the boilerplate macro */
+
+dl_load_func(func_table, select, "")
+
+--6c2NcOVqGQ03X4Wi--
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Jun 30 21:09:45 2013
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti119.telemetry-investments.com (Postfix) with ESMTP id CF54A383
+ for <schorr@schorr.telemetry-investments.com>; Sun, 30 Jun 2013 21:09:45 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id C48A81DC7; Sun, 30 Jun 2013 21:09:45 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id B94DE1DB2
+ for <aschorr@telemetry-investments.com>; Sun, 30 Jun 2013 21:09:45 -0400 (EDT)
+Received: from localhost ([::1]:48598 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1UtScj-0007iC-IX
+ for aschorr@telemetry-investments.com; Sun, 30 Jun 2013 21:09:45 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:37742)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UtScf-0007hU-Ai
+ for gawk-devel@gnu.org; Sun, 30 Jun 2013 21:09:44 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UtScc-0004yQ-3z
+ for gawk-devel@gnu.org; Sun, 30 Jun 2013 21:09:41 -0400
+Received: from gw3a.telemetry-investments.com ([38.76.0.51]:53552
+ helo=sv3.telemetry-investments.com)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UtScc-0004yM-0O
+ for gawk-devel@gnu.org; Sun, 30 Jun 2013 21:09:38 -0400
+Received: from ti119.telemetry-investments.com (ti119 [192.168.53.119])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 43E4A1DB2;
+ Sun, 30 Jun 2013 21:09:37 -0400 (EDT)
+Received: by ti119.telemetry-investments.com (Postfix, from userid 300)
+ id 2F5B33EC; Sun, 30 Jun 2013 21:09:37 -0400 (EDT)
+Date: Sun, 30 Jun 2013 21:09:37 -0400
+From: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+To: Aharon Robbins <arnold@skeeve.com>
+Message-ID: <20130701010937.GA21450@ti119.telemetry-investments.com>
+References: <83fvx32ns4.fsf@gnu.org>
+ <20130531151439.GA15359@ti119.telemetry-investments.com>
+ <83bo7r2mne.fsf@gnu.org>
+ <20130531153803.GA16477@ti119.telemetry-investments.com>
+ <838v2v2g3b.fsf@gnu.org>
+ <20130531181542.GA24861@ti119.telemetry-investments.com>
+ <83zjvb0yvq.fsf@gnu.org> <51A91CD6.3010904@fi.upm.es>
+ <201306271422.r5REMUgo015427@skeeve.com>
+ <20130630211924.GA17745@ti119.telemetry-investments.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <20130630211924.GA17745@ti119.telemetry-investments.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic]
+X-Received-From: 38.76.0.51
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] pushed first version of select extension
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Status: RO
+Content-Length: 4641
+Lines: 117
+
+I just pushed a new "select" branch. It fixes the problem with starting
+coprocesses and pipes.
+
+I still don't know how to run the BEGINFILE rule for the first file.
+In gawkapi.c:api_get_file, here's where I need help:
+
+ if ((name == NULL) || (namelen == 0)) {
+ if (curfile == NULL) {
+ if (nextfile(& curfile, false) <= 0)
+ return NULL;
+ /* XXX Fix me! */
+ fputs("Bug: need to call BEGINFILE!\n", stderr);
+ }
+ return &curfile->public;
+ }
+
+Does anybody know how to solve this?
+
+This test program now works OK:
+
+@load "select"
+@load "time"
+
+BEGIN {
+ start = gettimeofday()
+ cmd["echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3"] = "|<"
+ cmd["sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3"] = "|<"
+
+ delete writefds
+ delete exceptds
+ while (length(cmd) > 0) {
+ delete readfds
+ for (i in cmd)
+ readfds[i] = cmd[i]
+ switch (select(readfds, writefds, exceptfds)) {
+ case -1:
+ printf "Error: select failed: %s\n", ERRNO > "/dev/stderr"
+ exit 1
+ case 0:
+ print "Timeout. Trying again."
+ break
+ default:
+ for (i in readfds) {
+ if ((rc = (i | getline x)) > 0)
+ printf "%.6f cmd [%s]: %s\n", gettimeofday()-start, i, x
+ else {
+ delete cmd[i]
+ if (rc < 0) {
+ printf "Error: getline(%s) failed, errno = %s\n", i, ERRNO
+ erc = 1
+ }
+ }
+ }
+ break
+ }
+ }
+ exit erc+0
+}
+
+Here's the output:
+bash-4.1$ ./gawk -f /tmp/multiplex.awk
+0.001883 cmd [echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3]: A:msg1
+1.002844 cmd [echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3]: A:msg2
+1.003278 cmd [sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3]: B:msg1
+3.003809 cmd [echo A:msg1; sleep 1; echo A:msg2; sleep 2; echo A:msg3]: A:msg3
+4.005850 cmd [sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3]: B:msg2
+4.005888 cmd [sleep 1; echo B:msg1; sleep 2; echo B:msg2; sleep 1; echo B:msg3]: B:msg3
+
+And I am still seeking input on the current behavior of TCP server sockets, as
+discussed here:
+
+On Sun, Jun 30, 2013 at 05:19:24PM -0400, Andrew J. Schorr wrote:
+> 3. The tcp server logic was designed to be single-threaded. If you try to read
+> input from a server socket, it waits for a client to connect, closes the
+> listener socket, and then processes I/O from the newly connected socket. If I
+> could start over, I'd change the TCP server mechanism to work something like
+> this:
+>
+> server = "/inet/tcp/8080/0/0"
+> while (1) {
+> # wait for a client to connect
+> server |& getline client
+> # at this point, client contains the handle for the connected socket,
+> # something like "/inet/tcp/8080/client-host/client-port", and the server
+> # socket should still be open to accept new connections!
+> while ((client |& getline x) > 0)
+> printf "client %s says: %s\n", client, x
+> close(client)
+> }
+>
+> If it had been done that way, it would be easy to use the new select
+> multiplexing mechanisms to service multiple connected clients at once.
+> Since it was not designed that way, I'm not sure how best to remedy this.
+> I guess we can add a function to open a socket to listen for connections,
+> and another to accept connections, but it may be painful to integrate this
+> into the existing socket I/O scheme. A separate BSD-style API would be
+> easy to implement, but it seems suboptimal to have 2 different approaches
+> to networking. Does anbody have any thoughts on how best to solve this?
+
+It occurs to me to wonder whether anybody actually uses TCP server sockets
+in the current implementation. I suspect it is not heavily used, since
+the current features are so limited. I wonder if it's worth changing it
+to work as I suggest above...
+
+My next steps are to implement signal handling and then look at the
+behavior of getline with timeouts and non-blocking I/O. Arnold suggested
+having getline return -2 and set ERRNO to ETIMEDOUT (or I guess EAGAIN
+for a situation where it would block). One immediate question that
+pops to mind: normally, ERRNO contains a string such as "Connection timed out",
+not ETIMEDOUT. And I assume this message varies based on locale. So I don't
+see how client code could test for this unless we define some global variables
+ETIMEDOUT and EGAIN that contain the localized versions of those messages.
+Or would it be better to hardwire ERRNO to say "ETIMEDOUT" instead of the
+localized error message associated with that?
+
+Regards,
+Andy
+
+From juergen.kahrs@googlemail.com Mon Jul 1 11:49:58 2013
+Return-Path: <juergen.kahrs@googlemail.com>
+X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on
+ ti9.telemetry-investments.com
+X-Spam-Level:
+X-Spam-Status: No, score=-2.7 required=10.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW autolearn=ham
+ version=3.3.2
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv4.telemetry-investments.com (ti21 [192.168.78.21])
+ by ti119.telemetry-investments.com (Postfix) with ESMTP id DD06C5CF
+ for <schorr@schorr.telemetry-investments.com>;
+ Mon, 1 Jul 2013 11:49:58 -0400 (EDT)
+Received: by sv4.telemetry-investments.com (Postfix)
+ id CB4C11D57; Mon, 1 Jul 2013 11:49:58 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from mail-ee0-f54.google.com (mail-ee0-f54.google.com [74.125.83.54])
+ by sv4.telemetry-investments.com (Postfix) with ESMTP id 550C31CBB
+ for <aschorr@telemetry-investments.com>; Mon, 1 Jul 2013 11:49:58 -0400 (EDT)
+Received: by mail-ee0-f54.google.com with SMTP id t10so2153775eei.41
+ for <aschorr@telemetry-investments.com>; Mon, 01 Jul 2013 08:49:57 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=message-id:date:from:user-agent:mime-version:to:subject:references
+ :in-reply-to:x-enigmail-version:content-type
+ :content-transfer-encoding;
+ bh=GYcAQb+FmlcdrJ7m8E9mFvzIkDOnXAFJ2wexQr2a5BM=;
+ b=ahG3iNgpQFXJdRAj9uG3EaZheS2obQdinsiYgH2ZBf2ML7xhBIKrXkIl3AkWtEVu5d
+ /rhBkF8eGGM+erXQh3LCgzxqiSvi9Mtemg+UYTHh/4uVCj0dhQxvGcSxsJfmf07cO4Ip
+ VbJcjGty1vljl8IiBdbS4O3i79uv1/MlupGlvVV0NH27rG2GEa55OaWOhck6HGr7HVwR
+ Qvb5Yo7a1EFW+iMVmKDY72DilqfZKE8ksHGvhug7UPwPXobiJtwfP/mxvspEwSQA5O9q
+ MM64HP0CxWvCpAYMBMaSfqONIqzbssYhtMoz44V71XL3LXz9mCpdzQvc4AxZ0ExPZI11
+ WS+w==
+X-Received: by 10.14.48.77 with SMTP id u53mr21449700eeb.154.1372693797199;
+ Mon, 01 Jul 2013 08:49:57 -0700 (PDT)
+Received: from linux-l5kq.site (ip-109-47-96-38.web.vodafone.de.
+ [109.47.96.38])
+ by mx.google.com with ESMTPSA id n42sm30617516eeh.15.2013.07.01.08.49.55
+ for <aschorr@telemetry-investments.com>
+ (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
+ Mon, 01 Jul 2013 08:49:56 -0700 (PDT)
+Message-ID: <51D1A521.2050707@googlemail.com>
+Date: Mon, 01 Jul 2013 17:49:53 +0200
+From: "=?ISO-8859-1?Q?J=FCrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+ rv:17.0) Gecko/20130510 Thunderbird/17.0.6
+MIME-Version: 1.0
+To: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+Subject: Re: [gawk-devel] pushed first version of select extension
+References: <83fvx32ns4.fsf@gnu.org>
+ <20130531151439.GA15359@ti119.telemetry-investments.com>
+ <83bo7r2mne.fsf@gnu.org>
+ <20130531153803.GA16477@ti119.telemetry-investments.com>
+ <838v2v2g3b.fsf@gnu.org>
+ <20130531181542.GA24861@ti119.telemetry-investments.com>
+ <83zjvb0yvq.fsf@gnu.org> <51A91CD6.3010904@fi.upm.es>
+ <201306271422.r5REMUgo015427@skeeve.com>
+ <20130630211924.GA17745@ti119.telemetry-investments.com>
+ <20130701010937.GA21450@ti119.telemetry-investments.com>
+In-Reply-To: <20130701010937.GA21450@ti119.telemetry-investments.com>
+X-Enigmail-Version: 1.6a1pre
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 7bit
+X-Spambayes-Classification: ham; 0.05
+Status: RO
+X-Status: A
+Content-Length: 792
+Lines: 16
+
+Am 01.07.2013 03:09, schrieb Andrew J. Schorr:
+>
+> It occurs to me to wonder whether anybody actually uses TCP server sockets
+> in the current implementation. I suspect it is not heavily used, since
+> the current features are so limited. I wonder if it's worth changing it
+> to work as I suggest above...
+
+Good question, I also doubt that there are many users.
+Now that the extension mechanism is established, we should
+reconsider if it really makes sense to have sockets in the main
+gawk implementation. If you found a way to implement sockets
+in an extension and this extension co-operates nicely with a
+"select extension" and you would draw the consequence of
+suggesting sockets to be kicked out of the main gawk source
+tree into an extension, then I would vote in favour of this idea.
+
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Mon Jul 1 12:03:49 2013
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti119.telemetry-investments.com (Postfix) with ESMTP id 6AD291D9E
+ for <schorr@schorr.telemetry-investments.com>; Mon, 1 Jul 2013 12:03:49 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 612631D5B; Mon, 1 Jul 2013 12:03:49 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 492C8398
+ for <aschorr@telemetry-investments.com>; Mon, 1 Jul 2013 12:03:49 -0400 (EDT)
+Received: from localhost ([::1]:60885 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1UtgZx-0007bx-79
+ for aschorr@telemetry-investments.com; Mon, 01 Jul 2013 12:03:49 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:48848)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UtgZk-0007WN-Eo
+ for gawk-devel@gnu.org; Mon, 01 Jul 2013 12:03:46 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UtgZg-0002yS-3W
+ for gawk-devel@gnu.org; Mon, 01 Jul 2013 12:03:36 -0400
+Received: from gw3a.telemetry-investments.com ([38.76.0.51]:59949
+ helo=sv3.telemetry-investments.com)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UtgZf-0002yB-Sk
+ for gawk-devel@gnu.org; Mon, 01 Jul 2013 12:03:31 -0400
+Received: from ti119.telemetry-investments.com (ti119 [192.168.53.119])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 3F3061D5B;
+ Mon, 1 Jul 2013 12:03:31 -0400 (EDT)
+Received: by ti119.telemetry-investments.com (Postfix, from userid 300)
+ id 0EEF521B7; Mon, 1 Jul 2013 12:03:30 -0400 (EDT)
+Date: Mon, 1 Jul 2013 12:03:30 -0400
+From: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+To: =?iso-8859-1?Q?J=FCrgen?= Kahrs <juergen.kahrs@googlemail.com>
+Message-ID: <20130701160330.GA24098@ti119.telemetry-investments.com>
+References: <83bo7r2mne.fsf@gnu.org>
+ <20130531153803.GA16477@ti119.telemetry-investments.com>
+ <838v2v2g3b.fsf@gnu.org>
+ <20130531181542.GA24861@ti119.telemetry-investments.com>
+ <83zjvb0yvq.fsf@gnu.org> <51A91CD6.3010904@fi.upm.es>
+ <201306271422.r5REMUgo015427@skeeve.com>
+ <20130630211924.GA17745@ti119.telemetry-investments.com>
+ <20130701010937.GA21450@ti119.telemetry-investments.com>
+ <51D1A521.2050707@googlemail.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=iso-8859-1
+Content-Disposition: inline
+In-Reply-To: <51D1A521.2050707@googlemail.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+Content-Transfer-Encoding: quoted-printable
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic]
+X-Received-From: 38.76.0.51
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] pushed first version of select extension
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Status: RO
+Content-Length: 3198
+Lines: 82
+
+On Mon, Jul 01, 2013 at 05:49:53PM +0200, J=FCrgen Kahrs wrote:
+> Am 01.07.2013 03:09, schrieb Andrew J. Schorr:
+> > It occurs to me to wonder whether anybody actually uses TCP server so=
+ckets
+> > in the current implementation. I suspect it is not heavily used, sin=
+ce
+> > the current features are so limited. I wonder if it's worth changing=
+ it
+> > to work as I suggest above...
+>=20
+> Good question, I also doubt that there are many users.
+> Now that the extension mechanism is established, we should
+> reconsider if it really makes sense to have sockets in the main
+> gawk implementation. If you found a way to implement sockets
+> in an extension and this extension co-operates nicely with a
+> "select extension" and you would draw the consequence of
+> suggesting sockets to be kicked out of the main gawk source
+> tree into an extension, then I would vote in favour of this idea.
+
+I did not intend to propose removing sockets from the main gawk source. =
+I
+think it may be possible to improve the current implementation of TCP ser=
+ver
+sockets. I am simply proposing that when somebody runs getline on a TCP =
+server
+socket, instead of closing the server socket and returning data from the =
+newly
+connected socket, it should instead leave the server socket open and retu=
+rn the
+new filename for the connected socket. This would enable a true TCP
+multiplexing server to be implemented. I think this can be done without
+changing anything else in the current sockets implementation.
+
+The problem code is in io.c:socketopen() here:
+
+ if (type =3D=3D SOCK_STREAM) {
+ int clientsocket_fd =3D INVALID_H=
+ANDLE;
+
+ struct sockaddr_storage remote_ad=
+dr;
+ socklen_t namelen =3D sizeof(remo=
+te_addr);
+
+ if (listen(socket_fd, 1) >=3D 0
+ && (clientsocket_fd =3D accep=
+t(socket_fd,
+ (struct sockaddr *) & rem=
+ote_addr,
+ & namelen)) >=3D 0) {
+ closemaybesocket(socket_f=
+d);
+ socket_fd =3D clientsocke=
+t_fd;
+ break;
+ }
+
+It calls listen, then accept, and then close on the server socket fd. I =
+would
+remove those calls to accept and close, and just return the server socket=
+ after
+calling listen.
+
+We then need to have a special input parser for TCP server sockets that
+would accept new connections and build a new file handle for the connecte=
+d
+socket.
+
+I haven't looked at UDP sockets. There may be a similar problem with UDP
+server sockets.
+
+Of course, it would be much simpler to have a normal BSD-style socket
+extension. But it would lose the AWK character of the current implementa=
+tion.
+
+Another alternative is to leave the current socket code as is, and simply
+add a BSD-style sockets API in an extension. They should be able to coex=
+ist
+without any problem.
+
+Regards,
+Andy
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Tue Jul 2 12:48:03 2013
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti119.telemetry-investments.com (Postfix) with ESMTP id AB5B1369
+ for <schorr@schorr.telemetry-investments.com>; Tue, 2 Jul 2013 12:48:03 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 9DF821D39; Tue, 2 Jul 2013 12:48:03 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 8DD0753
+ for <aschorr@telemetry-investments.com>; Tue, 2 Jul 2013 12:48:03 -0400 (EDT)
+Received: from localhost ([::1]:48820 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1Uu3kJ-0003yd-G9
+ for aschorr@telemetry-investments.com; Tue, 02 Jul 2013 12:48:03 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:53199)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1Uu3kC-0003xR-V3
+ for gawk-devel@gnu.org; Tue, 02 Jul 2013 12:48:00 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1Uu3k9-0003W7-7e
+ for gawk-devel@gnu.org; Tue, 02 Jul 2013 12:47:56 -0400
+Received: from gw3a.telemetry-investments.com ([38.76.0.51]:39707
+ helo=sv3.telemetry-investments.com)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1Uu3k9-0003Vy-2n
+ for gawk-devel@gnu.org; Tue, 02 Jul 2013 12:47:53 -0400
+Received: from ti119.telemetry-investments.com (ti119 [192.168.53.119])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 667FB53;
+ Tue, 2 Jul 2013 12:47:52 -0400 (EDT)
+Received: by ti119.telemetry-investments.com (Postfix, from userid 300)
+ id 5060D5CF; Tue, 2 Jul 2013 12:47:52 -0400 (EDT)
+Date: Tue, 2 Jul 2013 12:47:52 -0400
+From: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+To: Aharon Robbins <arnold@skeeve.com>
+Message-ID: <20130702164752.GB18395@ti119.telemetry-investments.com>
+References: <838v2v2g3b.fsf@gnu.org>
+ <20130531181542.GA24861@ti119.telemetry-investments.com>
+ <83zjvb0yvq.fsf@gnu.org> <51A91CD6.3010904@fi.upm.es>
+ <201306271422.r5REMUgo015427@skeeve.com>
+ <20130630211924.GA17745@ti119.telemetry-investments.com>
+ <20130701010937.GA21450@ti119.telemetry-investments.com>
+ <201307011902.r61J2E13003608@skeeve.com>
+ <20130701190647.GA25744@ti119.telemetry-investments.com>
+ <201307011914.r61JECgh003720@skeeve.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <201307011914.r61JECgh003720@skeeve.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic]
+X-Received-From: 38.76.0.51
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] select branch status
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Status: RO
+Content-Length: 3780
+Lines: 111
+
+Hi,
+
+I just pushed code that seems to work. Calls to getline should return -2
+when an operation would block or timed out.
+
+Here is some sample code to demonstrate that it works:
+
+@load "select"
+@load "time"
+
+BEGIN {
+ cmd["echo msg1; echo msg2; sleep 1; echo msg3"] = "|<"
+ cmd["echo B:msg1; sleep 3; echo B:msg2; echo B:msg3; sleep 1; echo B:msg4"] = "|<"
+ for (i in cmd)
+ set_non_blocking(i, cmd[i])
+
+ delete writefds
+ delete exceptds
+ start = gettimeofday()
+ while (length(cmd) > 0) {
+ delete readfds
+ for (i in cmd)
+ readfds[i] = cmd[i]
+ switch (select(readfds, writefds, exceptfds)) {
+ case -1:
+ printf "Error: select failed: %s\n", ERRNO > "/dev/stderr"
+ exit 1
+ case 0:
+ print "Timeout. Trying again."
+ break
+ default:
+ for (i in readfds) {
+ while ((rc = (i | getline x)) > 0)
+ printf "%.1f cmd [%s]: %s\n", gettimeofday()-start, i, x
+ if (rc != -2) {
+ delete cmd[i]
+ if (rc < 0) {
+ printf "Error: getline(%s) failed, errno = %s\n", i, ERRNO
+ erc = 1
+ }
+ }
+ }
+ break
+ }
+ }
+ exit erc+0
+}
+
+bash-4.1$ gawk -f /tmp/bufferbug.awk
+0.0 cmd [echo B:msg1; sleep 3; echo B:msg2; echo B:msg3; sleep 1; echo B:msg4]: B:msg1
+0.0 cmd [echo msg1; echo msg2; sleep 1; echo msg3]: msg1
+0.0 cmd [echo msg1; echo msg2; sleep 1; echo msg3]: msg2
+1.0 cmd [echo msg1; echo msg2; sleep 1; echo msg3]: msg3
+3.0 cmd [echo B:msg1; sleep 3; echo B:msg2; echo B:msg3; sleep 1; echo B:msg4]: B:msg2
+3.0 cmd [echo B:msg1; sleep 3; echo B:msg2; echo B:msg3; sleep 1; echo B:msg4]: B:msg3
+4.0 cmd [echo B:msg1; sleep 3; echo B:msg2; echo B:msg3; sleep 1; echo B:msg4]: B:msg4
+
+Everything now prints at the correct time.
+
+There is one thing that took me by surprise. In io.c:wait_any, I had to
+make the following patch:
+
+@@ -2210,12 +2210,13 @@ wait_any(int interesting) /* pid of interest, if any */
+ if (pid == redp->pid) {
+ redp->pid = -1;
+ redp->status = status;
+- break;
++ goto finished;
+ }
+ }
+ if (pid == -1 && errno == ECHILD)
+ break;
+ }
++finished:
+ signal(SIGHUP, hstat);
+ signal(SIGQUIT, qstat);
+ #endif
+
+I would appreciate it if you can check my logic. Without the patch, gawk hangs
+in wait_any(0) waiting for children after the first child returns EOF. It
+loops over calls to wait until wait returns -1. The patch tells it to
+return from wait_any after it reaps one child. Is there a reason for the
+existing behavior where it waits until it has reaped all children?
+
+I'm also not 100% confident that my patches to io.c are correct. It does
+pass "make check" successfully.
+
+Overall, I think it basically works. I am aware of 3 outstanding issues.
+The first is the big one.
+
+1. I need to find a way to patch gawkapi.c:api_get_file to run the BEGINFILE
+code after opening the first input file. Any guidance on this would be
+appreciated.
+
+2. I added 2 hooks to the api: lookup_file, and get_file. In the end, I am
+using only get_file. Is it worth leaving lookup_file in place, or should
+it be withdrawn? I'm not sure how useful it is.
+
+3. Regarding the existing TCP/UDP server paradigm: I'm not sure whether it's
+worth changing the existing approach. It may make more sense to add a separate
+extension for supporting servers properly that gives a bit more control. The
+existing scheme works fine for clients, but I don't think it really works for
+servers. I'm open to ideas on this. It's really a separate discussion.
+
+FYI, I tested the new "select" branch on Cygwin. It passes "make check",
+and the sample code above works properly. It also seems to catch signals,
+although it looks like the Cygwin select call is not interrupted by signals,
+so they won't be detected until something else causes the select to exit.
+
+Regards,
+Andy
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Tue Jul 2 22:54:33 2013
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv4.telemetry-investments.com (ti21 [192.168.78.21])
+ by ti119.telemetry-investments.com (Postfix) with ESMTP id 86597383
+ for <schorr@schorr.telemetry-investments.com>; Tue, 2 Jul 2013 22:54:33 -0400 (EDT)
+Received: by sv4.telemetry-investments.com (Postfix)
+ id 74C251D67; Tue, 2 Jul 2013 22:54:33 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv4.telemetry-investments.com (Postfix) with ESMTP id 5BA461D64
+ for <aschorr@telemetry-investments.com>; Tue, 2 Jul 2013 22:54:33 -0400 (EDT)
+Received: from localhost ([::1]:42020 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1UuDDF-0002YQ-1m
+ for aschorr@telemetry-investments.com; Tue, 02 Jul 2013 22:54:33 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:46202)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UuDD9-0002YI-RJ
+ for gawk-devel@gnu.org; Tue, 02 Jul 2013 22:54:31 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UuDD4-0006TK-NQ
+ for gawk-devel@gnu.org; Tue, 02 Jul 2013 22:54:27 -0400
+Received: from gw3a.telemetry-investments.com ([38.76.0.51]:40225
+ helo=sv3.telemetry-investments.com)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <schorr@telemetry-investments.com>)
+ id 1UuDD4-0006TB-J1
+ for gawk-devel@gnu.org; Tue, 02 Jul 2013 22:54:22 -0400
+Received: from ti119.telemetry-investments.com (ti119 [192.168.53.119])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 8DE611D3C;
+ Tue, 2 Jul 2013 22:54:21 -0400 (EDT)
+Received: by ti119.telemetry-investments.com (Postfix, from userid 300)
+ id 6398B1DAC; Tue, 2 Jul 2013 22:54:21 -0400 (EDT)
+Date: Tue, 2 Jul 2013 22:54:21 -0400
+From: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+To: Aharon Robbins <arnold@skeeve.com>
+Message-ID: <20130703025421.GA30141@ti119.telemetry-investments.com>
+References: <51A91CD6.3010904@fi.upm.es>
+ <201306271422.r5REMUgo015427@skeeve.com>
+ <20130630211924.GA17745@ti119.telemetry-investments.com>
+ <20130701010937.GA21450@ti119.telemetry-investments.com>
+ <201307011902.r61J2E13003608@skeeve.com>
+ <20130701190647.GA25744@ti119.telemetry-investments.com>
+ <201307011914.r61JECgh003720@skeeve.com>
+ <20130702164752.GB18395@ti119.telemetry-investments.com>
+ <20130702202334.GA14710@ti119.telemetry-investments.com>
+ <20130702210648.GA6597@ti119.telemetry-investments.com>
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="ZPt4rx8FFjLCG7dd"
+Content-Disposition: inline
+In-Reply-To: <20130702210648.GA6597@ti119.telemetry-investments.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic]
+X-Received-From: 38.76.0.51
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] select branch with support for select, signals,
+ and non-blocking I/O support: mission accomplished?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Status: RO
+Content-Length: 5781
+Lines: 150
+
+
+--ZPt4rx8FFjLCG7dd
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+
+I committed the patch to get the BEGINFILE rules to work. I also withdrew
+the unused lookup_file API, since I think it is perhaps unwise.
+
+I have done some simple testing on Linux and Cygwin. I am attaching
+a simple test script that exercises some of the features. You should
+send a SIGINT to the process to see what happens.
+
+You can find the code in the "select" git branch, or you can try this
+tarball: http://sourceforge.net/projects/gawkextlib/files/gawk-select.tar.xz
+
+Here is a summary of the changes. I haven't written any test cases or
+documentation yet. I guess the first question is whether the changes
+to the core gawk distribution will be accepted. If yes, then there's a
+question of whether the two new extensions should be in the core distribution
+as well.
+
+Changes to gawk core:
+- The numeric value of errno corresponding to the ERRNO variable can
+ now be found in PROCINFO["errno"].
+- The gawk API has a new "get_file" hook that will find or open a file.
+ It takes 2 arguments: the usual awk filename, plus a file type:
+ ">", ">>", "<", "|>", "|<", or "|&"
+- When an I/O operation fails due to a timeout, interrupt, or because it would
+ block, getline should now return -2 and NOT close the file.
+- Fixed what appears to be a bug in wait_any that caused it to wait for
+ all child processes to exit instead of just one.
+
+New errno extension providing 3 functions:
+- strerror(<integer errno value>) returns the strerror value, else ""
+ for an invalid argument.
+- errno2name(<integer errno value>) returns the symbolic name for an errno,
+ else "" for an unknown value.
+- name2errno(<string error name>) returns the symbolic name for an errno, else
+ -1 on error.
+
+Examples:
+ bash-4.1$ echo 11 | gawk -l errno '{print errno2name($1), strerror($1)}'
+ EAGAIN Resource temporarily unavailable
+ bash-4.1$ echo EAGAIN | gawk -l errno '{print name2errno($1)}'
+ 11
+
+New select extension providing 3 functions:
+- select_signal(<signal name>, {default|ignore|trap})
+ Returns 0 on success or -1 on error. Any trapped signals will be reported
+ in the results from the select function.
+- set_non_blocking(<command>, <command type>)
+ Returns 0 on success and -1 on error. The command is a normal gawk-style
+ command string, and the file type is one of:
+ ">", ">>", "<", "|>", "|<", or "|&"
+ Note: if the <command> has a numeric value and the <command type> is
+ omitted or empty, the function treats the argument as an integer fd value
+ and sets it to non-blocking.
+- select(<readfds>, <writefds>, <exceptfds>, <timeout>, <signals>)
+ Returns -1 on error or the number of file descriptors that matched.
+ On return, the <signals> array contains a list of signals that were trapped
+ since the last call. The index is the signal number, and the value
+ will be the symbolic signal name (e.g. "INT") if we are able to look it up.
+ If <timeout> is present and numeric, that is the maximum number of seconds
+ to wait. Otherwise, it will block indefinitely.
+ The <readfds>, <writefds>, and <exceptfds> arrays will have the <command>
+ in the index, and the <command type> as the value. This works the same
+ way as the set_non_blocking function. If the index value is numeric
+ and the value is "", it will be treated as a file descriptor.
+
+One note regarding signal behavior: the extension uses sigaction to request
+that signal calls be restarted. But on Linux, the "select" is always
+interrupted in any case. So that's nice -- the signals get delivered quickly.
+On Cygwin, I noticed that select does seem to restart, so the signal is
+not delivered to the application right away.
+
+That's all I can think of. Please test it and let me know if it works for you.
+Feedback on the design would also be appreciated.
+
+As I mentioned previously, TCP and UDP servers do not work well because of the
+design of the current socket implementation. We may need to write a new
+sockets extension to implement servers properly. To do so my require a
+new API function that allows an extension to insert a file descriptor
+(and associated filename) into the io.c:red_head struct redirect list.
+I think it basically just needs an additional fd arg for a file that is
+already open.
+
+I will now return to my day job. :-)
+
+Regards,
+Andy
+
+--ZPt4rx8FFjLCG7dd
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: attachment; filename="multiplex.awk"
+
+@load "select"
+@load "time"
+@load "errno"
+
+BEGIN {
+ print "My pid is", PROCINFO["pid"]
+ select_signal("int", "trap")
+
+ cmd["echo A:msg1; sleep 2; echo A:msg2; echo A:backtoback; sleep 4; echo A:msg3"] = "|<"
+ cmd["sleep 3; echo B:msg1; echo B:again; sleep 2; echo B:msg2; sleep 4; echo B:msg3"] = "|<"
+
+ for (i in cmd)
+ set_non_blocking(i, cmd[i])
+
+ delete writefds
+ delete exceptds
+ start = gettimeofday()
+ EINTR = name2errno("EINTR")
+ while (length(cmd) > 0) {
+ delete readfds
+ for (i in cmd)
+ readfds[i] = cmd[i]
+ rc = select(readfds, writefds, exceptfds, "", sigs)
+ for (i in sigs)
+ printf "Caught signal %d (%s)\n", i, sigs[i]
+ switch (rc) {
+ case -1:
+ if (PROCINFO["errno"] == EINTR) {
+ print "Select failed due to EINTR; trying again."
+ break
+ }
+ printf "Error: select failed: %s\n", ERRNO > "/dev/stderr"
+ exit 1
+ case 0:
+ print "Timeout. Trying again."
+ break
+ default:
+ for (i in readfds) {
+ while ((rc = (i | getline x)) > 0)
+ printf "%.1f cmd [%s]: %s\n", gettimeofday()-start, i, x
+ if (rc != -2) {
+ delete cmd[i]
+ if (rc < 0) {
+ printf "Error: getline(%s) failed, errno = %s\n", i, ERRNO
+ erc = 1
+ }
+ }
+ }
+ break
+ }
+ }
+ exit erc+0
+}
+
+--ZPt4rx8FFjLCG7dd--
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Feb 28 13:06:51 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id C667F3D0
+ for <schorr@schorr.telemetry-investments.com>; Sun, 28 Feb 2016 13:06:51 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id B6C286C2; Sun, 28 Feb 2016 13:06:51 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 58283343
+ for <aschorr@telemetry-investments.com>; Sun, 28 Feb 2016 13:06:50 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 58283343
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=gnu.org
+Received: from localhost ([::1]:60088 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1aa5k1-0007bK-A3
+ for aschorr@telemetry-investments.com; Sun, 28 Feb 2016 13:06:49 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:52225)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <eliz@gnu.org>) id 1aa5jz-0007bE-Sl
+ for gawk-devel@gnu.org; Sun, 28 Feb 2016 13:06:48 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <eliz@gnu.org>) id 1aa5jv-0006oM-QF
+ for gawk-devel@gnu.org; Sun, 28 Feb 2016 13:06:47 -0500
+Received: from fencepost.gnu.org ([2001:4830:134:3::e]:39708)
+ by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@gnu.org>)
+ id 1aa5jv-0006o9-Mx
+ for gawk-devel@gnu.org; Sun, 28 Feb 2016 13:06:43 -0500
+Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3515
+ helo=home-c4e4a596f7)
+ by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128)
+ (Exim 4.82) (envelope-from <eliz@gnu.org>) id 1aa5jv-0004Qr-0A
+ for gawk-devel@gnu.org; Sun, 28 Feb 2016 13:06:43 -0500
+Date: Sun, 28 Feb 2016 20:06:28 +0200
+Message-Id: <83egbwaevv.fsf@gnu.org>
+From: Eli Zaretskii <eliz@gnu.org>
+To: gawk-devel@gnu.org
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2001:4830:134:3::e
+Subject: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+Reply-To: Eli Zaretskii <eliz@gnu.org>
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 208
+Lines: 5
+
+I tried the UDP server/client example from the manual today, and it
+didn't work for me with Gawk 4.1.3, neither on MS-Windows nor on
+GNU/Linux. Did some code bitrot? Can anyone make that example work?
+
+TIA
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Feb 28 15:02:35 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id BAD7F3DA
+ for <schorr@schorr.telemetry-investments.com>; Sun, 28 Feb 2016 15:02:35 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id AC8566C2; Sun, 28 Feb 2016 15:02:35 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 5B1843E8
+ for <aschorr@telemetry-investments.com>; Sun, 28 Feb 2016 15:02:35 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 5B1843E8
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=RwRCZR2u
+Received: from localhost ([::1]:60457 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1aa7Y1-00088j-Cf
+ for aschorr@telemetry-investments.com; Sun, 28 Feb 2016 15:02:33 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:49063)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1aa7Xy-00088c-3Y
+ for gawk-devel@gnu.org; Sun, 28 Feb 2016 15:02:31 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1aa7Xu-0002ED-QH
+ for gawk-devel@gnu.org; Sun, 28 Feb 2016 15:02:30 -0500
+Received: from mail-wm0-x236.google.com ([2a00:1450:400c:c09::236]:37593)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1aa7Xu-0002E9-F7
+ for gawk-devel@gnu.org; Sun, 28 Feb 2016 15:02:26 -0500
+Received: by mail-wm0-x236.google.com with SMTP id p65so21158646wmp.0
+ for <gawk-devel@gnu.org>; Sun, 28 Feb 2016 12:02:26 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:to:references:message-id:date:user-agent:mime-version
+ :in-reply-to; bh=Cq/AQONrS5Pc0V122Lte12/axF+wQQ/P0zJJrFV0yaY=;
+ b=RwRCZR2uUbOEfSnjhwtFNcV7wuEeC2jcXTAuYcExCGVY5lDERreclYQVXVRTqkf/4H
+ unum7ZVDmMPnl9uRzyMzn/jjy1FDmg3jgaOAa1HWYo5hMs5obZkoxFW6J+/o90ieEfHb
+ krQmcuiUW+A5uNClN42xsIelftRZ552j6eL7wlJO9C/l7YB5UJ2T6qNQwOrFyLlln2+4
+ 0q5SPZPsrrmt79pPHRjnTwH2MsMboIHBIBUbu4Kjv7EvBBxCcY7SUZYlRVkVDX7ay+j/
+ JB4do9LVtNu9yEerLih3W9T+EtBCIPdjieOAtJir3UEc4LqsT1g1oxqspBs6oemgwBmO
+ EDqQ==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:to:references:message-id:date
+ :user-agent:mime-version:in-reply-to;
+ bh=Cq/AQONrS5Pc0V122Lte12/axF+wQQ/P0zJJrFV0yaY=;
+ b=M6s4xeBthPgzXf3L//yeNSBxsIh8mwRIrQgVN5XW4xak/X1Kf8G40m1IAzTQl1SgmE
+ 2Vr3oeuUFpjfpZzb2Yc2d/nDUGmLdyn423P/C+l581TvQQsuoo87C63b9/riStxaiDcD
+ aC9NBpEa/9KN71h4JRYrNOnPIg+Ob+2uES8nlEH1ra9sV1zq/4yMTU0vV3hZj60JZU1p
+ VfiiX8PqN5Uw2EPU5BwJ9vFIvfcpe2X6S3nKMgfFrwYjXAPmMzbKJxOQD6LidXDeX6l2
+ 5g0vQwWTWAd6P9cf0y5dmSpfFsXCYugvIn/9AMoI1X5DUWeUMMHCF54RkKH0crcAcAw6
+ WcDA==
+X-Gm-Message-State: AD7BkJKkMZOjQDlJvcYuseem7nVI0fN6fFectUfb+DWhZPQH6O7bG8D2AQ022CfqbM9gEA==
+X-Received: by 10.194.82.41 with SMTP id f9mr11255322wjy.139.1456689745459;
+ Sun, 28 Feb 2016 12:02:25 -0800 (PST)
+Received: from [192.168.0.11] (ip5f5ac869.dynamic.kabel-deutschland.de.
+ [95.90.200.105]) by smtp.googlemail.com with ESMTPSA id
+ x66sm12958996wmb.20.2016.02.28.12.02.24 for <gawk-devel@gnu.org>
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 28 Feb 2016 12:02:24 -0800 (PST)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+To: gawk-devel@gnu.org
+References: <83egbwaevv.fsf@gnu.org>
+Message-ID: <56D3524F.1040600@googlemail.com>
+Date: Sun, 28 Feb 2016 21:02:23 +0100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.6.0
+MIME-Version: 1.0
+In-Reply-To: <83egbwaevv.fsf@gnu.org>
+Content-Type: multipart/alternative;
+ boundary="------------050908080004020900060306"
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::236
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 2916
+Lines: 76
+
+This is a multi-part message in MIME format.
+--------------050908080004020900060306
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+
+Am 28.02.2016 um 19:06 schrieb Eli Zaretskii:
+> I tried the UDP server/client example from the manual today, and it
+> didn't work for me with Gawk 4.1.3, neither on MS-Windows nor on
+> GNU/Linux. Did some code bitrot? Can anyone make that example work?
+
+I can reproduce the problem with Gawk 4.1.1.
+Both (UDP server and UDP client) don't work correctly.
+
+The UDP server can receive data (I tested this by
+sending him data with the netcat tool), but the UDP
+server cannot reply. The problem seems to have to
+do with an unrecognized address family (in io.c) that
+is passed to the "connect" function when connecting
+to remote_addr.
+
+The UDP client cannot send data. After successful
+connection, something in the interpreter tries to do
+an
+
+ lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
+
+These problems have probably come up at the time when
+the gethostbyname() was replaced with getaddrinfo().
+I vaguely remember that only the TCP connections were
+tested at that time and the UDP connections did not work.
+
+
+--------------050908080004020900060306
+Content-Type: text/html; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=windows-1252"
+ http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ <div class="moz-cite-prefix">Am 28.02.2016 um 19:06 schrieb Eli
+ Zaretskii:<br>
+ </div>
+ <blockquote cite="mid:83egbwaevv.fsf@gnu.org" type="cite">
+ <pre wrap="">I tried the UDP server/client example from the manual today, and it
+didn't work for me with Gawk 4.1.3, neither on MS-Windows nor on
+GNU/Linux. Did some code bitrot? Can anyone make that example work?</pre>
+ </blockquote>
+ <br>
+ I can reproduce the problem with Gawk 4.1.1.<br>
+ Both (UDP server and UDP client) don't work correctly.<br>
+ <br>
+ The UDP server can receive data (I tested this by<br>
+ sending him data with the netcat tool), but the UDP<br>
+ server cannot reply. The problem seems to have to<br>
+ do with an unrecognized address family (in io.c)  that<br>
+ is passed to the "connect" function when connecting<br>
+ to remote_addr.<br>
+ <br>
+ The UDP client cannot send data. After successful<br>
+ connection, something in the interpreter tries to do<br>
+ an <br>
+ <blockquote><tt>lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE
+ (Illegal seek)</tt><br>
+ </blockquote>
+ These problems have probably come up at the time when<br>
+ the gethostbyname() was replaced with getaddrinfo().<br>
+ I vaguely remember that only the TCP connections were<br>
+ tested at that time and the UDP connections did not work.<br>
+ <br>
+ </body>
+</html>
+
+--------------050908080004020900060306--
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Mon Feb 29 00:30:38 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 614473D0
+ for <schorr@schorr.telemetry-investments.com>; Mon, 29 Feb 2016 00:30:38 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 526866C2; Mon, 29 Feb 2016 00:30:38 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 2A51B3B2
+ for <aschorr@telemetry-investments.com>; Mon, 29 Feb 2016 00:30:37 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 2A51B3B2
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=skeeve.com
+Received: from localhost ([::1]:34211 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1aaGPj-0000KV-NV
+ for aschorr@telemetry-investments.com; Mon, 29 Feb 2016 00:30:35 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:40478)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1aaGP1-0007lJ-BT
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 00:29:52 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1aaGOy-0007Mk-4A
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 00:29:51 -0500
+Received: from mxout7.netvision.net.il ([194.90.6.2]:36840)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1aaGOx-0007Md-SM
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 00:29:48 -0500
+MIME-version: 1.0
+Content-transfer-encoding: 7BIT
+Content-type: text/plain; CHARSET=US-ASCII
+Received: from skeeve.com ([89.138.173.41]) by mxout7.netvision.net.il
+ (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit
+ (built Nov
+ 17 2011)) with ESMTPSA id <0O3A00EU2N9MH570@mxout7.netvision.net.il>
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 07:29:47 +0200 (IST)
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+ by skeeve.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id
+ u1T5TkTw002992; Mon, 29 Feb 2016 07:29:46 +0200
+Received: (from arnold@localhost) by skeeve.com (8.14.4/8.14.4/Submit)
+ id u1T5Tk2m002991; Mon, 29 Feb 2016 07:29:46 +0200
+From: Aharon Robbins <arnold@skeeve.com>
+Message-id: <201602290529.u1T5Tk2m002991@skeeve.com>
+Date: Mon, 29 Feb 2016 07:29:46 +0200
+To: juergen.kahrs@googlemail.com, gawk-devel@gnu.org
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+In-reply-to: <56D3524F.1040600@googlemail.com>
+User-Agent: Heirloom mailx 12.5 6/20/10
+X-detected-operating-system: by eggs.gnu.org: Solaris 10
+X-Received-From: 194.90.6.2
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 1486
+Lines: 40
+
+Hi Juergen,
+
+Can you take a look at making this work again? It's entirely possible
+I messed something up when I moved to getaddrinfo. I don't have tons
+of cycles at the moment, so I could use some help on this.
+
+Thanks!
+
+Arnold
+
+> From: "J??rgen Kahrs" <juergen.kahrs@googlemail.com>
+> To: gawk-devel@gnu.org
+> Date: Sun, 28 Feb 2016 21:02:23 +0100
+> Subject: Re: [gawk-devel] UDP networking doesn't work?
+>
+> Am 28.02.2016 um 19:06 schrieb Eli Zaretskii:
+> > I tried the UDP server/client example from the manual today, and it
+> > didn't work for me with Gawk 4.1.3, neither on MS-Windows nor on
+> > GNU/Linux. Did some code bitrot? Can anyone make that example work?
+>
+> I can reproduce the problem with Gawk 4.1.1.
+> Both (UDP server and UDP client) don't work correctly.
+>
+> The UDP server can receive data (I tested this by
+> sending him data with the netcat tool), but the UDP
+> server cannot reply. The problem seems to have to
+> do with an unrecognized address family (in io.c) that
+> is passed to the "connect" function when connecting
+> to remote_addr.
+>
+> The UDP client cannot send data. After successful
+> connection, something in the interpreter tries to do
+> an
+>
+> lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
+>
+> These problems have probably come up at the time when
+> the gethostbyname() was replaced with getaddrinfo().
+> I vaguely remember that only the TCP connections were
+> tested at that time and the UDP connections did not work.
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Mon Feb 29 13:13:12 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 4DC6029C
+ for <schorr@schorr.telemetry-investments.com>; Mon, 29 Feb 2016 13:13:12 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 42CB56AA; Mon, 29 Feb 2016 13:13:12 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 02637461
+ for <aschorr@telemetry-investments.com>; Mon, 29 Feb 2016 13:13:11 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 02637461
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=ELI7Fpwy
+Received: from localhost ([::1]:38243 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1aaSJh-00057A-Pk
+ for aschorr@telemetry-investments.com; Mon, 29 Feb 2016 13:13:09 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:53255)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1aaSJf-00056o-Jh
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 13:13:08 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1aaSJb-0001Do-Fn
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 13:13:07 -0500
+Received: from mail-wm0-x231.google.com ([2a00:1450:400c:c09::231]:38544)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1aaSJb-0001DD-5o
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 13:13:03 -0500
+Received: by mail-wm0-x231.google.com with SMTP id l68so1118675wml.1
+ for <gawk-devel@gnu.org>; Mon, 29 Feb 2016 10:13:03 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:to:references:message-id:date:user-agent:mime-version
+ :in-reply-to:content-transfer-encoding;
+ bh=LYTtAdT/UTx3E0EOPZ595YTbfBQ4SzHOiOmeFLdwIuU=;
+ b=ELI7FpwyCNH39JzOKAYDgP4ACtlIVyPZzuTDB2qSsAW+kkUG9IC/R9Yj7py9JUEP4k
+ CyjuCLHp0wHigLDb1y3gusEY8RC6lvNzQUbL/dcvRga0zFDbI6fuNG71r5hmZ7Idj4xr
+ X8WyYCTnqYHyF/dDnjA1dAdvlHQsLWL3vBw9hpSWPsk+9t3jiMfnqItwZyS8VJj1ocfM
+ zxKQ3bN+eiG4JefyRs5Gdt+6IFuqT+sBNmFd5TmsIpRL8aMpRX8fGeOtLtKNHWN8bWr0
+ LjpFmZ/SSDfxbAVv0XfCZYa4mbS+k6RyYkAhc7nOFnknZcLGsOry2LZW+5te9nSAAcTQ
+ vdNQ==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:to:references:message-id:date
+ :user-agent:mime-version:in-reply-to:content-transfer-encoding;
+ bh=LYTtAdT/UTx3E0EOPZ595YTbfBQ4SzHOiOmeFLdwIuU=;
+ b=k+Duxz6/ZDIymj+zkUUTdh1h5BQp4ba+y3U8Aj2J0TxZNX0fT6xQvnMlJEY5bj5X6U
+ LXG5Lau75WXnChtO3FmyzBzUPMFuxEfUTo9BvEOc4Xkzh2sYlkxcr54yynXBrnt49YRo
+ 7/LSHb5u98AdzOHLxnlm3HBF+cnOZicXVVDOPVNhMNXUSIV5v7z9XTOcpes0dJ4dTTSX
+ AoZ7wyLqjl6tl4fCecDT6M5v3DjFMDIVNzO0pDzbc+D3X92MTSxj/VqNIrqC5oUZTJZR
+ yAZhk9r2oWLLR0qVp0hkSJ8KwSQjM3UXhX69c4BE/AsV8uGpDFRuCFZ+PWercP13LDgo
+ 2hTA==
+X-Gm-Message-State: AD7BkJKeJaKUvv+6rpjXy20P3M7QJj/o5c0lxoVNL6KFfxvvp2/rfUKuwdQKlselH7nMfQ==
+X-Received: by 10.28.125.211 with SMTP id y202mr12249564wmc.18.1456769582130;
+ Mon, 29 Feb 2016 10:13:02 -0800 (PST)
+Received: from [192.168.0.11] (ip5f5ac8a2.dynamic.kabel-deutschland.de.
+ [95.90.200.162]) by smtp.googlemail.com with ESMTPSA id
+ y62sm11675328wmg.12.2016.02.29.10.13.01 for <gawk-devel@gnu.org>
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Mon, 29 Feb 2016 10:13:01 -0800 (PST)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+To: gawk-devel@gnu.org
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+Message-ID: <56D48A2C.4040702@googlemail.com>
+Date: Mon, 29 Feb 2016 19:13:00 +0100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.6.0
+MIME-Version: 1.0
+In-Reply-To: <201602290529.u1T5Tk2m002991@skeeve.com>
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::231
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+X-Status: A
+Content-Length: 485
+Lines: 11
+
+Am 29.02.2016 um 06:29 schrieb Aharon Robbins:
+> Can you take a look at making this work again? It's entirely possible
+> I messed something up when I moved to getaddrinfo. I don't have tons
+> of cycles at the moment, so I could use some help on this.
+
+The internal data structures to be used with
+sockets today are very different from what we
+have learned by reading Richard Stevens' books.
+I will have a look at it next weekend.
+If I find a solution, then I will send you a patch.
+
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Mon Feb 29 15:39:54 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id BB5373DA
+ for <schorr@schorr.telemetry-investments.com>; Mon, 29 Feb 2016 15:39:54 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id B07986AA; Mon, 29 Feb 2016 15:39:54 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 7A5D35A4
+ for <aschorr@telemetry-investments.com>; Mon, 29 Feb 2016 15:39:54 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 7A5D35A4
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=telemetry-investments.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=fail reason="key not found in DNS" (0-bit key) header.d=telemetry-investments.com header.i=@telemetry-investments.com header.b=WuAqrgOQ
+Received: from localhost ([::1]:39058 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1aaUbi-0001jM-1W
+ for aschorr@telemetry-investments.com; Mon, 29 Feb 2016 15:39:54 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:59661)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1aaUbf-0001jF-Ct
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 15:39:52 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1aaUbc-0006B1-5z
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 15:39:51 -0500
+Received: from gw3a.telemetry-investments.com ([38.76.0.51]:55015
+ helo=sv3.telemetry-investments.com)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1aaUbc-0006Ac-2D
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 15:39:48 -0500
+Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 175D75A4;
+ Mon, 29 Feb 2016 15:39:46 -0500 (EST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=telemetry-investments.com; s=tele1409; t=1456778386;
+ bh=vb6o7x2lB1cZ1DAEnKzPcIXMSA7cfBXegjPCPBg6EJk=;
+ h=Date:From:To:Cc:Subject:References:In-Reply-To;
+ b=WuAqrgOQewxUTuy+uILJtYmQBEiBrfBFcEx1tBRRuCSQnejkmBw2Jx0IpcQ0L7hkE
+ sSfiRpjXCOdKVGuaeRH71wv3gi63oEERFQHBrwiB00BR8sTsL90tLqXk5MNOZtPgrA
+ vsi/1GsVejW3Xh6Mq9FBaZdQv0KSFlPJhVIy11x0=
+Received: by ti129.telemetry-investments.com (Postfix, from userid 300)
+ id 0254C3B21; Mon, 29 Feb 2016 15:39:45 -0500 (EST)
+Date: Mon, 29 Feb 2016 15:39:45 -0500
+From: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+To: =?iso-8859-1?Q?J=FCrgen?= Kahrs <juergen.kahrs@googlemail.com>
+Message-ID: <20160229203945.GA30054@ti129.telemetry-investments.com>
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=iso-8859-1
+Content-Disposition: inline
+In-Reply-To: <56D48A2C.4040702@googlemail.com>
+User-Agent: Mutt/1.5.23 (2014-03-12)
+Content-Transfer-Encoding: quoted-printable
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 38.76.0.51
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 903
+Lines: 23
+
+On Mon, Feb 29, 2016 at 07:13:00PM +0100, J=FCrgen Kahrs wrote:
+> Am 29.02.2016 um 06:29 schrieb Aharon Robbins:
+> > Can you take a look at making this work again? It's entirely possibl=
+e
+> > I messed something up when I moved to getaddrinfo. I don't have tons
+> > of cycles at the moment, so I could use some help on this.
+>=20
+> The internal data structures to be used with
+> sockets today are very different from what we
+> have learned by reading Richard Stevens' books.
+> I will have a look at it next weekend.
+> If I find a solution, then I will send you a patch.
+
+If you are unable to solve it, it would at least be helpful to share some
+specific examples with the expected and current (incorrect) behavior. Tha=
+t
+should make it much easier to troubleshoot and fix. I tried to strace the
+process to see what's going on, but I'm not sure I was working on the rig=
+ht
+sample code.
+
+Thanks,
+Andy
+
+From eliz@gnu.org Mon Feb 29 15:53:39 2016
+Return-Path: <eliz@gnu.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ ti9.telemetry-investments.com
+X-Spam-Level:
+X-Spam-Status: No, score=-6.9 required=10.0 tests=BAYES_00,RCVD_IN_DNSWL_HI,
+ RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 990F73DA
+ for <schorr@schorr.telemetry-investments.com>;
+ Mon, 29 Feb 2016 15:53:39 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 8C7A36AA; Mon, 29 Feb 2016 15:53:39 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from eggs.gnu.org (eggs.gnu.org [208.118.235.92])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 4BB4C5A4
+ for <aschorr@telemetry-investments.com>; Mon, 29 Feb 2016 15:53:38 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 4BB4C5A4
+Authentication-Results: sv3.telemetry-investments.com;
+ dmarc=none header.from=gnu.org
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <eliz@gnu.org>) id 1aaUoz-00022z-Pz
+ for aschorr@telemetry-investments.com; Mon, 29 Feb 2016 15:53:38 -0500
+Received: from fencepost.gnu.org ([2001:4830:134:3::e]:37766)
+ by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@gnu.org>)
+ id 1aaUot-00022S-Rj; Mon, 29 Feb 2016 15:53:31 -0500
+Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1138
+ helo=home-c4e4a596f7)
+ by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128)
+ (Exim 4.82) (envelope-from <eliz@gnu.org>)
+ id 1aaUot-0003Id-4U; Mon, 29 Feb 2016 15:53:31 -0500
+Date: Mon, 29 Feb 2016 22:53:19 +0200
+Message-Id: <838u238chs.fsf@gnu.org>
+From: Eli Zaretskii <eliz@gnu.org>
+To: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+CC: juergen.kahrs@googlemail.com, gawk-devel@gnu.org
+In-reply-to: <20160229203945.GA30054@ti129.telemetry-investments.com>
+ (aschorr@telemetry-investments.com)
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+Reply-to: Eli Zaretskii <eliz@gnu.org>
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2001:4830:134:3::e
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of eliz@gnu.org
+ designates 208.118.235.92 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.92;
+ envelope-from=<eliz@gnu.org>; helo=eggs.gnu.org;
+X-Spambayes-Classification: ham; 0.00
+Status: RO
+X-Status: A
+Content-Length: 913
+Lines: 29
+
+> Date: Mon, 29 Feb 2016 15:39:45 -0500
+> From: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+> Cc: gawk-devel@gnu.org
+>
+> If you are unable to solve it, it would at least be helpful to share some
+> specific examples with the expected and current (incorrect) behavior. That
+> should make it much easier to troubleshoot and fix. I tried to strace the
+> process to see what's going on, but I'm not sure I was working on the right
+> sample code.
+
+The sample code is from the manual:
+
+ # Server
+ BEGIN {
+ print strftime() |& "/inet/udp/8888/0/0"
+ close("/inet/udp/8888/0/0")
+ }
+
+ # Client
+ BEGIN {
+ "/inet/udp/0/localhost/8888" |& getline
+ print $0
+ close("/inet/udp/0/localhost/8888")
+ }
+
+Launch the client first, then the server. The server exists
+immediately (after seemingly have sent the data), while the client
+hangs without receiving anything.
+
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Mon Feb 29 16:05:16 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 9D10B3DA
+ for <schorr@schorr.telemetry-investments.com>; Mon, 29 Feb 2016 16:05:16 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 927846AA; Mon, 29 Feb 2016 16:05:16 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 60D965A4
+ for <aschorr@telemetry-investments.com>; Mon, 29 Feb 2016 16:05:16 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 60D965A4
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=telemetry-investments.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=fail reason="key not found in DNS" (0-bit key) header.d=telemetry-investments.com header.i=@telemetry-investments.com header.b=AowHxOcX
+Received: from localhost ([::1]:39152 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1aaV0F-0006WM-Rb
+ for aschorr@telemetry-investments.com; Mon, 29 Feb 2016 16:05:15 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:39030)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1aaV0C-0006U0-R2
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 16:05:13 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1aaV0C-000506-3B
+ for gawk-devel@gnu.org; Mon, 29 Feb 2016 16:05:12 -0500
+Received: from gw3a.telemetry-investments.com ([38.76.0.51]:55215
+ helo=sv3.telemetry-investments.com)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1aaV06-0004xe-F8; Mon, 29 Feb 2016 16:05:06 -0500
+Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id B37CE5A4;
+ Mon, 29 Feb 2016 16:05:05 -0500 (EST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=telemetry-investments.com; s=tele1409; t=1456779905;
+ bh=Uo2h8QVk3LFkYRpl//RgEad2m5RrZBF16zjLTxQjP0A=;
+ h=Date:From:To:Cc:Subject:References:In-Reply-To;
+ b=AowHxOcXSdBCZ4JnIBjnmJPHCpMTk2aYdpTnoYy+P489X1yvtX78xeOql8+YjFf3i
+ 87Bp8MB9E6wFbyacy0SmKA2v1mF4sWvBR7e5zeIDrlJYKp9wsr+w4ohmexSa+AkwLV
+ XJ7LkXV17v0xW+/k70x9mWWucVNRVkvUyDctjxL0=
+Received: by ti129.telemetry-investments.com (Postfix, from userid 300)
+ id 9647D3B21; Mon, 29 Feb 2016 16:05:05 -0500 (EST)
+Date: Mon, 29 Feb 2016 16:05:05 -0500
+From: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+To: Eli Zaretskii <eliz@gnu.org>
+Message-ID: <20160229210505.GA30843@ti129.telemetry-investments.com>
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <838u238chs.fsf@gnu.org>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <838u238chs.fsf@gnu.org>
+User-Agent: Mutt/1.5.23 (2014-03-12)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 38.76.0.51
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 1478
+Lines: 45
+
+On Mon, Feb 29, 2016 at 10:53:19PM +0200, Eli Zaretskii wrote:
+> The sample code is from the manual:
+>
+> # Server
+> BEGIN {
+> print strftime() |& "/inet/udp/8888/0/0"
+> close("/inet/udp/8888/0/0")
+> }
+>
+> # Client
+> BEGIN {
+> "/inet/udp/0/localhost/8888" |& getline
+> print $0
+> close("/inet/udp/0/localhost/8888")
+> }
+>
+> Launch the client first, then the server. The server exists
+> immediately (after seemingly have sent the data), while the client
+> hangs without receiving anything.
+
+Hmmm. When I run these on Linux using the gawk master branch,
+they both hang. This is on Fedora 21.
+
+According to strace, the client hangs reading this file descriptor:
+ socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3
+ bind(3, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
+ connect(3, {sa_family=AF_INET, sin_port=htons(8888), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
+ ...
+ dup(3) = 4
+ ...
+ read(4,
+That looks sensible.
+
+And the server hangs here:
+ socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3
+ bind(3, {sa_family=AF_INET, sin_port=htons(8888), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
+ recvfrom(3,
+
+I don't know why the server is binding that address and reading instead
+of sending a packet to that address. Something is wrong.
+And I also don't know why yours exits and mine hangs. Are you running
+on Windows or Linux?
+
+Regards,
+Andy
+
+From arnold@skeeve.com Sat Mar 5 23:10:12 2016
+Return-Path: <arnold@skeeve.com>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ ti9.telemetry-investments.com
+X-Spam-Level:
+X-Spam-Status: No, score=-2.6 required=10.0 tests=BAYES_00, RCVD_IN_DNSWL_LOW,
+ RCVD_IN_MSPIKE_H3,
+ RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.0
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id C7088269
+ for <schorr@schorr.telemetry-investments.com>;
+ Sat, 5 Mar 2016 23:10:12 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id B983E6CE; Sat, 5 Mar 2016 23:10:12 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from mxout1.netvision.net.il (mxout1.netvision.net.il [194.90.9.20])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 5A405343
+ for <aschorr@telemetry-investments.com>; Sat, 5 Mar 2016 23:10:11 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 5A405343
+Authentication-Results: sv3.telemetry-investments.com;
+ dmarc=none header.from=skeeve.com
+MIME-version: 1.0
+Content-transfer-encoding: 7BIT
+Content-type: text/plain; CHARSET=US-ASCII
+Received: from skeeve.com ([93.173.253.111]) by mxout1.netvision.net.il
+ (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov
+ 17 2011)) with ESMTPSA id <0O3L00GWRNH66C90@mxout1.netvision.net.il> for
+ aschorr@telemetry-investments.com; Sun, 06 Mar 2016 06:07:54 +0200 (IST)
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+ by skeeve.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id u2647rRg003778;
+ Sun, 06 Mar 2016 06:07:53 +0200
+Received: (from arnold@localhost) by skeeve.com (8.14.4/8.14.4/Submit)
+ id u2647rk3003777; Sun, 06 Mar 2016 06:07:53 +0200
+From: Aharon Robbins <arnold@skeeve.com>
+Message-id: <201603060407.u2647rk3003777@skeeve.com>
+Date: Sun, 06 Mar 2016 06:07:53 +0200
+To: eliz@gnu.org, aschorr@telemetry-investments.com
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+Cc: gawk-devel@gnu.org
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com> <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <838u238chs.fsf@gnu.org>
+ <20160229210505.GA30843@ti129.telemetry-investments.com>
+ <837fhm98r7.fsf@gnu.org>
+In-reply-to: <837fhm98r7.fsf@gnu.org>
+User-Agent: Heirloom mailx 12.5 6/20/10
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: None (sv3.telemetry-investments.com: domain of arnold@skeeve.com
+ does not designate permitted sender hosts)
+ receiver=sv3.telemetry-investments.com; client-ip=194.90.9.20;
+ envelope-from=<arnold@skeeve.com>; helo=mxout1.netvision.net.il;
+X-Spambayes-Classification: ham; 0.00
+Status: RO
+Content-Length: 296
+Lines: 14
+
+The UDP examples both hang for me, even when I go back as far as
+gawk 3.1.0!
+
+That's really strange.
+
+Those are old binaries; I may try recompiling old code from source
+to see what I get. I'm on Ubuntu 14.04.
+
+If anyone can make progress on this before me, I'd appreciate it...
+
+Thanks,
+
+Arnold
+
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 6 09:57:54 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 35FFB3C5
+ for <schorr@schorr.telemetry-investments.com>; Sun, 6 Mar 2016 09:57:54 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 2645F6C5; Sun, 6 Mar 2016 09:57:54 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id AEB9E6A4
+ for <aschorr@telemetry-investments.com>; Sun, 6 Mar 2016 09:57:53 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com AEB9E6A4
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=g0988vir
+Received: from localhost ([::1]:50813 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1aca7z-00021q-OT
+ for aschorr@telemetry-investments.com; Sun, 06 Mar 2016 09:57:51 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:38843)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1aca7v-00021j-UG
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 09:57:49 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1aca7s-0000BS-Mh
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 09:57:47 -0500
+Received: from mail-wm0-x22e.google.com ([2a00:1450:400c:c09::22e]:36907)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1aca7s-0000BH-AQ
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 09:57:44 -0500
+Received: by mail-wm0-x22e.google.com with SMTP id p65so43504875wmp.0
+ for <gawk-devel@gnu.org>; Sun, 06 Mar 2016 06:57:43 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:references:to:message-id:date:user-agent:mime-version
+ :in-reply-to; bh=9LNHJzPXV84uMN+GtLUMey/Zm56fsLTTzkmpf1mbiGo=;
+ b=g0988virz+G6qeClQyJXScghW5fzPf1P1M8glgOOnk9Qn0cd1ef4KVl8MwJN1glJW3
+ fyuAPMmp63i2l7VVZu5Wsh/EXKSjG53O8TY3G0n5ZWC54WWD7Pl5KluKf4dWJU0JkyhQ
+ gmsheRZcbhZCx3Ezt4dnzWRyCPeohKGERJIUrOfYn4YAkTeKb0L9cRtX1A95Il9lkC2G
+ yYRQ+AcX84AVyW6tflDBzacoqo9oyvWrwzD9HFoGGklClqqpaR6yF6U1G/ml2ay/aGGc
+ rIBjj71zJh4LP9ojebBszt0R5ZDFMFFIBl7h2L+GXdTBcZd+obCiKCNZjmSiUNX2gGub
+ RqEQ==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:references:to:message-id:date
+ :user-agent:mime-version:in-reply-to;
+ bh=9LNHJzPXV84uMN+GtLUMey/Zm56fsLTTzkmpf1mbiGo=;
+ b=axrCCQ/STqjKY3dOd6V4AcFS7DwsQBmOmnQXFUEprIZpgOUbiSRYcvlDb//4UjPDBb
+ ZcxDYPISzEH+BoDIZ54X9D/Fjthxl4TOzrH45U0Ry3DkPE5CMiposhroHrNckxPzJi0M
+ qfmJIqQcNR9F9620q8rAuCzSv3HYoszqNrEwjzKLdaj6guSmmhxliEiFCOPIA4rDNRM4
+ GELqnfVy9Bdume8yiFsjOXZWvDB6olV6E8ZcRRWmu4lxGmWY9btI3Bpk/kRvgS6zPGc3
+ rpfDSf7qG5uPX0oKZpYMRkL1HPb30eBSuoNV3sdKsi3XOICMKf7SE9a21p2kk8RbfXZY
+ guZQ==
+X-Gm-Message-State: AD7BkJLIist95OV59smCWVOoW0F6p9utFW58ikfOqKebR2EsRUPzInPaXj8mASrtVNKMpg==
+X-Received: by 10.194.77.193 with SMTP id u1mr18205584wjw.73.1457276263317;
+ Sun, 06 Mar 2016 06:57:43 -0800 (PST)
+Received: from [192.168.0.11] (ip5f5ac802.dynamic.kabel-deutschland.de.
+ [95.90.200.2]) by smtp.googlemail.com with ESMTPSA id
+ h7sm221855wmf.9.2016.03.06.06.57.41 for <gawk-devel@gnu.org>
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 06 Mar 2016 06:57:42 -0800 (PST)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+To: gawk-devel@gnu.org
+Message-ID: <56DC4565.9060302@googlemail.com>
+Date: Sun, 6 Mar 2016 15:57:41 +0100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.6.0
+MIME-Version: 1.0
+In-Reply-To: <20160229203945.GA30054@ti129.telemetry-investments.com>
+Content-Type: multipart/alternative;
+ boundary="------------030801080701090502000108"
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::22e
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 8592
+Lines: 190
+
+This is a multi-part message in MIME format.
+--------------030801080701090502000108
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+
+Hello Andrew,
+
+> On Mon, Feb 29, 2016 at 07:13:00PM +0100, Jürgen Kahrs wrote:
+>> Am 29.02.2016 um 06:29 schrieb Aharon Robbins:
+>>> Can you take a look at making this work again? It's entirely possible
+>>> I messed something up when I moved to getaddrinfo. I don't have tons
+>>> of cycles at the moment, so I could use some help on this.
+>> The internal data structures to be used with
+>> sockets today are very different from what we
+>> have learned by reading Richard Stevens' books.
+>> I will have a look at it next weekend.
+>> If I find a solution, then I will send you a patch.
+> If you are unable to solve it, it would at least be helpful to share some
+> specific examples with the expected and current (incorrect) behavior. That
+> should make it much easier to troubleshoot and fix.
+
+Eli has already pointed you to the example source code.
+The source code he mentions is indeed the example source
+code as listed in the doc.
+
+> I tried to strace the
+> process to see what's going on, but I'm not sure I was working on the right
+> sample code.
+
+I have also used strace to find out what's going wrong.
+It is essential to see the system calls involved.
+The bug originates in the recvfrom call (line 1598) in io.c (socketopen).
+One the server side do this:
+ strace gawk -f server.awk
+On the client side, do this (instead of using client.awk):
+ echo moin | netcat -u localhost 8888
+
+Now look at what strace tells us.
+
+ socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3
+ bind(3, {sa_family=AF_INET, sin_port=htons(8888), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
+ recvfrom(3, "m", 1, MSG_PEEK, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\1\0\0\0\0\0\0\0"}, [16]) = 1
+ connect(3, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\1\0\0\0\0\0\0\0"}, 16) = 0
+ fcntl(3, F_GETFD) = 0
+ fcntl(3, F_SETFD, FD_CLOEXEC) = 0
+ fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
+ fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
+ mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0217729000
+ lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
+
+The address family as returned by recvfrom() is AF_UNSPEC,
+instead of being AF_INET. The connect() call uses this wrong
+address and things go even more wrongly. Even after reading
+the man page, I haven't understood why we get AF_UNSPEC.
+This behaviour may also depend on the configuration of the
+network on your machine (IPv4 or IPv6 as default). From what
+I understood, I would say that our problems is the same as
+the one described here (in the "Answer" section):
+
+http://stackoverflow.com/questions/18108797/recvfrom-not-receiving-depending-on-ai-family-used
+
+If you want to see what should happen if everything is fine,
+replace server.awk and client.awk by similar netcat usage:
+
+ echo $( date ) | netcat -l -u 8888 # server
+ echo moin | netcat -u localhost 8888 # client
+
+strace with netcat will show system calls similar to what gawk does.
+Hmm, this example shows a slight difference to the
+client.awk that we use. The "echo moin" of the client is
+necessary, but the client.awk does not do this.
+This difference explains what Arnold observed in gawk
+since 3.1.0.
+
+So, the example UDP client code contains a hang.
+But besides this hang problem there is a different problem
+with the AF_UNSPEC.
+
+--------------030801080701090502000108
+Content-Type: text/html; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=windows-1252"
+ http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ <div class="moz-cite-prefix">Hello Andrew,<br>
+ <br>
+ </div>
+ <blockquote
+ cite="mid:20160229203945.GA30054@ti129.telemetry-investments.com"
+ type="cite">
+ <pre wrap="">On Mon, Feb 29, 2016 at 07:13:00PM +0100, Jürgen Kahrs wrote:
+</pre>
+ <blockquote type="cite">
+ <pre wrap="">Am 29.02.2016 um 06:29 schrieb Aharon Robbins:
+</pre>
+ <blockquote type="cite">
+ <pre wrap="">Can you take a look at making this work again? It's entirely possible
+I messed something up when I moved to getaddrinfo. I don't have tons
+of cycles at the moment, so I could use some help on this.
+</pre>
+ </blockquote>
+ <pre wrap="">
+The internal data structures to be used with
+sockets today are very different from what we
+have learned by reading Richard Stevens' books.
+I will have a look at it next weekend.
+If I find a solution, then I will send you a patch.
+</pre>
+ </blockquote>
+ <pre wrap="">
+If you are unable to solve it, it would at least be helpful to share some
+specific examples with the expected and current (incorrect) behavior. That
+should make it much easier to troubleshoot and fix.</pre>
+ </blockquote>
+ <br>
+ Eli has already pointed you to the example source code.<br>
+ The source code he mentions is indeed the example source<br>
+ code as listed in the doc.<br>
+ <br>
+ <blockquote
+ cite="mid:20160229203945.GA30054@ti129.telemetry-investments.com"
+ type="cite">
+ <pre wrap="">I tried to strace the
+process to see what's going on, but I'm not sure I was working on the right
+sample code.
+</pre>
+ </blockquote>
+ <br>
+ I have also used strace to find out what's going wrong.<br>
+ It is essential to see the system calls involved.<br>
+ The bug originates in the recvfrom call (line 1598) in io.c
+ (socketopen).<br>
+ One the server side do this:<br>
+   <tt>strace gawk -f server.awk</tt><br>
+ On the client side, do this (instead of using client.awk):<br>
+   <tt>echo moin | netcat -u localhost 8888</tt><tt><br>
+ </tt><br>
+ Now look at what strace tells us.<br>
+ <blockquote><tt>socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3</tt><tt><br>
+ </tt><tt>bind(3, {sa_family=AF_INET, sin_port=htons(8888),
+ sin_addr=inet_addr("0.0.0.0")}, 16) = 0</tt><tt><br>
+ </tt><tt>recvfrom(3, "m", 1, MSG_PEEK, {<font color="#ff0000">sa_family=AF_UNSPEC</font>,
+ sa_data="\0\0\0\0\0\0\1\0\0\0\0\0\0\0"}, [16]) = 1</tt><tt><br>
+ </tt><tt>connect(3, {sa_family=AF_UNSPEC,
+ sa_data="\0\0\0\0\0\0\1\0\0\0\0\0\0\0"}, 16) = 0</tt><tt><br>
+ </tt><tt>fcntl(3, F_GETFD)                       = 0</tt><tt><br>
+ </tt><tt>fcntl(3, F_SETFD, FD_CLOEXEC)           = 0</tt><tt><br>
+ </tt><tt>fcntl(3, F_GETFL)                       = 0x2 (flags
+ O_RDWR)</tt><tt><br>
+ </tt><tt>fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0</tt><tt><br>
+ </tt><tt>mmap(NULL, 4096, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0217729000</tt><tt><br>
+ </tt><tt>lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE
+ (Illegal seek)</tt><tt><br>
+ </tt></blockquote>
+ The address family as returned by recvfrom() is AF_UNSPEC,<br>
+ instead of being AF_INET. The connect() call uses this wrong<br>
+ address and things go even more wrongly. Even after reading<br>
+ the man page, I haven't understood why we get AF_UNSPEC.<br>
+ This behaviour may also depend on the configuration of the<br>
+ network on your machine (IPv4 or IPv6 as default). From what<br>
+ I understood, I would say that our problems is the same as<br>
+ the one described here (in the "Answer" section):<br>
+ <br>
+<a class="moz-txt-link-freetext" href="http://stackoverflow.com/questions/18108797/recvfrom-not-receiving-depending-on-ai-family-used">http://stackoverflow.com/questions/18108797/recvfrom-not-receiving-depending-on-ai-family-used</a><br>
+ <br>
+ If you want to see what should happen if everything is fine,<br>
+ replace server.awk and client.awk by similar netcat usage:<br>
+ <br>
+   echo $( date ) | netcat -l -u 8888          # server<br>
+   echo moin | netcat -u localhost 8888    # client<br>
+ <br>
+ strace with netcat will show system calls similar to what gawk does.<br>
+ Hmm, this example shows a slight difference to the<br>
+ client.awk that we use. The "echo moin" of the client is<br>
+ necessary, but the client.awk does not do this.<br>
+ This difference explains what Arnold observed in gawk<br>
+ since 3.1.0.<br>
+ <br>
+ So, the example UDP client code contains a hang.<br>
+ But besides this hang problem there is a different problem<br>
+ with the AF_UNSPEC.<br>
+ </body>
+</html>
+
+--------------030801080701090502000108--
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 6 13:29:16 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id B0A80442
+ for <schorr@schorr.telemetry-investments.com>; Sun, 6 Mar 2016 13:29:16 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id A297E6C5; Sun, 6 Mar 2016 13:29:16 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 5E0984B
+ for <aschorr@telemetry-investments.com>; Sun, 6 Mar 2016 13:29:15 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 5E0984B
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=gmail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MncCGERE
+Received: from localhost ([::1]:51640 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1acdQW-0003XC-Mk
+ for aschorr@telemetry-investments.com; Sun, 06 Mar 2016 13:29:12 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:49085)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1acdQU-0003Ul-7m
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 13:29:11 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1acdQR-0000Pl-2v
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 13:29:10 -0500
+Received: from mail-io0-x234.google.com ([2607:f8b0:4001:c06::234]:34471)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1acdQQ-0000PT-VO
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 13:29:07 -0500
+Received: by mail-io0-x234.google.com with SMTP id m184so110570737iof.1
+ for <gawk-devel@gnu.org>; Sun, 06 Mar 2016 10:29:06 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+ h=date:from:to:cc:subject:message-id:references:mime-version
+ :content-disposition:content-transfer-encoding:in-reply-to
+ :user-agent; bh=u7hO1hxwFA3IHtw+0exna711t750EnHddhZynjQlii0=;
+ b=MncCGEREhG+Cdhx4JWoTlNqLF23c/8heUayTFsDQneRsEHbU1HU7VNT+Hg58VVKnhq
+ QgEzX8h43xHyZ60dsGOm7cwtzZzc6tybuSdRxSc6x5VatEQBEH7599m+VnNiUMEp/7Cj
+ 3/DRkNBnr72mTmAwG8HGx/4d5Gmjzt292Zo50fce05vRJZNChck6heYGjfHtpGIk4WM2
+ LTpy6HsFIbrNpSFduZB44CVKbm7cYiL7AdivYtPUYqs0mmolMPuJWAnstbXLmvCJFA2d
+ X3FPgUQ6Xv1ozJLpCFaCky1FaJky/3MYYL5Djzd1IpX8RLEnrldB6J2tgkpfWTlGTCtI
+ QrjA==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:date:from:to:cc:subject:message-id:references
+ :mime-version:content-disposition:content-transfer-encoding
+ :in-reply-to:user-agent;
+ bh=u7hO1hxwFA3IHtw+0exna711t750EnHddhZynjQlii0=;
+ b=RuDfu46uioIClB2uoxCa95feruKvQVo7HqOHUp3wIJh7k5QLqpolzI1saI8upJebWG
+ tlV54x71KiheXq/ZxvzWXLHBYlcPpa1n/So+9S6QBnOOITasNLRJatnuN28lSEK1qi/d
+ hgWx7cwRcQ95wsSUSVlRexGmXrXmoDnCC8ekMtBEmpDPmlPzeY9ePYtgBoiMYuIyDLUo
+ tOLIXDisi4uK+vEM5szdh/E3Eu612ZETLeu6tkaq5WzN0OWhGsUspdTbVPr4QOwEwnqw
+ h6PFNr/qnP8+kV0n8cS7ig78IkGn3C9Gu5Ax0MxyQe2SNqsAnCGJChyHfM9wOx58+01w
+ didA==
+X-Gm-Message-State: AD7BkJIs3KQWYHBJg3KoM+oD2tfif486wHqvqslqdnWLWxfyIUB/QZsRFy6uLkd5SodHJQ==
+X-Received: by 10.107.3.34 with SMTP id 34mr8820297iod.159.1457288946214;
+ Sun, 06 Mar 2016 10:29:06 -0800 (PST)
+Received: from smok.internal (d23-17-121-177.abhsia.telus.net. [23.17.121.177])
+ by smtp.gmail.com with ESMTPSA id l17sm3507503igf.1.2016.03.06.10.29.04
+ (version=TLS1_2 cipher=AES128-SHA bits=128/128);
+ Sun, 06 Mar 2016 10:29:05 -0800 (PST)
+Date: Sun, 6 Mar 2016 11:28:57 -0700
+From: Michal Jaegermann <michal.jnn@gmail.com>
+To: =?iso-8859-1?Q?J=FCrgen?= Kahrs <juergen.kahrs@googlemail.com>
+Message-ID: <20160306182857.GA27654@smok.internal>
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=iso-8859-1
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+In-Reply-To: <56DC4565.9060302@googlemail.com>
+User-Agent: Mutt/1.5.23 (2014-03-12)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2607:f8b0:4001:c06::234
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 779
+Lines: 21
+
+On Sun, Mar 06, 2016 at 03:57:41PM +0100, Jürgen Kahrs wrote:
+>
+> The address family as returned by recvfrom() is AF_UNSPEC,
+> instead of being AF_INET.
+
+'man 3 getaddrinfo', at least on Linux, says the following:
+
+The value AF_UNSPEC indicates that getaddrinfo() should return socket
+addresses for any address family (either IPv4 or IPv6, for example) that can
+be used with node and service.
+
+> Even after reading
+> the man page, I haven't understood why we get AF_UNSPEC.
+
+Sockets may have IPv4 addresses, or IPv6, or both; so AF_UNSPEC
+looks correct but it appears that handling that is somewhat more involved
+(like in http://stackoverflow.com/questions/18108797 you are quoting).
+It appears from the net search that the same trouble was bumped into
+many times.
+
+ Michal
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 6 14:22:23 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 930433DCA
+ for <schorr@schorr.telemetry-investments.com>; Sun, 6 Mar 2016 14:22:23 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 7E1006EF; Sun, 6 Mar 2016 14:22:23 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 24A9E6A8
+ for <aschorr@telemetry-investments.com>; Sun, 6 Mar 2016 14:22:22 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 24A9E6A8
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=skeeve.com
+Received: from localhost ([::1]:51849 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1aceFv-0004nU-Hf
+ for aschorr@telemetry-investments.com; Sun, 06 Mar 2016 14:22:19 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:57734)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1aceFt-0004nF-KD
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 14:22:18 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1aceFq-0002NT-Pm
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 14:22:17 -0500
+Received: from mxout1.netvision.net.il ([194.90.9.20]:64784)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1aceFq-0002NB-IA
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 14:22:14 -0500
+MIME-version: 1.0
+Content-transfer-encoding: 7BIT
+Content-type: text/plain; CHARSET=US-ASCII
+Received: from skeeve.com ([93.173.253.111]) by mxout1.netvision.net.il
+ (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit
+ (built Nov
+ 17 2011)) with ESMTPSA id <0O3M00659TQ0PL60@mxout1.netvision.net.il>
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 21:20:25 +0200 (IST)
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+ by skeeve.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id
+ u26JKOwq007181; Sun, 06 Mar 2016 21:20:24 +0200
+Received: (from arnold@localhost) by skeeve.com (8.14.4/8.14.4/Submit)
+ id u26JKO9h007180; Sun, 06 Mar 2016 21:20:24 +0200
+From: Aharon Robbins <arnold@skeeve.com>
+Message-id: <201603061920.u26JKO9h007180@skeeve.com>
+Date: Sun, 06 Mar 2016 21:20:24 +0200
+To: michal.jnn@gmail.com, juergen.kahrs@googlemail.com
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+In-reply-to: <20160306182857.GA27654@smok.internal>
+User-Agent: Heirloom mailx 12.5 6/20/10
+X-detected-operating-system: by eggs.gnu.org: Solaris 10
+X-Received-From: 194.90.9.20
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 123
+Lines: 6
+
+I also tried using /inet4/... in the client and server, and it didn't
+make any difference. Any idea why?
+
+Thanks,
+
+Arnold
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 6 15:03:23 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 079A1442
+ for <schorr@schorr.telemetry-investments.com>; Sun, 6 Mar 2016 15:03:23 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id E72A36C5; Sun, 6 Mar 2016 15:03:22 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id A4AEE461
+ for <aschorr@telemetry-investments.com>; Sun, 6 Mar 2016 15:03:22 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com A4AEE461
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=waSQHfxn
+Received: from localhost ([::1]:51957 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1acetd-0004fb-9Z
+ for aschorr@telemetry-investments.com; Sun, 06 Mar 2016 15:03:21 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:34108)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1acetZ-0004ez-QZ
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 15:03:18 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1acetV-0000mg-QE
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 15:03:17 -0500
+Received: from mail-wm0-x235.google.com ([2a00:1450:400c:c09::235]:35052)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1acetV-0000mb-Im
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 15:03:13 -0500
+Received: by mail-wm0-x235.google.com with SMTP id l68so59078275wml.0
+ for <gawk-devel@gnu.org>; Sun, 06 Mar 2016 12:03:13 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:to:references:message-id:date:user-agent:mime-version
+ :in-reply-to:content-transfer-encoding;
+ bh=1dhTPnLMl1NLYTiZ5B3/gUpJCZPbHFlYXmSyglJlsCQ=;
+ b=waSQHfxn0Aeb/6+aCPqQvussc9woWxVJ8Z65zMSkD26kE/kc7QJjF0x1u4bi8xomN/
+ RlnnIHzNC9k507ntNATNqsXt1RdukDOz0g6BbHECv8Vjrnjut1uDl88zmK2gKcOQ0Xal
+ HqWqfjKX74wbvzN4a6i7c2ihTcjaMJcIen9TQlcswvelpMY+V8CqKnEgNdxLK2erLnN8
+ rJuKMvXgsQrYrYfOhqi6Jz7OQEuVOv+39f5CBORYcq7S46+dzr656IUhdNoNueHB384/
+ XN6qYNChVDBkxtQ9ThORTbzlte+NlQne5R2dGEM5Bt8F7btgnp4WX1eUlGtmWnhdlxLP
+ AqBw==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:to:references:message-id:date
+ :user-agent:mime-version:in-reply-to:content-transfer-encoding;
+ bh=1dhTPnLMl1NLYTiZ5B3/gUpJCZPbHFlYXmSyglJlsCQ=;
+ b=MpG7lsWt4cPXQoQz8MyQ8utUvkfhsEYJuo6iI1fvs7pmBHf7MzuvuFJ7IACyHDz+gZ
+ ZdWfB6d85ZrDd5zReycLdDA+CPrfvPnWhPYe+H+qkemXSYXz2eL03WSklEuRMQ5z/Q+x
+ ZO74qKHurAmLIj8CpUmwkE6+xfJ9QI0lmlN2x5lfrHo2wIjwOD2qFqRnAXgkKufoS0ye
+ +h2Yb4Swb4/7Q4fJpbXr/w4r3Ay1XCGw69+B3Yj/JQYqdfel+PkQo9WXcXi9HOKloDDr
+ afPng3lSrHmzOl/MKivb+adGOQra5cYrPuWY+hETuL3g4fzLK0qHostNBRC+up6q+F5v
+ zy+Q==
+X-Gm-Message-State: AD7BkJL80YXtcXHPQ640xkfw+XIQdHyd1MjNpWmNBzKG/8WvUM8K14LHPSeiViXQprtdxg==
+X-Received: by 10.194.6.234 with SMTP id e10mr19057923wja.118.1457294592575;
+ Sun, 06 Mar 2016 12:03:12 -0800 (PST)
+Received: from [192.168.0.11] (ip5f5ac802.dynamic.kabel-deutschland.de.
+ [95.90.200.2]) by smtp.googlemail.com with ESMTPSA id
+ 73sm10167939wmy.22.2016.03.06.12.03.11 for <gawk-devel@gnu.org>
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 06 Mar 2016 12:03:12 -0800 (PST)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+To: gawk-devel@gnu.org
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061920.u26JKO9h007180@skeeve.com>
+Message-ID: <56DC8CFF.8020501@googlemail.com>
+Date: Sun, 6 Mar 2016 21:03:11 +0100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.6.0
+MIME-Version: 1.0
+In-Reply-To: <201603061920.u26JKO9h007180@skeeve.com>
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::235
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 260
+Lines: 7
+
+Am 06.03.2016 um 20:20 schrieb Aharon Robbins:
+> I also tried using /inet4/... in the client and server, and it didn't
+> make any difference. Any idea why?
+
+I also played a bit with inet4 and it did not help.
+It must be getaddrinfo() that returns AF_UNSPEC.
+
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 6 14:22:23 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 858FD426
+ for <schorr@schorr.telemetry-investments.com>; Sun, 6 Mar 2016 14:22:23 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 799F06CD; Sun, 6 Mar 2016 14:22:23 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 38A3C6C5
+ for <aschorr@telemetry-investments.com>; Sun, 6 Mar 2016 14:22:22 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 38A3C6C5
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=skeeve.com
+Received: from localhost ([::1]:51848 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1aceFv-0004nQ-GC
+ for aschorr@telemetry-investments.com; Sun, 06 Mar 2016 14:22:19 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:57735)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1aceFt-0004nG-K8
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 14:22:18 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1aceFq-0002NN-FK
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 14:22:17 -0500
+Received: from mxout1.netvision.net.il ([194.90.9.20]:64784)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1aceFq-0002NB-7h
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 14:22:14 -0500
+MIME-version: 1.0
+Content-transfer-encoding: 7BIT
+Content-type: text/plain; CHARSET=US-ASCII
+Received: from skeeve.com ([93.173.253.111]) by mxout1.netvision.net.il
+ (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit
+ (built Nov
+ 17 2011)) with ESMTPSA id <0O3M006QJTL0P750@mxout1.netvision.net.il>
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 21:17:25 +0200 (IST)
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+ by skeeve.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id
+ u26JHN0E006987; Sun, 06 Mar 2016 21:17:23 +0200
+Received: (from arnold@localhost) by skeeve.com (8.14.4/8.14.4/Submit)
+ id u26JHNwQ006986; Sun, 06 Mar 2016 21:17:23 +0200
+From: Aharon Robbins <arnold@skeeve.com>
+Message-id: <201603061917.u26JHNwQ006986@skeeve.com>
+Date: Sun, 06 Mar 2016 21:17:23 +0200
+To: michal.jnn@gmail.com, juergen.kahrs@googlemail.com
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+In-reply-to: <20160306182857.GA27654@smok.internal>
+User-Agent: Heirloom mailx 12.5 6/20/10
+X-detected-operating-system: by eggs.gnu.org: Solaris 10
+X-Received-From: 194.90.9.20
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 193
+Lines: 9
+
+Can anyone get the original code to work? I tried compiling 3.1.0
+and I get the same hangs.
+
+I don't mind trying to fix the logic, but I need to know what the
+right steps are.
+
+Thanks,
+
+Arnold
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 6 14:54:48 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 70D2F442
+ for <schorr@schorr.telemetry-investments.com>; Sun, 6 Mar 2016 14:54:48 -0500 (EST)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 5EB176C5; Sun, 6 Mar 2016 14:54:48 -0500 (EST)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 1AA94461
+ for <aschorr@telemetry-investments.com>; Sun, 6 Mar 2016 14:54:47 -0500 (EST)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 1AA94461
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=zcso3Y88
+Received: from localhost ([::1]:51926 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1acelK-00027b-Aw
+ for aschorr@telemetry-investments.com; Sun, 06 Mar 2016 14:54:46 -0500
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:32960)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1acelH-00027S-HQ
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 14:54:44 -0500
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1acelC-0007XY-UN
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 14:54:43 -0500
+Received: from mail-wm0-x22a.google.com ([2a00:1450:400c:c09::22a]:34190)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1acelC-0007XU-JZ
+ for gawk-devel@gnu.org; Sun, 06 Mar 2016 14:54:38 -0500
+Received: by mail-wm0-x22a.google.com with SMTP id p65so83441359wmp.1
+ for <gawk-devel@gnu.org>; Sun, 06 Mar 2016 11:54:38 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:references:to:message-id:date:user-agent:mime-version
+ :in-reply-to; bh=jpN7MlA2J8WKgCBtEd0/SINODoMoXu4ex9MgN7ulKUY=;
+ b=zcso3Y88tDMyady9rMHk3stN+rwENwtdK/+VdolRUaUQtkbg0K5M/UcHzeRGydBToM
+ bHALlRA1z0KzCcl6PQ7gww7S0ACEqzcK9YJU6l0EYD2B/yRxdgP7MMk016x+JMWKHhc9
+ y9zPKARj9U0Cd+miCR7q7g/rX8P4SQP8Ynx/J1Edf77Et5SPTGRbmIDdymtcf4fqv/rW
+ QCoB/3trZuX0nDtXF5Np7EfvJQN+ggE5ajtZYUZyRfLNH1OSC32TWLpRjolfxPiwi5XR
+ /5MEjBrytpxW7tCo/XiGUMFVXlVR0m2RUE3LugkwQ/f4nVNwzfrMQiZHR4huh55TIqSC
+ mdBA==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:references:to:message-id:date
+ :user-agent:mime-version:in-reply-to;
+ bh=jpN7MlA2J8WKgCBtEd0/SINODoMoXu4ex9MgN7ulKUY=;
+ b=k1KJcn+zjpYBUTvJdaYRmiZfrky7aCvHDe5IW4v2jNvpSAgJ/RtZo+o211GIV9vr/x
+ lwZkfihSpbdA5ZBU1SIga0P9/cz/TTtYx5d7vON+3t/RdavgFmKiH47aUcxFb84MTnDh
+ brDPOi5t6YWeZ2+QwgCTohkp47El7WeNGMyD+HQnY4jbpA5K3tyNTuKhIRQA2a11GZJJ
+ 5Ai5JYolH0/wKvYeKV4VKEBG2VvetDcLCLTpEInVODmGXAFicQU/FLGCRK0oPDeZtZSX
+ 2v2WQrcL2WkriElF+RxNKouq3lHc0vfn6nKBAxvl05hV/1PT8Foe7stT+IsUp31zNebT
+ YcTQ==
+X-Gm-Message-State: AD7BkJIs3yCk7zUgF2tESIDoQmgeve5dy71E5VdiTQ24MMQiRn76ydMgpIvVjhrEhzOIXw==
+X-Received: by 10.28.125.195 with SMTP id y186mr4027672wmc.79.1457294077813;
+ Sun, 06 Mar 2016 11:54:37 -0800 (PST)
+Received: from [192.168.0.11] (ip5f5ac802.dynamic.kabel-deutschland.de.
+ [95.90.200.2]) by smtp.googlemail.com with ESMTPSA id
+ c71sm114480wmd.4.2016.03.06.11.54.36 for <gawk-devel@gnu.org>
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 06 Mar 2016 11:54:37 -0800 (PST)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+To: gawk-devel@gnu.org
+Message-ID: <56DC8AFB.80708@googlemail.com>
+Date: Sun, 6 Mar 2016 20:54:35 +0100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.6.0
+MIME-Version: 1.0
+In-Reply-To: <201603061917.u26JHNwQ006986@skeeve.com>
+Content-Type: multipart/alternative;
+ boundary="------------000000090503030309040109"
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::22a
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 5130
+Lines: 128
+
+This is a multi-part message in MIME format.
+--------------000000090503030309040109
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+
+Am 06.03.2016 um 20:17 schrieb Aharon Robbins:
+> Can anyone get the original code to work? I tried compiling 3.1.0
+> and I get the same hangs.
+
+I tried http://ftp.gnu.org/gnu/gawk/gawk-3.1.0.tar.gz
+but couldnt build because the "configure" script hangs
+in check of mktime.
+
+I tried http://ftp.gnu.org/gnu/gawk/gawk-3.1.8.tar.gz
+and it built.
+
+The behaviour of the server example is similar (hangs)
+but there is a slight difference:
+
+ socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3
+ bind(3, {sa_family=AF_INET, sin_port=htons(8888), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
+ recvfrom(3, "m", 1, MSG_PEEK, {sa_family=AF_INET, sin_port=htons(57669), sin_addr=inet_addr("127.0.0.1")}, [16]) = 1
+ connect(3, {sa_family=AF_INET, sin_port=htons(57669), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
+ fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
+ fcntl(3, F_SETFD, FD_CLOEXEC) = 0
+ fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
+
+
+So the problem with the AF_UNSPEC did not appear
+in gawk 3.1.8. The server script can send its string
+to a client (I used the netcat client). The client did
+receive the string. But the server script was unable
+to terminate properly.
+
+ fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
+ mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd1d4190000
+ lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
+
+This illegal seek also appears when gawk is built from
+the current master.
+
+
+> I don't mind trying to fix the logic, but I need to know what the
+> right steps are.
+
+It looks like 3 bugs:
+1. Handling of AF_UNSPEC (correct in 3.1.8, wrong in master)
+2. illegal seek (appears in both)
+3. client script behaviour wrong in both
+
+
+
+--------------000000090503030309040109
+Content-Type: text/html; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=windows-1252"
+ http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ <div class="moz-cite-prefix">Am 06.03.2016 um 20:17 schrieb Aharon
+ Robbins:<br>
+ </div>
+ <blockquote cite="mid:201603061917.u26JHNwQ006986@skeeve.com"
+ type="cite">
+ <pre wrap="">Can anyone get the original code to work? I tried compiling 3.1.0
+and I get the same hangs.</pre>
+ </blockquote>
+ <br>
+ I tried <a class="moz-txt-link-freetext" href="http://ftp.gnu.org/gnu/gawk/gawk-3.1.0.tar.gz">http://ftp.gnu.org/gnu/gawk/gawk-3.1.0.tar.gz</a><br>
+ but couldnt build because the "configure" script hangs<br>
+ in check of mktime.<br>
+ <br>
+ I tried <a class="moz-txt-link-freetext" href="http://ftp.gnu.org/gnu/gawk/gawk-3.1.8.tar.gz">http://ftp.gnu.org/gnu/gawk/gawk-3.1.8.tar.gz</a><br>
+ and it built.<br>
+ <br>
+ The behaviour of the server example is similar (hangs)<br>
+ but there is a slight difference:<br>
+ <br>
+ <blockquote><tt>socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3</tt><tt><br>
+ </tt><tt>bind(3, {sa_family=AF_INET, sin_port=htons(8888),
+ sin_addr=inet_addr("0.0.0.0")}, 16) = 0</tt><tt><br>
+ </tt><tt>recvfrom(3, "m", 1, MSG_PEEK, {<font color="#ff0000">sa_family=AF_INET</font>,
+ sin_port=htons(57669), sin_addr=inet_addr("127.0.0.1")}, [16]) =
+ 1</tt><tt><br>
+ </tt><tt>connect(3, {sa_family=AF_INET, sin_port=htons(57669),
+ sin_addr=inet_addr("127.0.0.1")}, 16) = 0</tt><tt><br>
+ </tt><tt>fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0</tt><tt><br>
+ </tt><tt>fcntl(3, F_SETFD, FD_CLOEXEC)           = 0</tt><tt><br>
+ </tt><tt>fcntl(3, F_GETFL)                       = 0x2 (flags
+ O_RDWR)</tt><tt><br>
+ </tt></blockquote>
+ <br>
+ So the problem with the AF_UNSPEC did not appear<br>
+ in gawk 3.1.8. The server script can send its string<br>
+ to a client (I used the netcat client). The client did<br>
+ receive the string. But the server script was unable<br>
+ to terminate properly.<br>
+ <blockquote><tt>fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) =
+ 0</tt><tt><br>
+ </tt><tt>mmap(NULL, 4096, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd1d4190000</tt><tt><br>
+ </tt><tt>lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE (<font
+ color="#ff0000">Illegal seek</font>)</tt><tt><br>
+ </tt></blockquote>
+ This illegal seek also appears when gawk is built from<br>
+ the current master.<br>
+ <br>
+ <br>
+ <blockquote cite="mid:201603061917.u26JHNwQ006986@skeeve.com"
+ type="cite">
+ <pre wrap="">I don't mind trying to fix the logic, but I need to know what the
+right steps are.
+</pre>
+ </blockquote>
+ <br>
+ It looks like 3 bugs:<br>
+ 1. Handling of AF_UNSPEC (correct in 3.1.8, wrong in master)<br>
+ 2. illegal seek (appears in both)<br>
+ 3. client script behaviour wrong in both<br>
+ <br>
+ <br>
+ </body>
+</html>
+
+--------------000000090503030309040109--
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 13 10:28:36 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id D97D1311
+ for <schorr@schorr.telemetry-investments.com>; Sun, 13 Mar 2016 10:28:36 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id CC0BB6B1; Sun, 13 Mar 2016 10:28:36 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 70FE7598
+ for <aschorr@telemetry-investments.com>; Sun, 13 Mar 2016 10:28:36 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 70FE7598
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=sa5CGyXS
+Received: from localhost ([::1]:36235 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1af70U-0002U7-9W
+ for aschorr@telemetry-investments.com; Sun, 13 Mar 2016 10:28:34 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:34746)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1af70R-0002Tv-HI
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 10:28:32 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1af70M-0006uN-Sf
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 10:28:31 -0400
+Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]:37005)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1af70M-0006u8-HP
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 10:28:26 -0400
+Received: by mail-wm0-x229.google.com with SMTP id p65so72040532wmp.0
+ for <gawk-devel@gnu.org>; Sun, 13 Mar 2016 07:28:25 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:to:references:message-id:date:user-agent:mime-version
+ :in-reply-to; bh=Mp1jzavGOjR15owakdQhLm0d9FnPYEbkWWB91yOS6E8=;
+ b=sa5CGyXSYND4iUdbXcvZcDy1vPIQv+GzxlVIX6X02eq+Mhe4NHEycUyprkpCDT6jTi
+ adz3vnM0hP4UH+k3ZUdHoDcSS2ob4HOGTfA9LQmAHV7m0lLRZxYjWbu2ufi/OQyhDhDH
+ Nub30ogM6ek6S9VQgUwXVAR3PMyDKpntIfqpncHiAgA80FE9XgFdo8HMaMkJcUcydIfs
+ 0ED5NZmhudhU9DTx7VPrtUu1BXXFjoSr1BiZYn81/atQ1k+PjIenRqKwpCxVYAw85uYC
+ IKTz38sCM/q6hUvqkLyOLa9MZy8ngVKVVxoSpRDHF7d9xnq/CGZlGiUWSUtCJRU8U/yA
+ ortg==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:to:references:message-id:date
+ :user-agent:mime-version:in-reply-to;
+ bh=Mp1jzavGOjR15owakdQhLm0d9FnPYEbkWWB91yOS6E8=;
+ b=klAX1y/tXBvy+VHTPK44TdnTBYdoi4ZMrhjETzGAGP7p5/bCiKZAm/nXtHSRPyUcJD
+ 9CYz9ZgbwxWMDDyZ/tnb6S5qekAAbpZ8nqNLvmAdk++rFem1mPVK1CXW0jwNcx5PnFSj
+ HKOJrxYEj9fjLKbQefhv63DAthTb0s+K/xnVKYzHjLCHYDTtH3DjDA/YqbLXgxZvK6bd
+ pnU1yKwhC1MdAsKjxeJYvJxR3tB8v2p6Su3D+lhl7gp+Zr3nH5d8zZpXQQ+p+fxXRjrd
+ 2j2w9M+jCKO0zcErKbIWi87aTh0E4XqW8bLvRriFuzfk3Ir01486pg33djhNWkmHA07d
+ 5uDA==
+X-Gm-Message-State: AD7BkJI+d/7J4mUjuSXimhVoI7r5BQK5z362MAZyr1EqDZnjK7ekJ6opBOh+4ZGwzRn8Zw==
+X-Received: by 10.28.68.136 with SMTP id r130mr7983385wma.28.1457879304432;
+ Sun, 13 Mar 2016 07:28:24 -0700 (PDT)
+Received: from [192.168.0.11] (ip5f5ac869.dynamic.kabel-deutschland.de.
+ [95.90.200.105]) by smtp.googlemail.com with ESMTPSA id
+ d2sm17891811wjf.28.2016.03.13.07.28.23 for <gawk-devel@gnu.org>
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 13 Mar 2016 07:28:23 -0700 (PDT)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+To: gawk-devel@gnu.org
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com>
+Message-ID: <56E57906.2030102@googlemail.com>
+Date: Sun, 13 Mar 2016 15:28:22 +0100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.6.0
+MIME-Version: 1.0
+In-Reply-To: <56DC8AFB.80708@googlemail.com>
+Content-Type: multipart/alternative;
+ boundary="------------010903030700010703010304"
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::229
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 7941
+Lines: 189
+
+This is a multi-part message in MIME format.
+--------------010903030700010703010304
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+
+Am 06.03.2016 um 20:54 schrieb Jürgen Kahrs:
+> Am 06.03.2016 um 20:17 schrieb Aharon Robbins:
+>> Can anyone get the original code to work? I tried compiling 3.1.0
+>> and I get the same hangs.
+>
+> I tried http://ftp.gnu.org/gnu/gawk/gawk-3.1.0.tar.gz
+> but couldnt build because the "configure" script hangs
+> in check of mktime.
+>
+> I tried http://ftp.gnu.org/gnu/gawk/gawk-3.1.8.tar.gz
+> and it built.
+>
+> The behaviour of the server example is similar (hangs)
+> but there is a slight difference:
+>
+> socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3
+> bind(3, {sa_family=AF_INET, sin_port=htons(8888), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
+> recvfrom(3, "m", 1, MSG_PEEK, {sa_family=AF_INET, sin_port=htons(57669), sin_addr=inet_addr("127.0.0.1")}, [16]) = 1
+> connect(3, {sa_family=AF_INET, sin_port=htons(57669), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
+> fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
+> fcntl(3, F_SETFD, FD_CLOEXEC) = 0
+> fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
+>
+>
+> So the problem with the AF_UNSPEC did not appear
+> in gawk 3.1.8. The server script can send its string
+> to a client (I used the netcat client). The client did
+> receive the string. But the server script was unable
+> to terminate properly.
+
+I have found a way to change the behaviour of the GAWK master
+source code so that it behaves again in the same (correct) way as
+described above for GAWK 3.1.8:
+
+ --- a/io.c
+ +++ b/io.c
+ @@ -1593,7 +1593,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;
+
+
+recvfrom() was unable to pass the remote address only
+because read_len was 0. It was a bit frustrating that such
+a detail was silently ignored in the past and causes problems
+in the more recent OS installations.
+
+The other 2 problems that I listed below are still open.
+
+> fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
+> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd1d4190000
+> lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
+>
+> This illegal seek also appears when gawk is built from
+> the current master.
+>
+>
+>> I don't mind trying to fix the logic, but I need to know what the
+>> right steps are.
+>
+> It looks like 3 bugs:
+> 1. Handling of AF_UNSPEC (correct in 3.1.8, wrong in master)
+> 2. illegal seek (appears in both)
+> 3. client script behaviour wrong in both
+>
+>
+
+
+--------------010903030700010703010304
+Content-Type: text/html; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=windows-1252"
+ http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ <div class="moz-cite-prefix">Am 06.03.2016 um 20:54 schrieb Jürgen
+ Kahrs:<br>
+ </div>
+ <blockquote cite="mid:56DC8AFB.80708@googlemail.com" type="cite">
+ <meta content="text/html; charset=windows-1252"
+ http-equiv="Content-Type">
+ <div class="moz-cite-prefix">Am 06.03.2016 um 20:17 schrieb Aharon
+ Robbins:<br>
+ </div>
+ <blockquote cite="mid:201603061917.u26JHNwQ006986@skeeve.com"
+ type="cite">
+ <pre wrap="">Can anyone get the original code to work? I tried compiling 3.1.0
+and I get the same hangs.</pre>
+ </blockquote>
+ <br>
+ I tried <a moz-do-not-send="true" class="moz-txt-link-freetext"
+ href="http://ftp.gnu.org/gnu/gawk/gawk-3.1.0.tar.gz">http://ftp.gnu.org/gnu/gawk/gawk-3.1.0.tar.gz</a><br>
+ but couldnt build because the "configure" script hangs<br>
+ in check of mktime.<br>
+ <br>
+ I tried <a moz-do-not-send="true" class="moz-txt-link-freetext"
+ href="http://ftp.gnu.org/gnu/gawk/gawk-3.1.8.tar.gz">http://ftp.gnu.org/gnu/gawk/gawk-3.1.8.tar.gz</a><br>
+ and it built.<br>
+ <br>
+ The behaviour of the server example is similar (hangs)<br>
+ but there is a slight difference:<br>
+ <br>
+ <blockquote><tt>socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3</tt><tt><br>
+ </tt><tt>bind(3, {sa_family=AF_INET, sin_port=htons(8888),
+ sin_addr=inet_addr("0.0.0.0")}, 16) = 0</tt><tt><br>
+ </tt><tt>recvfrom(3, "m", 1, MSG_PEEK, {<font color="#ff0000">sa_family=AF_INET</font>,
+ sin_port=htons(57669), sin_addr=inet_addr("127.0.0.1")}, [16])
+ = 1</tt><tt><br>
+ </tt><tt>connect(3, {sa_family=AF_INET, sin_port=htons(57669),
+ sin_addr=inet_addr("127.0.0.1")}, 16) = 0</tt><tt><br>
+ </tt><tt>fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0</tt><tt><br>
+ </tt><tt>fcntl(3, F_SETFD, FD_CLOEXEC)           = 0</tt><tt><br>
+ </tt><tt>fcntl(3, F_GETFL)                       = 0x2 (flags
+ O_RDWR)</tt><tt><br>
+ </tt></blockquote>
+ <br>
+ So the problem with the AF_UNSPEC did not appear<br>
+ in gawk 3.1.8. The server script can send its string<br>
+ to a client (I used the netcat client). The client did<br>
+ receive the string. But the server script was unable<br>
+ to terminate properly.<br>
+ </blockquote>
+ <br>
+ I have found a way to change the behaviour of the  GAWK master<br>
+ source code so that it behaves again in the same (correct) way as<br>
+ described above for GAWK 3.1.8:<br>
+ <br>
+ <blockquote><tt>--- a/io.c</tt><tt><br>
+ </tt><tt>+++ b/io.c</tt><tt><br>
+ </tt><tt>@@ -1593,7 +1593,7 @@ socketopen(int family, int type,
+ const char *localpname,</tt><tt><br>
+ </tt><tt> #ifdef MSG_PEEK</tt><tt><br>
+ </tt><tt>                                        char buf[10];</tt><tt><br>
+ </tt><tt>                                        struct
+ sockaddr_storage remote_addr;</tt><tt><br>
+ </tt><tt>-                                       socklen_t
+ read_len = <font color="#ff0000">0</font>;</tt><tt><br>
+ </tt><tt>+                                       socklen_t
+ read_len = <font color="#33ff33">sizeof remote_addr</font>;</tt><tt><br>
+ </tt></blockquote>
+ <br>
+ recvfrom() was unable to pass the remote address only<br>
+ because read_len was 0. It was a bit frustrating that such<br>
+ a detail was silently ignored in the past and causes problems<br>
+ in the more recent OS installations.<br>
+ <br>
+ The other 2 problems that I listed below are still open.<br>
+ <br>
+ <blockquote cite="mid:56DC8AFB.80708@googlemail.com" type="cite">
+ <blockquote><tt>fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...})
+ = 0</tt><tt><br>
+ </tt><tt>mmap(NULL, 4096, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd1d4190000</tt><tt><br>
+ </tt><tt>lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE (<font
+ color="#ff0000">Illegal seek</font>)</tt><tt><br>
+ </tt></blockquote>
+ This illegal seek also appears when gawk is built from<br>
+ the current master.<br>
+ <br>
+ <br>
+ <blockquote cite="mid:201603061917.u26JHNwQ006986@skeeve.com"
+ type="cite">
+ <pre wrap="">I don't mind trying to fix the logic, but I need to know what the
+right steps are.
+</pre>
+ </blockquote>
+ <br>
+ It looks like 3 bugs:<br>
+ 1. Handling of AF_UNSPEC (correct in 3.1.8, wrong in master)<br>
+ 2. illegal seek (appears in both)<br>
+ 3. client script behaviour wrong in both<br>
+ <br>
+ <br>
+ </blockquote>
+ <br>
+ </body>
+</html>
+
+--------------010903030700010703010304--
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 13 12:15:25 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 55EBB311
+ for <schorr@schorr.telemetry-investments.com>; Sun, 13 Mar 2016 12:15:25 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 4CEA16B1; Sun, 13 Mar 2016 12:15:25 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id E61BC5A6
+ for <aschorr@telemetry-investments.com>; Sun, 13 Mar 2016 12:15:24 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com E61BC5A6
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=nWZaeqES
+Received: from localhost ([::1]:36700 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1af8fq-0003kR-Ba
+ for aschorr@telemetry-investments.com; Sun, 13 Mar 2016 12:15:22 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:53939)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1af8fn-0003kL-M9
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 12:15:20 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1af8fk-0006Bg-FM
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 12:15:19 -0400
+Received: from mail-wm0-x232.google.com ([2a00:1450:400c:c09::232]:37423)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1af8fk-0006BY-4H
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 12:15:16 -0400
+Received: by mail-wm0-x232.google.com with SMTP id p65so73858059wmp.0
+ for <gawk-devel@gnu.org>; Sun, 13 Mar 2016 09:15:15 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:to:references:message-id:date:user-agent:mime-version
+ :in-reply-to; bh=cI8tjWDQ/HDB9ajijBueVDNr0tDm1RHPIWYRjJDlMac=;
+ b=nWZaeqESMIvwct2+WdyV6tnOiCGg0RReMzx3qiE7twqQg8isNnUPtLtHGzXEVGLBWi
+ EefMRvL/F1n/eFXFFAgpzZlt9DJsvmgwQULNxHtf9Ke6sI4ixQHMD4BLxUyKcrKX6BA7
+ oNw78tMUnxCSDfdu9f1bbxn6c/4KcBzzBdd1hZEMCk1FFP5prMMQjIjnYWMaXAC/mu7+
+ aWokaSffVmAYQCvgAM244Ny1B7Bcc0SNISX6qTNeg/se0b7+fvlbRq1oGbaueTkELg7u
+ mFpobz0y2Add3KbWyHgeUTZIZiXkm227LbCoNYJiGxY6/PIW3fziUMEU9hH+AhlWE8Ow
+ knlw==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:to:references:message-id:date
+ :user-agent:mime-version:in-reply-to;
+ bh=cI8tjWDQ/HDB9ajijBueVDNr0tDm1RHPIWYRjJDlMac=;
+ b=WPjytpY9VH9K8raInLQsaJudA5UPMFuwNshHE0R7qDuO6/q0Ty6zf0dGqwkqGkEgSR
+ cZ6aWQxflRqQkB+EXJTSFkeZG3FCDDavDC8AhPwWWKxX20O+63E7PanW4snxN5QVMvdq
+ bkKILhuRbj0Rp6Hf/Xzyx9HIg8juEOJbnebzxqchxPAbgKdOiuIOlVN29labxaC7VbnM
+ DVvymfMea6eWhDrMLtjBcbixxRmF42NJKmJ+LrGx7b+EE6i64F90CE4dVMp4LjDqHVhI
+ YB5+TAcrC2WTuhypi4+cMa1YLdUilpQkIErh4gmSItSmqsp72Sg8cmVL4hzJm2/h0XSm
+ kgTA==
+X-Gm-Message-State: AD7BkJKDYKA52+Z/FmSx7C1XTym1Rw9UZ3roh0/SO8Q5B8j5KP2/4zcaFL2NFfeEffLkBw==
+X-Received: by 10.28.178.209 with SMTP id b200mr13351098wmf.98.1457885715294;
+ Sun, 13 Mar 2016 09:15:15 -0700 (PDT)
+Received: from [192.168.0.11] (ip5f5ac869.dynamic.kabel-deutschland.de.
+ [95.90.200.105]) by smtp.googlemail.com with ESMTPSA id
+ hh8sm18186673wjc.42.2016.03.13.09.15.14 for <gawk-devel@gnu.org>
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 13 Mar 2016 09:15:14 -0700 (PDT)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+To: gawk-devel@gnu.org
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com>
+Message-ID: <56E5920F.2090204@googlemail.com>
+Date: Sun, 13 Mar 2016 17:15:11 +0100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.6.0
+MIME-Version: 1.0
+In-Reply-To: <56DC8AFB.80708@googlemail.com>
+Content-Type: multipart/alternative;
+ boundary="------------030404060803030609050400"
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::232
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 4374
+Lines: 135
+
+This is a multi-part message in MIME format.
+--------------030404060803030609050400
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+
+Am 06.03.2016 um 20:54 schrieb Jürgen Kahrs:
+>
+> fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
+> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd1d4190000
+> lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
+>
+> This illegal seek also appears when gawk is built from
+> the current master.
+
+The illegal seek seems to cause no damage.
+It happens in io.c two_way_open:
+
+ rp->output.fp = fdopen(fd, binmode("wb"));
+
+Is it necessary and worth the effort to avoid
+the illegal seek ? I don't know.
+
+>
+>
+>> I don't mind trying to fix the logic, but I need to know what the
+>> right steps are.
+>
+> It looks like 3 bugs:
+> 1. Handling of AF_UNSPEC (correct in 3.1.8, wrong in master)
+
+Solved, see previous posting.
+
+> 2. illegal seek (appears in both)
+
+Can probably be ignored.
+
+> 3. client script behaviour wrong in both
+
+A modification of the UDP client solves this problem:
+
+ # Client
+ BEGIN {
+ print "moin" |& "/inet/udp/0/localhost/8888"
+ "/inet/udp/0/localhost/8888" |& getline
+ print $0
+ close("/inet/udp/0/localhost/8888")
+ }
+
+
+The difference is in the very first print command.
+I am not really happy with this behaviour (because
+it is different from the equivalent TCP client) but it
+works.
+
+
+--------------030404060803030609050400
+Content-Type: text/html; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=windows-1252"
+ http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ <div class="moz-cite-prefix">Am 06.03.2016 um 20:54 schrieb Jürgen
+ Kahrs:<br>
+ </div>
+ <blockquote cite="mid:56DC8AFB.80708@googlemail.com" type="cite">
+ <meta content="text/html; charset=windows-1252"
+ http-equiv="Content-Type">
+ <br>
+ <blockquote><tt>fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...})
+ = 0</tt><tt><br>
+ </tt><tt>mmap(NULL, 4096, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd1d4190000</tt><tt><br>
+ </tt><tt>lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE (<font
+ color="#ff0000">Illegal seek</font>)</tt><tt><br>
+ </tt></blockquote>
+ This illegal seek also appears when gawk is built from<br>
+ the current master.<br>
+ </blockquote>
+ <br>
+ The illegal seek seems to cause no damage.<br>
+ It happens in io.c two_way_open: <br>
+ <br>
+ <blockquote><tt>rp-&gt;output.fp = fdopen(fd, binmode("wb"));</tt><tt><br>
+ </tt></blockquote>
+ Is it necessary and worth the effort to avoid<br>
+ the illegal seek ? I don't know.<br>
+ <br>
+ <blockquote cite="mid:56DC8AFB.80708@googlemail.com" type="cite"> <br>
+ <br>
+ <blockquote cite="mid:201603061917.u26JHNwQ006986@skeeve.com"
+ type="cite">
+ <pre wrap="">I don't mind trying to fix the logic, but I need to know what the
+right steps are.
+</pre>
+ </blockquote>
+ <br>
+ It looks like 3 bugs:<br>
+ 1. Handling of AF_UNSPEC (correct in 3.1.8, wrong in master)<br>
+ </blockquote>
+ <br>
+ Solved, see previous posting.<br>
+ <br>
+ <blockquote cite="mid:56DC8AFB.80708@googlemail.com" type="cite"> 2.
+ illegal seek (appears in both)<br>
+ </blockquote>
+ <br>
+ Can probably be ignored.<br>
+ <br>
+ <blockquote cite="mid:56DC8AFB.80708@googlemail.com" type="cite"> 3.
+ client script behaviour wrong in both<br>
+ </blockquote>
+ <br>
+ A modification of the UDP client solves this problem:<br>
+ <blockquote><tt># Client</tt><tt><br>
+ </tt><tt>BEGIN {</tt><tt><br>
+ </tt><tt>  print "moin" |&amp; "/inet/udp/0/localhost/8888"</tt><tt><br>
+ </tt><tt>  "/inet/udp/0/localhost/8888" |&amp; getline</tt><tt><br>
+ </tt><tt>  print $0</tt><tt><br>
+ </tt><tt>  close("/inet/udp/0/localhost/8888")</tt><tt><br>
+ </tt><tt>}</tt><tt><br>
+ </tt></blockquote>
+ <br>
+ The difference is in the very first print command.<br>
+ I am not really happy with this behaviour (because<br>
+ it is different from the equivalent TCP client) but it<br>
+ works.<br>
+ <br>
+ </body>
+</html>
+
+--------------030404060803030609050400--
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 13 13:19:20 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 0C6B4410
+ for <schorr@schorr.telemetry-investments.com>; Sun, 13 Mar 2016 13:19:20 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id EDBDC6AB; Sun, 13 Mar 2016 13:19:19 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 9A42C4B
+ for <aschorr@telemetry-investments.com>; Sun, 13 Mar 2016 13:19:19 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 9A42C4B
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=gnu.org
+Received: from localhost ([::1]:36889 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1af9fh-0001wk-6u
+ for aschorr@telemetry-investments.com; Sun, 13 Mar 2016 13:19:17 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:37177)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <eliz@gnu.org>) id 1af9ff-0001wb-Ek
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 13:19:16 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <eliz@gnu.org>) id 1af9fc-00045s-8L
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 13:19:15 -0400
+Received: from fencepost.gnu.org ([2001:4830:134:3::e]:41784)
+ by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@gnu.org>)
+ id 1af9fc-00045o-58; Sun, 13 Mar 2016 13:19:12 -0400
+Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4566
+ helo=home-c4e4a596f7)
+ by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128)
+ (Exim 4.82) (envelope-from <eliz@gnu.org>)
+ id 1af9fb-0007Zs-9E; Sun, 13 Mar 2016 13:19:11 -0400
+Date: Sun, 13 Mar 2016 19:18:42 +0200
+Message-Id: <8337rufg99.fsf@gnu.org>
+From: Eli Zaretskii <eliz@gnu.org>
+To: =?windows-1252?Q?J=FCrgen_Kahrs?= <juergen.kahrs@googlemail.com>
+In-reply-to: <56E5920F.2090204@googlemail.com> (juergen.kahrs@googlemail.com)
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+MIME-version: 1.0
+Content-type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2001:4830:134:3::e
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+Reply-To: Eli Zaretskii <eliz@gnu.org>
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 640
+Lines: 27
+
+> From: "Jürgen Kahrs" <juergen.kahrs@googlemail.com>
+> Date: Sun, 13 Mar 2016 17:15:11 +0100
+>
+> 3. client script behaviour wrong in both
+>
+>
+> A modification of the UDP client solves this problem:
+>
+>
+> # Client
+> BEGIN {
+> print "moin" |& "/inet/udp/0/localhost/8888"
+> "/inet/udp/0/localhost/8888" |& getline
+> print $0
+> close("/inet/udp/0/localhost/8888")
+> }
+>
+>
+> The difference is in the very first print command.
+> I am not really happy with this behaviour (because
+> it is different from the equivalent TCP client) but it
+> works.
+
+Can you elaborate on why is it needed, or how does it solve the
+problem?
+
+Thanks.
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 13 15:38:42 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 929DD3D86
+ for <schorr@schorr.telemetry-investments.com>; Sun, 13 Mar 2016 15:38:42 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 835426B1; Sun, 13 Mar 2016 15:38:42 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id D97C66A3
+ for <aschorr@telemetry-investments.com>; Sun, 13 Mar 2016 15:38:41 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com D97C66A3
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=skeeve.com
+Received: from localhost ([::1]:37371 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1afBqZ-0008V6-L7
+ for aschorr@telemetry-investments.com; Sun, 13 Mar 2016 15:38:39 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:36471)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1afBqH-00088j-Av
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 15:38:22 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1afBqE-0003E4-5I
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 15:38:21 -0400
+Received: from mxout2.netvision.net.il ([194.90.9.21]:55648)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1afBqD-0003A4-Tn
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 15:38:18 -0400
+MIME-version: 1.0
+Content-transfer-encoding: 7BIT
+Content-type: text/plain; CHARSET=US-ASCII
+Received: from skeeve.com ([93.173.16.221]) by mxout2.netvision.net.il
+ (Oracle Communications Messaging Server 7.0.5.30.0 64bit (built Oct 22
+ 2013)) with ESMTPSA id <0O3Z00HSWT7L7U20@mxout2.netvision.net.il> for
+ gawk-devel@gnu.org; Sun, 13 Mar 2016 21:38:11 +0200 (IST)
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+ by skeeve.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id
+ u2DJc9Ma009590; Sun, 13 Mar 2016 21:38:09 +0200
+Received: (from arnold@localhost) by skeeve.com (8.14.4/8.14.4/Submit)
+ id u2DJc9jP009589; Sun, 13 Mar 2016 21:38:09 +0200
+From: Aharon Robbins <arnold@skeeve.com>
+Message-id: <201603131938.u2DJc9jP009589@skeeve.com>
+Date: Sun, 13 Mar 2016 21:38:09 +0200
+To: juergen.kahrs@googlemail.com, gawk-devel@gnu.org
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+In-reply-to: <56E5920F.2090204@googlemail.com>
+User-Agent: Heirloom mailx 12.5 6/20/10
+X-detected-operating-system: by eggs.gnu.org: Solaris 10
+X-Received-From: 194.90.9.21
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 1063
+Lines: 50
+
+It's not working for me. I'm trying in the gawk-4.1.3 branch:
+
+$ git diff | cat
+diff --git a/io.c b/io.c
+index d700d87..cf45e45 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,
+
+
+
+$ cat Server
+# Server
+BEGIN {
+ print strftime() |& "/inet/udp/8888/0/0"
+ close("/inet/udp/8888/0/0")
+}
+
+$ cat Client
+# Client
+BEGIN {
+ print "howdy!" |& "/inet/udp/0/localhost/8888"
+ "/inet/udp/0/localhost/8888" |& getline
+ print $0
+ close("/inet/udp/0/localhost/8888")
+}
+
+Try to run it. Here, the client exited. Usually it just hangs:
+
+$ ./gawk -f Client & sleep 1 ; ./gawk -f Server &
+[1] 9581
+
+[1]+ Done ./gawk -f Client
+[1] 9583
+[aahz:pts/5 gawk.git]$ jobs
+[1]+ Running ./gawk -f Server &
+
+What am I missing?
+
+Thanks,
+
+Arnold
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 13 16:23:45 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 9A7683D86
+ for <schorr@schorr.telemetry-investments.com>; Sun, 13 Mar 2016 16:23:45 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 86C8C6CD; Sun, 13 Mar 2016 16:23:45 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 08BEE6B1
+ for <aschorr@telemetry-investments.com>; Sun, 13 Mar 2016 16:23:43 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 08BEE6B1
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=gmail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=sQwC+kbb
+Received: from localhost ([::1]:37550 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1afCYB-0003pN-Gg
+ for aschorr@telemetry-investments.com; Sun, 13 Mar 2016 16:23:43 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:46433)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1afCY8-0003ou-NB
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 16:23:41 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1afCY4-00064k-MB
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 16:23:40 -0400
+Received: from mail-io0-x22f.google.com ([2607:f8b0:4001:c06::22f]:33430)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1afCY4-00064f-Gb
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 16:23:36 -0400
+Received: by mail-io0-x22f.google.com with SMTP id n190so201550671iof.0
+ for <gawk-devel@gnu.org>; Sun, 13 Mar 2016 13:23:36 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+ h=date:from:to:cc:subject:message-id:references:mime-version
+ :content-disposition:in-reply-to:user-agent;
+ bh=IVm0MbmzD6YuWF4+4GUlTWloF98v9mHM5epQyH/0sxo=;
+ b=sQwC+kbbncYWnCQR0RsRe/ghGXsbPjPnBuXdGzp+wjcbvHaDmNSwjyWJU9GRIn8yBb
+ UOqkJSgqDCxarlxL89WWBmsabcaumOpaDhtp3cYjr7baQi0kA8G19342sOmibhc/m9WM
+ CnQkdJv9xWX2ZWIbWvLOfJ1SI1AlujETIaq9rM7dnqmnzNtT7p2WXhxiCcZ+wsdo/YtG
+ SV6wJfKDDc0MBIhwoYpzmCcPsK1/D4roHzfOtVVop02/N54fPyyWZHGNcydtoinE8GjI
+ xzsbSNbVSJXP7u/GTHVJFW0SOdIxVezg/rSHKGh95Up8RdQBlXccP07QIwADRr243iSN
+ zPZg==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:date:from:to:cc:subject:message-id:references
+ :mime-version:content-disposition:in-reply-to:user-agent;
+ bh=IVm0MbmzD6YuWF4+4GUlTWloF98v9mHM5epQyH/0sxo=;
+ b=k9QnlWC0lPUmVuQ+o9bfeF/Io7bjNHNZCEh1TpzxYNVHwR0Va+4gSlSKnpiHWM9xGn
+ 4dIGOtMdyOGbSp2uzqLthrIQAr2Z6BP81rlTcn3Y+mp0tYzn49w/oMrwkBnJhTf4DJZL
+ 1nN556Vnmqk7fKgFwzmBtdkXgvv938ZLsafCNgLWFvLpQFClIhhdwoR/03cpz6PrbIcU
+ QsXpV0a2QPzsb2lG2SmntByVnyp83qRZ6gziIVvgpEUbkykCWPWYV8jXM1NilzuBEWMh
+ gO6wYRG/6glaSPZVvfXum5JyXDm/ylEeCrBGeywUAMWRw8o+jMyoRTRgpc9ZBFQMJ+Aw
+ /AlA==
+X-Gm-Message-State: AD7BkJJx6ykjoDgw0dTBCbhNAtKT6dvXtfCowzXsVE9NxNMbGTvqT0lyYmBt+mvR8M4Pdg==
+X-Received: by 10.107.15.153 with SMTP id 25mr20157207iop.3.1457900615558;
+ Sun, 13 Mar 2016 13:23:35 -0700 (PDT)
+Received: from smok.internal (d23-17-121-177.abhsia.telus.net. [23.17.121.177])
+ by smtp.gmail.com with ESMTPSA id r73sm8107252ioe.5.2016.03.13.13.23.34
+ (version=TLS1_2 cipher=AES128-SHA bits=128/128);
+ Sun, 13 Mar 2016 13:23:35 -0700 (PDT)
+Date: Sun, 13 Mar 2016 14:23:32 -0600
+From: Michal Jaegermann <michal.jnn@gmail.com>
+To: Aharon Robbins <arnold@skeeve.com>
+Message-ID: <20160313202332.GA27999@smok.internal>
+References: <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+ <201603131938.u2DJc9jP009589@skeeve.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <201603131938.u2DJc9jP009589@skeeve.com>
+User-Agent: Mutt/1.5.23 (2014-03-12)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2607:f8b0:4001:c06::22f
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 1219
+Lines: 33
+
+On Sun, Mar 13, 2016 at 09:38:09PM +0200, Aharon Robbins wrote:
+> It's not working for me. I'm trying in the gawk-4.1.3 branch:
+
+I did that on the top of gawk-4.1-stable and it did work but
+not exactly like in the manual. First I needed a server process,
+which was waiting, followed by a modified client.
+
+> $ cat Client
+> # Client
+> BEGIN {
+> print "howdy!" |& "/inet/udp/0/localhost/8888"
+> "/inet/udp/0/localhost/8888" |& getline
+> print $0
+> close("/inet/udp/0/localhost/8888")
+> }
+
+It looks like that anything will do in the first print, including
+an empty string (which will send a line terminator anyway and I did
+not try without that one) but such client does exit right away without
+a server present.
+>
+> What am I missing?
+
+OTOH this shows an expected message if a server is already there.
+
+I do not know at this moment what all of that means. Looking at
+'man recvfrom' I see "If the caller is not interested in the source
+address, src_addr and addrlen should be specified as NULL".
+This is clearly not the case in the current code. In the other case
+the returned address is truncated to the declared (or provided?) size
+of a buffer so zero looks like something indeed too tight.
+
+ Michal
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 13 16:00:17 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 198993D86
+ for <schorr@schorr.telemetry-investments.com>; Sun, 13 Mar 2016 16:00:17 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 07C276B1; Sun, 13 Mar 2016 16:00:17 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id A5CC36A3
+ for <aschorr@telemetry-investments.com>; Sun, 13 Mar 2016 16:00:16 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com A5CC36A3
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=gD6ZilUE
+Received: from localhost ([::1]:37455 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1afCBS-0006yJ-Ho
+ for aschorr@telemetry-investments.com; Sun, 13 Mar 2016 16:00:14 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:41640)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1afCBQ-0006yA-4r
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 16:00:13 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1afCBL-0000D8-77
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 16:00:12 -0400
+Received: from mail-wm0-x22a.google.com ([2a00:1450:400c:c09::22a]:36558)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1afCBL-0000Cq-0e
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 16:00:07 -0400
+Received: by mail-wm0-x22a.google.com with SMTP id n186so81792090wmn.1
+ for <gawk-devel@gnu.org>; Sun, 13 Mar 2016 13:00:06 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:to:references:message-id:date:user-agent:mime-version
+ :in-reply-to:content-transfer-encoding;
+ bh=q/+pC+x1gaEBbPJaVPNvg/0U4FaERXmg1fEqKDHz9BY=;
+ b=gD6ZilUEZeSRcMb47327Klv/c0Va0MB+yFKhU+vKD6iAmiobrEUq6t+QOJJpqPSJh8
+ D4c7LQbROeWMAvvcPenBt575mOMXfIB9AvMlnOHjH0kCcXFCvac6owWCnD/fXg9huf9l
+ KXb6c1Fdu+ipFMjDvkJyOZdt0FU7Fh4JkwOzdahhIvFZtDi2kmAm4NZCgScartaU7fjE
+ VT+Y6Ngunx9Zj3vqmGyEBY78B4fBCWhYGqKZtlENJeXJoLTpKG5T3r4jJ7yung2AEwUr
+ f5++lS3vRj6XlvnYIhdoSpzFKA/3jyO8pVjV0KtbRHZVxgswtC0IKiJgIxeff8AQbgEO
+ ErQQ==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:to:references:message-id:date
+ :user-agent:mime-version:in-reply-to:content-transfer-encoding;
+ bh=q/+pC+x1gaEBbPJaVPNvg/0U4FaERXmg1fEqKDHz9BY=;
+ b=a/ohc8YKeBaUVs0wTSBq08GqwTQAUPCdLRzmiIvETeDEyF6oJEpkqKYPM0Drlt7VMj
+ oKl9OrnLWo5EniGtRNBZz+/bPs+5OP24Flk8Y+TNKMidZbVuihPBpZ9UGra0DX5XxcDg
+ Ir3MA25qrRBepzKRqzZCh851shZfoTu+ebGE17Twn3W55eB+phNCZTb4u4APl9CjyANb
+ WUWEjyB9LreGYq5+2eaQNTboguLaOFZyVABS7QOkGn/fef3Yt4w7E3zrKbDIgoYNhduN
+ 1wU4dRqT+GRB/jkKLk9H2OYAmGAknEyI1rqH4qpiGuaSc6iAczGfohMLUvRYIyDXKR6C
+ nkJw==
+X-Gm-Message-State: AD7BkJLw4YTOK8QE3C+0CJr81CqEDU9tloWX2TRddQmmVb2OvoKhb/mtvHNuvrl0kk1A5Q==
+X-Received: by 10.194.189.143 with SMTP id gi15mr20139665wjc.54.1457899206276;
+ Sun, 13 Mar 2016 13:00:06 -0700 (PDT)
+Received: from [192.168.0.11] (ip5f5ac869.dynamic.kabel-deutschland.de.
+ [95.90.200.105]) by smtp.googlemail.com with ESMTPSA id
+ t8sm18981530wjy.41.2016.03.13.13.00.05
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 13 Mar 2016 13:00:05 -0700 (PDT)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+To: Aharon Robbins <arnold@skeeve.com>, gawk-devel@gnu.org
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+ <201603131938.u2DJc9jP009589@skeeve.com>
+Message-ID: <56E5C6C4.9000605@googlemail.com>
+Date: Sun, 13 Mar 2016 21:00:04 +0100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.6.0
+MIME-Version: 1.0
+In-Reply-To: <201603131938.u2DJc9jP009589@skeeve.com>
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::22a
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 123
+Lines: 5
+
+Am 13.03.2016 um 20:38 schrieb Aharon Robbins:
+> What am I missing?
+
+Start the server first, then the client, that's all.
+
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 13 23:41:39 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 575DE223
+ for <schorr@schorr.telemetry-investments.com>; Sun, 13 Mar 2016 23:41:39 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 449A56B1; Sun, 13 Mar 2016 23:41:39 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id AA19F598
+ for <aschorr@telemetry-investments.com>; Sun, 13 Mar 2016 23:41:38 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com AA19F598
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=skeeve.com
+Received: from localhost ([::1]:38833 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1afJNw-0007Yr-7O
+ for aschorr@telemetry-investments.com; Sun, 13 Mar 2016 23:41:36 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:36770)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1afJNt-0007Yc-Nb
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 23:41:34 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1afJNq-0001DO-Ev
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 23:41:33 -0400
+Received: from freefriends.org ([96.88.95.60]:50767)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1afJNq-0001DK-6h
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 23:41:30 -0400
+X-Envelope-From: arnold@skeeve.com
+Received: from freefriends.org (localhost [127.0.0.1])
+ by freefriends.org (8.14.9/8.14.9) with ESMTP id u2E3aRx9017399;
+ Sun, 13 Mar 2016 21:36:27 -0600
+Received: (from arnold@localhost)
+ by freefriends.org (8.14.9/8.14.9/submit) id u2E3aR24017398;
+ Mon, 14 Mar 2016 03:36:27 GMT
+From: arnold@skeeve.com
+Message-Id: <201603140336.u2E3aR24017398@freefriends.org>
+X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to
+ arnold@skeeve.com using -f
+Date: Sun, 13 Mar 2016 21:36:27 -0600
+To: juergen.kahrs@googlemail.com, gawk-devel@gnu.org, arnold@skeeve.com
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+ <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+In-Reply-To: <56E5C6C4.9000605@googlemail.com>
+User-Agent: Heirloom mailx 12.4 7/29/08
+MIME-Version: 1.0
+Content-Type: text/plain; charset=iso-8859-1
+Content-Transfer-Encoding: quoted-printable
+X-MIME-Autoconverted: from 8bit to quoted-printable by freefriends.org id
+ u2E3aRx9017399
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x
+X-Received-From: 96.88.95.60
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 253
+Lines: 12
+
+"J=FCrgen Kahrs" <juergen.kahrs@googlemail.com> wrote:
+
+> Am 13.03.2016 um 20:38 schrieb Aharon Robbins:
+> > What am I missing?
+>
+> Start the server first, then the client, that's all.
+
+No difference. Both hang.
+
+Does it work for you in master?
+
+Arnold
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 13 23:57:13 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 501F0223
+ for <schorr@schorr.telemetry-investments.com>; Sun, 13 Mar 2016 23:57:13 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 3C2BE6B1; Sun, 13 Mar 2016 23:57:13 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 0E027598
+ for <aschorr@telemetry-investments.com>; Sun, 13 Mar 2016 23:57:12 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 0E027598
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=skeeve.com
+Received: from localhost ([::1]:38862 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1afJd1-0000N9-0b
+ for aschorr@telemetry-investments.com; Sun, 13 Mar 2016 23:57:11 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:39407)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1afJcy-0000Ma-Ch
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 23:57:09 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1afJcv-0004di-4p
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 23:57:08 -0400
+Received: from mxout2.netvision.net.il ([194.90.9.21]:48324)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1afJcu-0004dL-TM
+ for gawk-devel@gnu.org; Sun, 13 Mar 2016 23:57:05 -0400
+MIME-version: 1.0
+Content-transfer-encoding: 7BIT
+Content-type: text/plain; CHARSET=US-ASCII
+Received: from skeeve.com ([93.173.16.221]) by mxout2.netvision.net.il
+ (Oracle Communications Messaging Server 7.0.5.30.0 64bit (built Oct 22
+ 2013)) with ESMTPSA id <0O40005LBGAPMP70@mxout2.netvision.net.il> for
+ gawk-devel@gnu.org; Mon, 14 Mar 2016 05:56:49 +0200 (IST)
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+ by skeeve.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id
+ u2E3umlH009439; Mon, 14 Mar 2016 05:56:48 +0200
+Received: (from arnold@localhost) by skeeve.com (8.14.4/8.14.4/Submit)
+ id u2E3umxW009438; Mon, 14 Mar 2016 05:56:48 +0200
+From: Aharon Robbins <arnold@skeeve.com>
+Message-id: <201603140356.u2E3umxW009438@skeeve.com>
+Date: Mon, 14 Mar 2016 05:56:48 +0200
+To: juergen.kahrs@googlemail.com, gawk-devel@gnu.org, arnold@skeeve.com
+References: <83egbwaevv.fsf@gnu.org> <56D3524F.1040600@googlemail.com>
+ <201602290529.u1T5Tk2m002991@skeeve.com>
+ <56D48A2C.4040702@googlemail.com>
+ <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+ <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+In-reply-to: <201603140336.u2E3aR24017398@freefriends.org>
+User-Agent: Heirloom mailx 12.5 6/20/10
+X-detected-operating-system: by eggs.gnu.org: Solaris 10
+X-Received-From: 194.90.9.21
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 1047
+Lines: 37
+
+> From arnold@skeeve.com Mon Mar 14 05:44:58 2016
+> Return-Path: <arnold@skeeve.com>
+> X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+> frenzy.freefriends.org
+> X-Spam-Level:
+> X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,
+> TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.1
+> X-Envelope-From: arnold@skeeve.com
+> From: arnold@skeeve.com
+> Date: Sun, 13 Mar 2016 21:36:27 -0600
+> To: juergen.kahrs@googlemail.com, gawk-devel@gnu.org, arnold@skeeve.com
+> Subject: Re: [gawk-devel] UDP networking doesn't work?
+> Content-Type: text/plain; charset=iso-8859-1
+> Status: R
+>
+> "J?rgen Kahrs" <juergen.kahrs@googlemail.com> wrote:
+>
+> > Am 13.03.2016 um 20:38 schrieb Aharon Robbins:
+> > > What am I missing?
+> >
+> > Start the server first, then the client, that's all.
+>
+> No difference. Both hang.
+>
+> Does it work for you in master?
+>
+> Arnold
+>
+
+I blew it. After making the change it works for me now.
+
+Juergen, can you send me an update to gawkinet.texi? In the meantime
+I'll commit the fix.
+
+Thanks!
+
+Arnold
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Mon Mar 14 13:32:30 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 300482C9
+ for <schorr@schorr.telemetry-investments.com>; Mon, 14 Mar 2016 13:32:30 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 2065F6AC; Mon, 14 Mar 2016 13:32:30 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id C951D4E8
+ for <aschorr@telemetry-investments.com>; Mon, 14 Mar 2016 13:32:29 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com C951D4E8
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=gmail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BZ5FE6tr
+Received: from localhost ([::1]:42733 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1afWLz-0000aC-Tj
+ for aschorr@telemetry-investments.com; Mon, 14 Mar 2016 13:32:27 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:52262)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1afWLu-0000Zo-GR
+ for gawk-devel@gnu.org; Mon, 14 Mar 2016 13:32:23 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1afWLq-00077e-Fo
+ for gawk-devel@gnu.org; Mon, 14 Mar 2016 13:32:22 -0400
+Received: from mail-ig0-x236.google.com ([2607:f8b0:4001:c05::236]:38806)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1afWLq-00077I-AL
+ for gawk-devel@gnu.org; Mon, 14 Mar 2016 13:32:18 -0400
+Received: by mail-ig0-x236.google.com with SMTP id ig19so67305486igb.1
+ for <gawk-devel@gnu.org>; Mon, 14 Mar 2016 10:32:18 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+ h=date:from:to:cc:subject:message-id:references:mime-version
+ :content-disposition:in-reply-to:user-agent;
+ bh=pZ9e5h2J65b3fZ/nXyMZl9FBZ5QBM+JlqEfv8uZ3Cko=;
+ b=BZ5FE6trkz65XDpY+yPjKrJUa0NOaBDBVnatCU04SXwPmpOMoYRg4IlNPsESugY2fn
+ h1dlsqlZB6khAwrnGzfCX5ki4QG7gYiEv2KTkALdbDXSSwUpbrV48/UYQrw8ZjtR4GuC
+ tmpuoHlFnGYCurA9WwCiuNzRziFuz605L8gmNUgCIE6N8sqRIonggdqfsVxeyWRGdMNR
+ MjiTSlmrh+6oo+Ch9vQZXPBZdn1SSEVPYt8hsqtkmSObsfEjxKM6mmd/7KdYuvshKyTf
+ GpOZcFBpTLbi5SxBpIigHtBOW65hVBvK3zJC/QvsT0bGnXIhNnOgAPIimu9fNXY+dX4u
+ d//A==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:date:from:to:cc:subject:message-id:references
+ :mime-version:content-disposition:in-reply-to:user-agent;
+ bh=pZ9e5h2J65b3fZ/nXyMZl9FBZ5QBM+JlqEfv8uZ3Cko=;
+ b=lgESyt+CwnWehin9Q5Pamrz78uO7HnudAPpu7RoV8cksSnroMeaA5rNmt0ZlCLdwFL
+ VHKCDbGACcHInDQSyPkd130SH7oYU5zotXHV0/QkkTETIQc9qzjZ962DCGtfl2TQr/rV
+ Gp3eqhu9LeAQFtahxBdr+cTuoc8prOh62IzCj/F539L+xIW7F6QRI1phyj+hJlFwnUa3
+ 9J4Jw6Wzsf1fpZ4QYcs1sxrJub2CRiidcJPqj/YZOFjEsc54/qeO643wtgi+XGCoi+wD
+ w90s3HXEquPjsvXNPdsP+u11ZQ0Rg5lm9YqJxUCHYcEa87eo6YfJHI9EouZC01J5nCLm
+ cEFA==
+X-Gm-Message-State: AD7BkJLm+TRK+OuuipHbFJL68QW1im3335A4UIDV1t3gtT14xpzgYpvvHa0HQ3/hGU6e6g==
+X-Received: by 10.50.30.201 with SMTP id u9mr17793302igh.63.1457976737238;
+ Mon, 14 Mar 2016 10:32:17 -0700 (PDT)
+Received: from smok.internal (d23-17-121-177.abhsia.telus.net. [23.17.121.177])
+ by smtp.gmail.com with ESMTPSA id p8sm2685149igi.2.2016.03.14.10.32.16
+ (version=TLS1_2 cipher=AES128-SHA bits=128/128);
+ Mon, 14 Mar 2016 10:32:16 -0700 (PDT)
+Date: Mon, 14 Mar 2016 11:32:08 -0600
+From: Michal Jaegermann <michal.jnn@gmail.com>
+To: Aharon Robbins <arnold@skeeve.com>
+Message-ID: <20160314173208.GA31194@smok.internal>
+References: <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+ <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+ <201603140356.u2E3umxW009438@skeeve.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <201603140356.u2E3umxW009438@skeeve.com>
+User-Agent: Mutt/1.5.23 (2014-03-12)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2607:f8b0:4001:c05::236
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 453
+Lines: 15
+
+On Mon, Mar 14, 2016 at 05:56:48AM +0200, Aharon Robbins wrote:
+>
+> Juergen, can you send me an update to gawkinet.texi? In the meantime
+> I'll commit the fix.
+
+That change in io.c looks to me indeed correct but before going too far
+does anybody have a good explanation why this "magic incantation"
+
+> print "howdy!" |& "/inet/udp/0/localhost/8888"
+
+in a sample client is needed, what actually is doing, and why
+this is different for tcp?
+
+ Michal
+
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Mon Mar 14 14:01:22 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 7C18D410
+ for <schorr@schorr.telemetry-investments.com>; Mon, 14 Mar 2016 14:01:22 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 731376AC; Mon, 14 Mar 2016 14:01:22 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id D6F3F4E8
+ for <aschorr@telemetry-investments.com>; Mon, 14 Mar 2016 14:01:21 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com D6F3F4E8
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=ryVkKTx6
+Received: from localhost ([::1]:43128 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1afWnx-0006FG-B6
+ for aschorr@telemetry-investments.com; Mon, 14 Mar 2016 14:01:21 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:57523)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1afWZk-0004GS-L1
+ for gawk-devel@gnu.org; Mon, 14 Mar 2016 13:46:41 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1afWZh-0003C7-6d
+ for gawk-devel@gnu.org; Mon, 14 Mar 2016 13:46:40 -0400
+Received: from mail-wm0-x22f.google.com ([2a00:1450:400c:c09::22f]:37244)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1afWZg-0003Ac-R4
+ for gawk-devel@gnu.org; Mon, 14 Mar 2016 13:46:37 -0400
+Received: by mail-wm0-x22f.google.com with SMTP id p65so113114501wmp.0
+ for <gawk-devel@gnu.org>; Mon, 14 Mar 2016 10:46:36 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:to:references:cc:message-id:date:user-agent
+ :mime-version:in-reply-to;
+ bh=6n4ZCGJwx9tVj+7d31uvOD0WzNjI8AN9u1+PscAuF1w=;
+ b=ryVkKTx65M9cXRFDi4maEk8Ycla3HsArEAUGWOLx6lNm/gxmOp+ZehaXl7lksBa6G1
+ vg6Ks7YBx+EO0HzlWLLPADJK9kfqd0crSEs55koYzmcDMf9wq8G+PoZMdsxUzSUmqU1T
+ EnZZDngA1ToPOc2stzmmf+Rp+yMSsZCnfR2opalrMboGNrwVIoV1w/IIQoR9KAUT+Qxv
+ ACvJ6x/XycDqalxOGy0uFygy9hk/b45624TcVzPVifkeDZM/cyoHRlVlrGONtPzVRckN
+ HnQmhsJshdBO0O8SzPYpINEAN5cY5OCmzI2uwwMVVubhPQJE88bhJfPj5qgUHvh+j1tm
+ sQZA==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:to:references:cc:message-id:date
+ :user-agent:mime-version:in-reply-to;
+ bh=6n4ZCGJwx9tVj+7d31uvOD0WzNjI8AN9u1+PscAuF1w=;
+ b=PpjZ+nYDlgaQa2UM92f8gWPz4PQPZFnLeyqRNMGCZb/CM6Okq8Y52Vr/3hMgd1Zgp2
+ z7iNmgChQ13G0GqzpQkXX/blhCfBHaq3MOnGxGjzba7WRDQMlmvf11sA8Ep5Wt5+h/R7
+ zEHSVh9/rwjQaBCCNbTjYRFgQ/EHm9z3mGMiGd/Wd3zLFUNau8qtIilsgfrHrOmNVvpu
+ i3VIHIRePJ+yRRR2No02ydyUxUBbCjX9956V69hy7lG2X2a5iSt23q6sXmUbt0QNXNI/
+ sl8EFivYIw+m5vZgfNFwibrmNsYeqj4d4kz86ZXb+I8UA7+jf5n9kyRF+eF65hLDW3DF
+ 1n3Q==
+X-Gm-Message-State: AD7BkJI35sgPvUuYzIsMivfSaxunrAPH/8ddjEhwaZlrUPdPkT5jMETRLfwxU0v3h0WAcA==
+X-Received: by 10.194.94.229 with SMTP id df5mr29417180wjb.133.1457977595816;
+ Mon, 14 Mar 2016 10:46:35 -0700 (PDT)
+Received: from [192.168.0.11] (ip5f5ac8b9.dynamic.kabel-deutschland.de.
+ [95.90.200.185]) by smtp.googlemail.com with ESMTPSA id
+ u202sm17231836wmd.24.2016.03.14.10.46.34
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Mon, 14 Mar 2016 10:46:35 -0700 (PDT)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+To: Michal Jaegermann <michal.jnn@gmail.com>,
+ Aharon Robbins <arnold@skeeve.com>
+References: <20160229203945.GA30054@ti129.telemetry-investments.com>
+ <56DC4565.9060302@googlemail.com>
+ <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+ <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+ <201603140356.u2E3umxW009438@skeeve.com>
+ <20160314173208.GA31194@smok.internal>
+Message-ID: <56E6F8F9.5010908@googlemail.com>
+Date: Mon, 14 Mar 2016 18:46:33 +0100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.6.0
+MIME-Version: 1.0
+In-Reply-To: <20160314173208.GA31194@smok.internal>
+Content-Type: multipart/alternative;
+ boundary="------------070408080501020707080305"
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::22f
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+X-Status: A
+Content-Length: 4644
+Lines: 129
+
+This is a multi-part message in MIME format.
+--------------070408080501020707080305
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+
+Am 14.03.2016 um 18:32 schrieb Michal Jaegermann:
+> On Mon, Mar 14, 2016 at 05:56:48AM +0200, Aharon Robbins wrote:
+>> Juergen, can you send me an update to gawkinet.texi? In the meantime
+>> I'll commit the fix.
+> That change in io.c looks to me indeed correct but before going too far
+> does anybody have a good explanation why this "magic incantation"
+>
+>> print "howdy!" |& "/inet/udp/0/localhost/8888"
+> in a sample client is needed, what actually is doing, and why
+> this is different for tcp?
+>
+> Michal
+>
+
+Eli had already asked the same question.
+When I answered his question, I forgot to send a
+copy of my answer to the mailing list.
+This is what I sent to Eli:
+
+ In the case of UDP, the "print" commands is the one
+ that actually sends data so the there is a connection.
+ UDP and "connection" may sound strange to anyone
+ who has learned that UDP is a connection-less protocol.
+ Connection here means that the connect() system call
+ has completed its work and completed the "association"
+ between a certain socket and an IP address. There are
+ subtle differences between connect() for TCP and UDP.
+ See man page for details.
+
+ If you use the UDP client script as it is currently shown
+ in the doc, the client gets not quite connected to the
+ server (the server notices nothing, so sends nothing,
+ so the client receives nothing). This is of course an
+ ugly asymmetry between TCP and UDP as implemented
+ in GAWK. If someone suggests a more symmetric
+ solution, then it is probably worth changing the behaviour.
+ On the other hand we should be aware that this subtlety
+ is just one of many details that are hidden in the socket
+ API, invisible and intractable for the GAWK user.
+ We should not strive for making all details visible and
+ controllable for the GAWK user, this would be too much.
+
+
+
+
+
+--------------070408080501020707080305
+Content-Type: text/html; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=windows-1252"
+ http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ <div class="moz-cite-prefix">Am 14.03.2016 um 18:32 schrieb Michal
+ Jaegermann:<br>
+ </div>
+ <blockquote cite="mid:20160314173208.GA31194@smok.internal"
+ type="cite">
+ <pre wrap="">On Mon, Mar 14, 2016 at 05:56:48AM +0200, Aharon Robbins wrote:
+</pre>
+ <blockquote type="cite">
+ <pre wrap="">
+Juergen, can you send me an update to gawkinet.texi? In the meantime
+I'll commit the fix.
+</pre>
+ </blockquote>
+ <pre wrap="">
+That change in io.c looks to me indeed correct but before going too far
+does anybody have a good explanation why this "magic incantation"
+
+</pre>
+ <blockquote type="cite">
+ <pre wrap="">print "howdy!" |&amp; "/inet/udp/0/localhost/8888"
+</pre>
+ </blockquote>
+ <pre wrap="">
+in a sample client is needed, what actually is doing, and why
+this is different for tcp?
+
+ Michal
+
+</pre>
+ </blockquote>
+ <br>
+ Eli had already asked the same question.<br>
+ When I answered his question, I forgot to send a<br>
+ copy of my answer to the mailing list.<br>
+ This is what I sent to Eli:<br>
+ <blockquote>
+ <pre wrap="">In the case of UDP, the "print" commands is the one
+that actually sends data so the there is a connection.
+UDP and "connection" may sound strange to anyone
+who has learned that UDP is a connection-less protocol.
+Connection here means that the connect() system call
+has completed its work and completed the "association"
+between a certain socket and an IP address. There are
+subtle differences between connect() for TCP and UDP.
+See man page for details.
+
+If you use the UDP client script as it is currently shown
+in the doc, the client gets not quite connected to the
+server (the server notices nothing, so sends nothing,
+so the client receives nothing). This is of course an
+ugly asymmetry between TCP and UDP as implemented
+in GAWK. If someone suggests a more symmetric
+solution, then it is probably worth changing the behaviour.
+On the other hand we should be aware that this subtlety
+is just one of many details that are hidden in the socket
+API, invisible and intractable for the GAWK user.
+We should not strive for making all details visible and
+controllable for the GAWK user, this would be too much.
+
+
+</pre>
+ </blockquote>
+ <br>
+ <br>
+ </body>
+</html>
+
+--------------070408080501020707080305--
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Mon Mar 14 14:18:04 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 862E42C9
+ for <schorr@schorr.telemetry-investments.com>; Mon, 14 Mar 2016 14:18:04 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 7F5D86AC; Mon, 14 Mar 2016 14:18:04 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 516914E8
+ for <aschorr@telemetry-investments.com>; Mon, 14 Mar 2016 14:18:03 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 516914E8
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=telemetry-investments.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=fail reason="key not found in DNS" (0-bit key) header.d=telemetry-investments.com header.i=@telemetry-investments.com header.b=iNk59iBE
+Received: from localhost ([::1]:43243 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1afX47-0002SW-Hh
+ for aschorr@telemetry-investments.com; Mon, 14 Mar 2016 14:18:03 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:40926)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1afX45-0002SP-2Q
+ for gawk-devel@gnu.org; Mon, 14 Mar 2016 14:18:01 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1afX40-0004JM-2s
+ for gawk-devel@gnu.org; Mon, 14 Mar 2016 14:18:01 -0400
+Received: from gw3a.telemetry-investments.com ([38.76.0.51]:57589
+ helo=sv3.telemetry-investments.com)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1afX3z-0004JI-VJ
+ for gawk-devel@gnu.org; Mon, 14 Mar 2016 14:17:56 -0400
+Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 874434E8;
+ Mon, 14 Mar 2016 14:17:53 -0400 (EDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=telemetry-investments.com; s=tele1409; t=1457979474;
+ bh=2bX596H4mJG6UI1zSGfG2VUVMUILgtYiQwGSC5t8qJY=;
+ h=Date:From:To:Cc:Subject:References:In-Reply-To;
+ b=iNk59iBEoV/I7WpwrQ6PXHss8w1eYy5AFyaOgvQPDbycfkKtJqewipmEWhwg4ke7/
+ R4605/F2a9hnc2K72xfHXLBNyN6vcc7I6XxEEvKnqilS3xgwwjW+ntMzNV8G0uO3Qa
+ Cq9g3EOfsBiPSvKnhBD01+ciCEUIO32bRXhpZbIw=
+Received: by ti129.telemetry-investments.com (Postfix, from userid 300)
+ id 78232410; Mon, 14 Mar 2016 14:17:53 -0400 (EDT)
+Date: Mon, 14 Mar 2016 14:17:53 -0400
+From: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+To: =?iso-8859-1?Q?J=FCrgen?= Kahrs <juergen.kahrs@googlemail.com>
+Message-ID: <20160314181753.GA30914@ti129.telemetry-investments.com>
+References: <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+ <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+ <201603140356.u2E3umxW009438@skeeve.com>
+ <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <56E6F8F9.5010908@googlemail.com>
+User-Agent: Mutt/1.5.23 (2014-03-12)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 38.76.0.51
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 932
+Lines: 25
+
+Hi,
+
+This is somewhat off-topic, but I continue to believe that the networking
+implementation in gawk doesn't really make sense, as discussed back in
+June/July 2013. Now that we have non-blocking I/O (using
+PROCINFO["INPUT_NAME", "RETRY"]) and the select extension in gawkextlib, we can
+do this the right way. The existing TCP solution accepts a single connection
+and then closes the listener socket in io.c:socketopen:
+
+ if (listen(socket_fd, 1) >= 0
+ && (clientsocket_fd = accept(socket_fd,
+ (struct sockaddr *) & remote_addr,
+ & namelen)) >= 0) {
+ closemaybesocket(socket_fd);
+ socket_fd = clientsocket_fd;
+ break;
+ }
+
+To me, these UDP problems are a reminder that the networking paradigm in
+gawk is flawed. My guess is that nobody really uses anything other than
+the TCP client feature, so maybe we should scrap the UDP support and TCP
+server support and reimplement them to work in a sane fashion...
+
+Regards,
+Andy
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 20 16:13:08 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id C1AA437B
+ for <schorr@schorr.telemetry-investments.com>; Sun, 20 Mar 2016 16:13:08 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id B66AE6BC; Sun, 20 Mar 2016 16:13:08 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 4E4E9369
+ for <aschorr@telemetry-investments.com>; Sun, 20 Mar 2016 16:13:07 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 4E4E9369
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=H3BSRtto
+Received: from localhost ([::1]:54344 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1ahjii-0006Ns-2U
+ for aschorr@telemetry-investments.com; Sun, 20 Mar 2016 16:13:04 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:57533)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1ahjic-0006Nh-NM
+ for gawk-devel@gnu.org; Sun, 20 Mar 2016 16:12:59 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1ahjiX-0002X0-O1
+ for gawk-devel@gnu.org; Sun, 20 Mar 2016 16:12:58 -0400
+Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]:38600)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1ahjiX-0002W5-CU
+ for gawk-devel@gnu.org; Sun, 20 Mar 2016 16:12:53 -0400
+Received: by mail-wm0-x229.google.com with SMTP id l68so99729118wml.1
+ for <gawk-devel@gnu.org>; Sun, 20 Mar 2016 13:12:53 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:references:cc:message-id:date:user-agent:mime-version
+ :in-reply-to:content-transfer-encoding;
+ bh=o2tHEENYDte40oEYnSo4eBCjPoJBKKUbfQzeklnRRrw=;
+ b=H3BSRttocbo5B/5AouLLnFmsHYjI50La9NwL4y11CAi0rFxqEfEJopHs4tHZAa9ocD
+ 6vJp8yc4czxPttAx9jR+M6xvZHDGmCFHexbU0798WH6xzNT6eJ9qZJGnAoLck17ewkqb
+ FPIAIApaM/sT8i1SeExVfoE3Cbr/BNuOVKAWl5oz+X6ue66Y36jGLcf9s2X8RnzVUCnw
+ ThfOP6Rq7W/hx5U9M6PJHLybmX77RSDKRNE7jsbAkUaiNV0tgn4I5Yh60T3U6xN9csco
+ 1ZknNtH1v3i/wIEz0cfhpfPCSDN7vm8M6QJDnqJIreCwDAspMY0k9v7Lkh1t9dzbu9Az
+ qebQ==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:references:cc:message-id:date
+ :user-agent:mime-version:in-reply-to:content-transfer-encoding;
+ bh=o2tHEENYDte40oEYnSo4eBCjPoJBKKUbfQzeklnRRrw=;
+ b=fU58V5xtROq4M/n2P4O0o0IlTv9cmrcIbKupAF7e9bN7/IovzrFzcAaNCp440SnQ5O
+ eq92bVy2+DQ9n7uJdxgcdCt8v7hqLHp5sqfmjXPICJekNBwtmR1yvRNT6t2ZSjppKVau
+ X5WWu8YYwRKJ9D0vx3B2V4jVRaBf5kFjuEPnXA4QgkDZMr9ab49mtV1KMzdfqr3poFDs
+ ZH+WRlLl8j4BLYEmoIpYfQ4a2JH+hy+BQ3UWokiVoDVzKA9cuyhFEPYm0fgLvE9x35pf
+ PCYvKEUKwjxPavkHdl2IKyvXFREMt33TP1nFOt712PvsrawTd3KqlBwi4O9sCmSKPCqE
+ vzQQ==
+X-Gm-Message-State: AD7BkJKhiMGHrmiHcjQFrKW2uoHq4beN6opadGjxbPfEDCwkAJxE6bU6MFUoqh/J7SOb5w==
+X-Received: by 10.28.141.141 with SMTP id p135mr7543838wmd.8.1458504772383;
+ Sun, 20 Mar 2016 13:12:52 -0700 (PDT)
+Received: from [192.168.0.11] (ip5f5ac874.dynamic.kabel-deutschland.de.
+ [95.90.200.116]) by smtp.googlemail.com with ESMTPSA id
+ h67sm9166584wmf.15.2016.03.20.13.12.51 for <gawk-devel@gnu.org>
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 20 Mar 2016 13:12:51 -0700 (PDT)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+References: <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+ <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+ <201603140356.u2E3umxW009438@skeeve.com>
+ <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+ <20160314181753.GA30914@ti129.telemetry-investments.com>
+Cc: gawk-devel@gnu.org
+Message-ID: <56EF0442.3050605@googlemail.com>
+Date: Sun, 20 Mar 2016 21:12:50 +0100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.6.0
+MIME-Version: 1.0
+In-Reply-To: <20160314181753.GA30914@ti129.telemetry-investments.com>
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::229
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 2712
+Lines: 56
+
+Hello Andrew,
+
+> This is somewhat off-topic, but I continue to believe that the networking
+> implementation in gawk doesn't really make sense, as discussed back in
+> June/July 2013. Now that we have non-blocking I/O (using
+> PROCINFO["INPUT_NAME", "RETRY"]) and the select extension in gawkextlib, we can
+> do this the right way. The existing TCP solution accepts a single connection
+> and then closes the listener socket in io.c:socketopen:
+>
+> if (listen(socket_fd, 1) >= 0
+> && (clientsocket_fd = accept(socket_fd,
+> (struct sockaddr *) & remote_addr,
+> & namelen)) >= 0) {
+> closemaybesocket(socket_fd);
+> socket_fd = clientsocket_fd;
+> break;
+> }
+
+The current networking paradigm tries to treat every
+networking connection like a file. Trying to treat a connection
+like a file looked like a straightforward idea at that time, but it
+was in fact a bit difficult because there were so many differences
+between connections and files (for example port numbers, the
+difference between raw, datagram and stream data, and also
+socket options). Since then, the diversity in differences has
+increased ever more. It is obvious that all these details cannot
+be treated in detail and in portable manner.
+
+I understand your comment as a suggestion that the
+networking API should handle only a minimum of details
+and more advanced things should be handled with other
+mechanisms (that are either part of gawk or one of its
+extensions). I would agree, I see no other way that is
+realistic in the long term.
+
+> To me, these UDP problems are a reminder that the networking paradigm in
+> gawk is flawed. My guess is that nobody really uses anything other than
+> the TCP client feature, so maybe we should scrap the UDP support and TCP
+> server support and reimplement them to work in a sane fashion...
+
+When I implemented the support for UDP, I thought it would
+be possible to offer the same networking API for TCP and UDP,
+for clients and for servers. As we have seen, even the example
+scripts that we tried cannot handle TCP and UDP in the same way.
+Even for TCP, the handling of differences between client and server
+connections is silently hidden in the parameters that are passed.
+This is ugly and not user-friendly of course.
+
+Your guess that no one really uses UDP may be true.
+Concerning the use of TCP server-scripts I can only guess.
+So your suggestion to remove the UDP support makes sense.
+This would allow for a real simplification in gawk's networking internals.
+Your suggestion to remove support for the TCP server side
+would simplify the implementation to a degree that the control
+flow in the source code could be called "straightforward".
+All in all, I would agree with your suggestions.
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 20 23:55:17 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 22EA937B
+ for <schorr@schorr.telemetry-investments.com>; Sun, 20 Mar 2016 23:55:17 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 1139B681; Sun, 20 Mar 2016 23:55:17 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 788F167D
+ for <aschorr@telemetry-investments.com>; Sun, 20 Mar 2016 23:55:15 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 788F167D
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=skeeve.com
+Received: from localhost ([::1]:55446 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1ahqvx-0000mz-HC
+ for aschorr@telemetry-investments.com; Sun, 20 Mar 2016 23:55:13 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:49069)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1ahqvv-0000mt-Nr
+ for gawk-devel@gnu.org; Sun, 20 Mar 2016 23:55:12 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1ahqvq-0007U7-NU
+ for gawk-devel@gnu.org; Sun, 20 Mar 2016 23:55:11 -0400
+Received: from mxout2.netvision.net.il ([194.90.9.21]:57721)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1ahqvq-0007TF-FH
+ for gawk-devel@gnu.org; Sun, 20 Mar 2016 23:55:06 -0400
+MIME-version: 1.0
+Content-transfer-encoding: 7BIT
+Content-type: text/plain; CHARSET=US-ASCII
+Received: from skeeve.com ([93.173.16.221]) by mxout2.netvision.net.il
+ (Oracle Communications Messaging Server 7.0.5.30.0 64bit (built Oct 22
+ 2013)) with ESMTPSA id <0O4D00C03EVN0600@mxout2.netvision.net.il> for
+ gawk-devel@gnu.org; Mon, 21 Mar 2016 05:55:00 +0200 (IST)
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+ by skeeve.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id
+ u2L3sxaK016470; Mon, 21 Mar 2016 05:54:59 +0200
+Received: (from arnold@localhost) by skeeve.com (8.14.4/8.14.4/Submit)
+ id u2L3swdW016469; Mon, 21 Mar 2016 05:54:58 +0200
+From: Aharon Robbins <arnold@skeeve.com>
+Message-id: <201603210354.u2L3swdW016469@skeeve.com>
+Date: Mon, 21 Mar 2016 05:54:58 +0200
+To: juergen.kahrs@googlemail.com
+References: <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+ <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+ <201603140356.u2E3umxW009438@skeeve.com>
+ <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+ <20160314181753.GA30914@ti129.telemetry-investments.com>
+ <56EF0442.3050605@googlemail.com>
+In-reply-to: <56EF0442.3050605@googlemail.com>
+User-Agent: Heirloom mailx 12.5 6/20/10
+X-detected-operating-system: by eggs.gnu.org: Solaris 10
+X-Received-From: 194.90.9.21
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 963
+Lines: 28
+
+Hi.
+
+I don't have a problem with marking UDP as obsolete.
+
+I would prefer to continue to be able to have both server and client
+on the TCP side.
+
+I would strongly prefer to do this in a way that doesn't break old
+programs using TCP.
+
+One thing that bothers me right now is that getaddrinfo() returns
+a linked list of struct addrinfo, and the gawk paradigm assumes that
+/inet/... will only map to one possible connection, an (IPv?, address, port)
+triple. This should be dealt with reasonably in the case that more
+than one struct addrinfo comes back. (Probably a fatal error.)
+
+Andy and Juergen, feel free to work on a design and set up a separate
+branch off of master to work on this.
+
+In the meantime, I have updated the doc based on one of Juergen's emails
+and pushed the changes to the repo.
+
+(As a side note, how did the original UDP client ever work? I have a vague
+memory of having tested it and that it did work... That also bothers me.)
+
+Thanks,
+
+Arnold
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 27 15:24:09 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 7DB0422A
+ for <schorr@schorr.telemetry-investments.com>; Sun, 27 Mar 2016 15:24:09 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 727926A9; Sun, 27 Mar 2016 15:24:09 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 29F5D36A
+ for <aschorr@telemetry-investments.com>; Sun, 27 Mar 2016 15:24:08 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 29F5D36A
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=Lix8Cacv
+Received: from localhost ([::1]:37179 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1akGIA-0007bd-0d
+ for aschorr@telemetry-investments.com; Sun, 27 Mar 2016 15:24:06 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:43872)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1akGI7-0007bY-Di
+ for gawk-devel@gnu.org; Sun, 27 Mar 2016 15:24:04 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1akGI4-00037V-7Z
+ for gawk-devel@gnu.org; Sun, 27 Mar 2016 15:24:03 -0400
+Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:36508)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1akGI3-00037O-W5
+ for gawk-devel@gnu.org; Sun, 27 Mar 2016 15:24:00 -0400
+Received: by mail-wm0-x242.google.com with SMTP id l68so16394571wml.3
+ for <gawk-devel@gnu.org>; Sun, 27 Mar 2016 12:23:59 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:to:references:cc:message-id:date:user-agent
+ :mime-version:in-reply-to:content-transfer-encoding;
+ bh=XWsAXxBAmHCZbTTAxl0zQUZjQ0yb4isOCqIUw2KU1Fk=;
+ b=Lix8CacvxJnUFk/mLgyhAmx04VDGwZLDL6KVXRsKDYSlyNlJ7FPk4dFagDGAg8aurZ
+ 7zyVjY5vxXSgtKUw7m2oawF5uBkYuyXl5xvgD6Ogq59FjaAGr94Gkbt/9CWjG27OCZgg
+ K7dHW+uIdCgzkgsLLzZj3+qyA66/2/VHBKhkyG2TnWEXuIxcRrO40N5tG1UBz7J739gP
+ 3AY8lrF3+Vh/UMh0vC2ywC39rzIEIOX3vATK5pYHzSv7GAZLaq2/NrL+TSaj/ziIdum5
+ I3uRScvEBZQh2YJq7p7WjOgHvAMrV7mkxdnync1I9F6mseCTWz4PtHlWfWOCTVcerVz/
+ IFMw==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:to:references:cc:message-id:date
+ :user-agent:mime-version:in-reply-to:content-transfer-encoding;
+ bh=XWsAXxBAmHCZbTTAxl0zQUZjQ0yb4isOCqIUw2KU1Fk=;
+ b=Y84qRzpqkCsIvjdScyYnEriHyB6QGSSwi5CC4aBSOj6N9/HO1j4lyy1TAOyH12MnSp
+ l1TKTKUKUB/z4Bu5BPYx4mleRARwEuc0iB04ZR5EiK/4Xv9Jufqkbqj9ml86nLHixOvp
+ xiX1wLDi6BktB7eFjRVelz7PnioE28mH++guqiSD75hMCX/g0vkMps/am/8uo1ScyEVj
+ zLWmiz7iD2sDNrDpMewyzaQFBpziHYoVTXN8aKC369yeiHuYasvJ7SYjlQgTmaRR2CzL
+ TOlYN+LXFCIagBnAaY7v2WXgMtBtnWnjcysCQnXiDSUx8jEio87sP3PextEKr0B64KFZ
+ Me6A==
+X-Gm-Message-State: AD7BkJKddXjGqptDZXG7wsWMvvamfHr9gkdo/MN2YORd6Z685+CMvBn/c39XPB/LVQFzXg==
+X-Received: by 10.28.34.67 with SMTP id i64mr6925949wmi.85.1459106638757;
+ Sun, 27 Mar 2016 12:23:58 -0700 (PDT)
+Received: from [192.168.0.11] (ip5f5ac842.dynamic.kabel-deutschland.de.
+ [95.90.200.66]) by smtp.googlemail.com with ESMTPSA id
+ s66sm7006743wmb.6.2016.03.27.12.23.57
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 27 Mar 2016 12:23:58 -0700 (PDT)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+To: Aharon Robbins <arnold@skeeve.com>
+References: <20160306182857.GA27654@smok.internal>
+ <201603061917.u26JHNwQ006986@skeeve.com>
+ <56DC8AFB.80708@googlemail.com> <56E5920F.2090204@googlemail.com>
+ <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+ <201603140356.u2E3umxW009438@skeeve.com>
+ <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+ <20160314181753.GA30914@ti129.telemetry-investments.com>
+ <56EF0442.3050605@googlemail.com>
+ <201603210354.u2L3swdW016469@skeeve.com>
+Message-ID: <56F8334C.70808@googlemail.com>
+Date: Sun, 27 Mar 2016 21:23:56 +0200
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.7.0
+MIME-Version: 1.0
+In-Reply-To: <201603210354.u2L3swdW016469@skeeve.com>
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::242
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 2102
+Lines: 50
+
+Am 21.03.2016 um 04:54 schrieb Aharon Robbins:
+> I don't have a problem with marking UDP as obsolete.
+
+So we agree in this point. For the moment it may a good
+idea to simply mention obsolescence of UDP in the doc.
+
+> I would prefer to continue to be able to have both server and client
+> on the TCP side.
+
+Agreed, there are really interesting applications built upon
+both of them.
+
+> I would strongly prefer to do this in a way that doesn't break old
+> programs using TCP.
+
+Agreed, of course.
+
+> One thing that bothers me right now is that getaddrinfo() returns
+> a linked list of struct addrinfo, and the gawk paradigm assumes that
+> /inet/... will only map to one possible connection, an (IPv?, address, port)
+> triple. This should be dealt with reasonably in the case that more
+> than one struct addrinfo comes back. (Probably a fatal error.)
+
+That's right. But there are several ways of dealing with a list that
+contains more the one entry. Some doc that I read suggests opening
+connections for all of the available entries. Another possibility would be
+to use the name (/inet or /inet4) as a hint that can be passed to the
+getaddrinfo() system call. Instead of raising a fatal error (in case of
+more than 1 entry) it could make sense to simply use the very first
+entry.
+
+> Andy and Juergen, feel free to work on a design and set up a separate
+> branch off of master to work on this.
+
+The working habbits of git are currently beyond my horizon
+since I used SVN on a daily basis in several projects.
+But working with patches in the usual "diff -u" format would be Ok.
+
+> In the meantime, I have updated the doc based on one of Juergen's emails
+> and pushed the changes to the repo.
+
+Hmm, yes, inserting them as you did is probably a good idea.
+Thanks for doing this.
+
+> (As a side note, how did the original UDP client ever work? I have a vague
+> memory of having tested it and that it did work... That also bothers me.)
+
+I have thought about it for a while but have not come to
+a convincing conclusion. Perhaps you tested only one
+side (client or server) and simulated the other side with netcat.
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Mar 27 17:10:16 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id BE2C63E14
+ for <schorr@schorr.telemetry-investments.com>; Sun, 27 Mar 2016 17:10:16 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id AC7F96A9; Sun, 27 Mar 2016 17:10:16 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 70682697
+ for <aschorr@telemetry-investments.com>; Sun, 27 Mar 2016 17:10:15 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 70682697
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=gmail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PfdWxm7H
+Received: from localhost ([::1]:37428 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1akHwr-0006a6-MG
+ for aschorr@telemetry-investments.com; Sun, 27 Mar 2016 17:10:13 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:33103)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1akHwp-0006a1-FV
+ for gawk-devel@gnu.org; Sun, 27 Mar 2016 17:10:12 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1akHwl-0007U5-Fo
+ for gawk-devel@gnu.org; Sun, 27 Mar 2016 17:10:11 -0400
+Received: from mail-io0-x22b.google.com ([2607:f8b0:4001:c06::22b]:35159)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <michal.jnn@gmail.com>) id 1akHwl-0007Tu-B0
+ for gawk-devel@gnu.org; Sun, 27 Mar 2016 17:10:07 -0400
+Received: by mail-io0-x22b.google.com with SMTP id g185so3491774ioa.2
+ for <gawk-devel@gnu.org>; Sun, 27 Mar 2016 14:10:07 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+ h=date:from:to:cc:subject:message-id:references:mime-version
+ :content-disposition:content-transfer-encoding:in-reply-to
+ :user-agent; bh=/iODLLb8/6qOAaljk1snPcw+fhGS6eY0j0JKabydXnE=;
+ b=PfdWxm7H7MWuJzGQnxDVlYP9U6i5MagiOQLhRcHd4nUVddELERzAz76cFp5jo9YckI
+ iiFvsJv5BCQcKSZjZHNjJWF4SB8DqUE9yEXA0MyJu/E1fNloNSwZY4W+bj4YC332PLEu
+ 42i+tbFPngPyuQLTOI9a8LI3tRR3m31G+qNmaekAd54f9iGgj3rw30xTXPy/tpyN7X6A
+ HHpbBUn1dkNO85gUfE1o3IMdsRTRE3MgMRrKKfD6cjTmmhvMVPs7lZnvhN2RQ73Trrlq
+ OUas40EhsAom6WR8XKsL4eurVg8m2sm4pbIhGTwdgwr8XAlop3TyH5+oVSCLEXW++Mpm
+ 1Y0Q==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:date:from:to:cc:subject:message-id:references
+ :mime-version:content-disposition:content-transfer-encoding
+ :in-reply-to:user-agent;
+ bh=/iODLLb8/6qOAaljk1snPcw+fhGS6eY0j0JKabydXnE=;
+ b=K1fhyxbu7/GZcChuzK+AsBUeYYJquPil2g9hZ/qc9r6Ci6i7UnSwvuoKVoAS89A973
+ A+miFySMpytC0pQCloa+/lUQJT+YZZ1+hEiveKOgtfjV9V2PV7wc6AcajRe12je65BTU
+ 14btGqHrJNtuxMMadngBEXHTg9GkxeXWAqZjFbR8qiL5OjqGBEfP0K7tyK/pHqvcOAvV
+ FT8JIFQa6c+oCcVom/8EXBiAptEz4/uBcFiMCYLUdmB1yzN8qxih8VdYTaFaVwOZWIyS
+ m1wUeB5KZN35kfg13e03Guc2xz3QZ/8uzIb+CIPsi+hah/WR9IyaVtfTux8aWIf0CY7d
+ S+/A==
+X-Gm-Message-State: AD7BkJIUh3/p/MgF+QUZoouI0sfy6Fq0WNSfocDMArcWsoFHlWBUdQLqdY019CE2x4ykoQ==
+X-Received: by 10.107.10.214 with SMTP id 83mr21688645iok.64.1459113006701;
+ Sun, 27 Mar 2016 14:10:06 -0700 (PDT)
+Received: from smok.internal (d23-17-121-177.abhsia.telus.net. [23.17.121.177])
+ by smtp.gmail.com with ESMTPSA id d7sm2824495igg.18.2016.03.27.14.10.05
+ (version=TLS1_2 cipher=AES128-SHA bits=128/128);
+ Sun, 27 Mar 2016 14:10:06 -0700 (PDT)
+Date: Sun, 27 Mar 2016 15:10:03 -0600
+From: Michal Jaegermann <michal.jnn@gmail.com>
+To: =?iso-8859-1?Q?J=FCrgen?= Kahrs <juergen.kahrs@googlemail.com>
+Message-ID: <20160327211003.GA17748@smok.internal>
+References: <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+ <201603140356.u2E3umxW009438@skeeve.com>
+ <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+ <20160314181753.GA30914@ti129.telemetry-investments.com>
+ <56EF0442.3050605@googlemail.com>
+ <201603210354.u2L3swdW016469@skeeve.com>
+ <56F8334C.70808@googlemail.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=iso-8859-1
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+In-Reply-To: <56F8334C.70808@googlemail.com>
+User-Agent: Mutt/1.5.23 (2014-03-12)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2607:f8b0:4001:c06::22b
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 1110
+Lines: 24
+
+On Sun, Mar 27, 2016 at 09:23:56PM +0200, Jürgen Kahrs wrote:
+> Am 21.03.2016 um 04:54 schrieb Aharon Robbins:
+>
+> > One thing that bothers me right now is that getaddrinfo() returns
+> > a linked list of struct addrinfo, and the gawk paradigm assumes that
+> > /inet/... will only map to one possible connection,
+
+I do not see a contradiction here. It is quite possible for one
+connection to have multiple addresses.
+....
+> Instead of raising a fatal error (in case of
+> more than 1 entry) it could make sense to simply use the very first
+> entry.
+
+I do not think that this will work in general. Even discounting
+multi-homed interfaces you should consider as a quite normal a situation
+when you have on an interface an IPv4 address and IPv6 one. If the
+first entry happens to be on a network where you can get a connection
+with the other machine then you are ok; otherwise you will get "not
+reachable". I do not see how one can avoid walking through that
+linked list from getaddrinfo() while trying entries one by one and
+returning an error only after all possibilities failed. What do I miss?
+
+ Michal
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Mon Mar 28 08:30:46 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id B96F18A
+ for <schorr@schorr.telemetry-investments.com>; Mon, 28 Mar 2016 08:30:46 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id B126F69B; Mon, 28 Mar 2016 08:30:46 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 46F1C44C
+ for <aschorr@telemetry-investments.com>; Mon, 28 Mar 2016 08:30:46 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 46F1C44C
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=skeeve.com
+Received: from localhost ([::1]:40789 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1akWJg-0005nx-Lr
+ for aschorr@telemetry-investments.com; Mon, 28 Mar 2016 08:30:44 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:38114)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1akWJY-0005mR-HK
+ for gawk-devel@gnu.org; Mon, 28 Mar 2016 08:30:42 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1akWJV-0002vO-88
+ for gawk-devel@gnu.org; Mon, 28 Mar 2016 08:30:36 -0400
+Received: from freefriends.org ([96.88.95.60]:52668)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1akWJV-0002uN-09
+ for gawk-devel@gnu.org; Mon, 28 Mar 2016 08:30:33 -0400
+X-Envelope-From: arnold@skeeve.com
+Received: from freefriends.org (localhost [127.0.0.1])
+ by freefriends.org (8.14.9/8.14.9) with ESMTP id u2SCPP8t000831;
+ Mon, 28 Mar 2016 06:25:25 -0600
+Received: (from arnold@localhost)
+ by freefriends.org (8.14.9/8.14.9/submit) id u2SCPOeP000830;
+ Mon, 28 Mar 2016 12:25:24 GMT
+From: arnold@skeeve.com
+Message-Id: <201603281225.u2SCPOeP000830@freefriends.org>
+X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to
+ arnold@skeeve.com using -f
+Date: Mon, 28 Mar 2016 06:25:24 -0600
+To: michal.jnn@gmail.com, juergen.kahrs@googlemail.com
+References: <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+ <201603140356.u2E3umxW009438@skeeve.com>
+ <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+ <20160314181753.GA30914@ti129.telemetry-investments.com>
+ <56EF0442.3050605@googlemail.com>
+ <201603210354.u2L3swdW016469@skeeve.com>
+ <56F8334C.70808@googlemail.com> <20160327211003.GA17748@smok.internal>
+In-Reply-To: <20160327211003.GA17748@smok.internal>
+User-Agent: Heirloom mailx 12.4 7/29/08
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x
+X-Received-From: 96.88.95.60
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 324
+Lines: 11
+
+My main concern is what if more than one of the results from getaddrinfo
+would work? It makes no sense to associate multiple sockets with one
+redirection.
+
+I guess the thing to do is loop through the results and use the
+first one that works, then skip the rest. That's probably better than
+a fatal error.
+
+Thanks,
+
+Arnold
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Apr 3 14:59:32 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id BE22C1D1
+ for <schorr@schorr.telemetry-investments.com>; Sun, 3 Apr 2016 14:59:32 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id B55B96CC; Sun, 3 Apr 2016 14:59:32 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 6EE1C279
+ for <aschorr@telemetry-investments.com>; Sun, 3 Apr 2016 14:59:32 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 6EE1C279
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=HOHRmMhj
+Received: from localhost ([::1]:54843 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1amnFC-0007bE-LH
+ for aschorr@telemetry-investments.com; Sun, 03 Apr 2016 14:59:30 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:50245)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1amnFA-0007at-A5
+ for gawk-devel@gnu.org; Sun, 03 Apr 2016 14:59:29 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1amnF5-0000Q0-GC
+ for gawk-devel@gnu.org; Sun, 03 Apr 2016 14:59:28 -0400
+Received: from mail-lf0-x235.google.com ([2a00:1450:4010:c07::235]:34949)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1amnF5-0000Pw-2p
+ for gawk-devel@gnu.org; Sun, 03 Apr 2016 14:59:23 -0400
+Received: by mail-lf0-x235.google.com with SMTP id c126so21006742lfb.2
+ for <gawk-devel@gnu.org>; Sun, 03 Apr 2016 11:59:22 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:references:cc:message-id:date:user-agent:mime-version
+ :in-reply-to; bh=jymzw5+fgpC7Xi4deyYmr+qUyY4nyb1mppAeUXF+Aw8=;
+ b=HOHRmMhjrxLnUVE/+OtfeKBypyvsrPyrPBIOMd5fuVbo1+vzN447Uts+WK4zqKfuhV
+ j3ewEjTu9HJGYmUSo35gMIJy2EYKUxfR7PhDv7OO4gP05SEDx49VOa9WF7XGOSr5G41+
+ Z1BopLZ0Xc4OfegQUryhhCIYztk9snznJLtcgiq+lU7b6jEYOgCvxcRS5f9PEph/2lJR
+ Kq2bLJckNPRxpOR/zJ27xCjvfKkYXWw3vRrwKRWSvMDRQjz3EVbdXErcapdQ6g1AkoCN
+ 3BsW/FLwfK2+h95TqUTriz03s47qa3LQwGOT1Wl8XJSe9UhT86XAZoSf89vY99r6VZEJ
+ kcLw==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:references:cc:message-id:date
+ :user-agent:mime-version:in-reply-to;
+ bh=jymzw5+fgpC7Xi4deyYmr+qUyY4nyb1mppAeUXF+Aw8=;
+ b=B2heQJ93aQ3zzmxM4de5kJzCk3WjR8wRsMPfI+Rz0BUEXUfDDQCGgS/r8+jmHowawa
+ h07XBnPnDYJv5St10F9OV/Ppa0Byr27jgN7t4u6AOEk9bKM98SdS7eyVLyD4gfvlpAT8
+ kQdHsoBR5nxgesiy4FX6tiCZTuI4OkF+W7kSJv7UkWFA4k0ZqnzGrTULwdhdeZs5O3yK
+ 97yKj/5PyfAOW4pBe5Anw4XQCi5jpyZMnIaCQ3kaTujWQoWbXYe+tH1szpISoOBqng9J
+ lEYO1yz33v5LbEQ5z8ZTGdUbyfAlcjacfqBO7+pWafkZijVblUV+v1qqNBiUjD3G2Pn6
+ QvSQ==
+X-Gm-Message-State: AD7BkJLInubFPFh4UaSgzB21De6DYkVSjc9/2ljFUf0Crz9vBSuVEejYjSnS7eB50vkCfg==
+X-Received: by 10.194.192.106 with SMTP id hf10mr724423wjc.134.1459709961797;
+ Sun, 03 Apr 2016 11:59:21 -0700 (PDT)
+Received: from [192.168.0.11] (ip5f5ac887.dynamic.kabel-deutschland.de.
+ [95.90.200.135]) by smtp.googlemail.com with ESMTPSA id
+ m6sm25094147wje.21.2016.04.03.11.59.20 for <gawk-devel@gnu.org>
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 03 Apr 2016 11:59:21 -0700 (PDT)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+References: <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+ <201603140356.u2E3umxW009438@skeeve.com>
+ <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+ <20160314181753.GA30914@ti129.telemetry-investments.com>
+ <56EF0442.3050605@googlemail.com>
+ <201603210354.u2L3swdW016469@skeeve.com>
+ <56F8334C.70808@googlemail.com> <20160327211003.GA17748@smok.internal>
+ <201603281225.u2SCPOeP000830@freefriends.org>
+Cc: gawk-devel@gnu.org
+Message-ID: <57016807.1050104@googlemail.com>
+Date: Sun, 3 Apr 2016 20:59:19 +0200
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.7.0
+MIME-Version: 1.0
+In-Reply-To: <201603281225.u2SCPOeP000830@freefriends.org>
+Content-Type: multipart/alternative;
+ boundary="------------010504090001020009000105"
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:4010:c07::235
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 6276
+Lines: 142
+
+This is a multi-part message in MIME format.
+--------------010504090001020009000105
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+
+Am 28.03.2016 um 14:25 schrieb arnold@skeeve.com:
+> My main concern is what if more than one of the results from getaddrinfo
+> would work? It makes no sense to associate multiple sockets with one
+> redirection.
+>
+> I guess the thing to do is loop through the results and use the
+> first one that works, then skip the rest. That's probably better than
+> a fatal error.
+
+I had a look at io.c socketopen.
+It seems to do exactly what you suggested.
+It even honours the "type" and the "family" of the
+networking interface (IPV4/6 and TCP/UDP) that
+can be deduced form the /inet path.
+There are two nested "while" loops, the outer loop for the
+local port and the inner loop for the remote port.
+These nested loops try to open a connection for every
+combination of local and remote port (taking into account
+the hints/restrictions from /inet). Upon first successful
+connection, both loops are left with the socket left open.
+The loops go on looping as long as the connection
+build-up is unsuccessful (or no combinations left to try).
+
+The source code is a bit difficult to read because of
+the "gotos", the nested "breaks" and the "returns".
+But it looks clean and makes sense. Even the cleanup
+with the freeaddrinfo() system call seems Ok.
+Really not bad.
+
+
+> One thing that bothers me right now is that getaddrinfo() returns
+> a linked list of struct addrinfo, and the gawk paradigm assumes that
+> /inet/... will only map to one possible connection, an (IPv?, address, port)
+> triple. This should be dealt with reasonably in the case that more
+> than one struct addrinfo comes back. (Probably a fatal error.)
+
+As mentioned above, the current behaviour looks fine to me.
+But let me mention one side-effect that might confuse you
+if you use "strace" to look at what the interpreter actually does.
+When using the client and server example code, you will see
+several socket() systems calls as the nested loops do their
+work of trying all combinations. There is even one for SOCK_RAW.
+
+ strace ./gawk -f client.awk 2>&1 | grep socket
+
+ socket(PF_NETLINK, SOCK_RAW, 0) = 3
+ socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
+ socket(PF_NETLINK, SOCK_RAW, 0) = 3
+ socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3
+
+This is ugly, probably annoying, but not fatal.
+What remains to be done is to remove the support for
+UDP in io.c as well as in the doc and to improve the conceptual
+description of TCP in the doc. Do we agree ?
+
+
+
+--------------010504090001020009000105
+Content-Type: text/html; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=windows-1252"
+ http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ <div class="moz-cite-prefix">Am 28.03.2016 um 14:25 schrieb
+ <a class="moz-txt-link-abbreviated" href="mailto:arnold@skeeve.com">arnold@skeeve.com</a>:<br>
+ </div>
+ <blockquote cite="mid:201603281225.u2SCPOeP000830@freefriends.org"
+ type="cite">
+ <pre wrap="">My main concern is what if more than one of the results from getaddrinfo
+would work? It makes no sense to associate multiple sockets with one
+redirection.
+
+I guess the thing to do is loop through the results and use the
+first one that works, then skip the rest. That's probably better than
+a fatal error.
+</pre>
+ </blockquote>
+ <br>
+ I had a look at io.c socketopen.<br>
+ It seems to do exactly what you suggested.<br>
+ It even honours the "type" and the "family" of the<br>
+ networking interface (IPV4/6 and TCP/UDP) that<br>
+ can be deduced form the /inet path.<br>
+ There are two nested "while" loops, the outer loop for the<br>
+ local port and the inner loop for the remote port.<br>
+ These nested loops try to open a connection for every<br>
+ combination of local and remote port (taking into account<br>
+ the hints/restrictions from /inet). Upon first successful<br>
+ connection, both loops are left with the socket left open.<br>
+ The loops go on looping as long as the connection<br>
+ build-up is unsuccessful (or no combinations left to try).<br>
+ <br>
+ The source code is a bit difficult to read because of<br>
+ the "gotos", the nested "breaks" and the "returns".<br>
+ But it looks clean and makes sense. Even the cleanup<br>
+ with the freeaddrinfo() system call seems Ok.<br>
+ Really not bad.<br>
+ <br>
+ <br>
+ <blockquote type="cite">
+ <pre wrap="">One thing that bothers me right now is that getaddrinfo() returns
+a linked list of struct addrinfo, and the gawk paradigm assumes that
+<i class="moz-txt-slash"><span class="moz-txt-tag">/</span>inet<span class="moz-txt-tag">/</span></i>... will only map to one possible connection, an (IPv?, address, port)
+triple. This should be dealt with reasonably in the case that more
+than one struct addrinfo comes back. (Probably a fatal error.)
+</pre>
+ </blockquote>
+ <br>
+ As mentioned above, the current behaviour looks fine to me.<br>
+ But let me mention one side-effect that might confuse you<br>
+ if you use "strace" to look at what the interpreter actually does.<br>
+ When using the client and server example code, you will see<br>
+ several socket() systems calls as the nested loops do their<br>
+ work of trying all combinations. There is even one for SOCK_RAW.<br>
+ <blockquote><tt>strace ./gawk -f client.awk 2&gt;&amp;1 | grep
+ socket<br>
+ <br>
+ </tt><tt></tt><tt>socket(PF_NETLINK, SOCK_RAW, 0)         = 3</tt><tt><br>
+ </tt><tt>socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK,
+ 0) = 3</tt><tt><br>
+ </tt><tt>socket(PF_NETLINK, SOCK_RAW, 0)         = 3</tt><tt><br>
+ </tt><tt>socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3</tt><tt><br>
+ </tt></blockquote>
+ This is ugly, probably annoying, but not fatal.<br>
+ What remains to be done is to remove the support for<br>
+ UDP in io.c as well as in the doc and to improve the conceptual<br>
+ description of TCP in the doc. Do we agree ?<br>
+ <br>
+ <br>
+ </body>
+</html>
+
+--------------010504090001020009000105--
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Apr 3 22:53:51 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 3276F20C
+ for <schorr@schorr.telemetry-investments.com>; Sun, 3 Apr 2016 22:53:51 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 202BE6CC; Sun, 3 Apr 2016 22:53:51 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 8E8F9577
+ for <aschorr@telemetry-investments.com>; Sun, 3 Apr 2016 22:53:50 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 8E8F9577
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=skeeve.com
+Received: from localhost ([::1]:56223 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1amueC-00013e-LC
+ for aschorr@telemetry-investments.com; Sun, 03 Apr 2016 22:53:48 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:35230)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1amue9-00013V-DI
+ for gawk-devel@gnu.org; Sun, 03 Apr 2016 22:53:46 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1amue5-0007wE-CR
+ for gawk-devel@gnu.org; Sun, 03 Apr 2016 22:53:45 -0400
+Received: from mxout2.netvision.net.il ([194.90.9.21]:55275)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <arnold@skeeve.com>) id 1amue5-0007vu-4i
+ for gawk-devel@gnu.org; Sun, 03 Apr 2016 22:53:41 -0400
+MIME-version: 1.0
+Content-transfer-encoding: 7BIT
+Content-type: text/plain; CHARSET=US-ASCII
+Received: from skeeve.com ([93.173.16.221]) by mxout2.netvision.net.il
+ (Oracle Communications Messaging Server 7.0.5.30.0 64bit (built Oct 22
+ 2013)) with ESMTPSA id <0O5300K799DBVS50@mxout2.netvision.net.il> for
+ gawk-devel@gnu.org; Mon, 04 Apr 2016 05:53:35 +0300 (IDT)
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+ by skeeve.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id
+ u342rZO7003330; Mon, 4 Apr 2016 05:53:35 +0300
+Received: (from arnold@localhost) by skeeve.com (8.14.4/8.14.4/Submit)
+ id u342rYxg003329; Mon, 4 Apr 2016 05:53:34 +0300
+From: Aharon Robbins <arnold@skeeve.com>
+Message-id: <201604040253.u342rYxg003329@skeeve.com>
+Date: Mon, 04 Apr 2016 05:53:34 +0300
+To: juergen.kahrs@googlemail.com
+References: <201603131938.u2DJc9jP009589@skeeve.com>
+ <56E5C6C4.9000605@googlemail.com>
+ <201603140336.u2E3aR24017398@freefriends.org>
+ <201603140356.u2E3umxW009438@skeeve.com>
+ <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+ <20160314181753.GA30914@ti129.telemetry-investments.com>
+ <56EF0442.3050605@googlemail.com>
+ <201603210354.u2L3swdW016469@skeeve.com>
+ <56F8334C.70808@googlemail.com> <20160327211003.GA17748@smok.internal>
+ <201603281225.u2SCPOeP000830@freefriends.org>
+ <57016807.1050104@googlemail.com>
+In-reply-to: <57016807.1050104@googlemail.com>
+User-Agent: Heirloom mailx 12.5 6/20/10
+X-detected-operating-system: by eggs.gnu.org: Solaris 10
+X-Received-From: 194.90.9.21
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work?
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+X-Status: A
+Content-Length: 1273
+Lines: 44
+
+Hi Juergen.
+
+Thanks for the update. I'm glad the code is actually in reasonable shape.
+
+I set up a git branch for you to work in. It's not all that hard.
+You pretty much want to work as follows:
+
+ cd /path/to/your/copy/of/the/repo
+ make distclean
+ git pull
+ git checkout feature/improve-inet
+ # code, compile, test, fix doc
+ git add <list of changed files>
+ git commit
+ git push # when there's something for everyone else to see
+ # continue with "code, git add, git commit, git push" until done
+
+Every once in a while, you will want to bring the branch up to date
+with master. This isn't hard. First, be sure you have no unsaved changes.
+Then:
+
+ make distclean
+ git checkout master && git pull # bring up to date
+ git checkout feature/improve-inet
+ git merge master
+ # Resolve any conflicts here. gvim or Emacs or ...
+ # git add <resolved files>
+ # git commit
+ git push
+
+That's really all there is to it.
+
+You will want to have up to date versions of the various tools, as
+listed in the NEWS file, including makeinfo.
+
+Andy - please coordinate with Juergen too if you have what to contribute.
+
+Starting by obsoleting /inet/udp is a good idea. When that's ready
+it can be merged to master and then y'all can start on the reworking
+that Andy wants to do.
+
+Thanks!
+
+Arnold
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Mon Apr 4 09:27:48 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 4D9623C0
+ for <schorr@schorr.telemetry-investments.com>; Mon, 4 Apr 2016 09:27:48 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 465476C9; Mon, 4 Apr 2016 09:27:48 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 0ADE32AE
+ for <aschorr@telemetry-investments.com>; Mon, 4 Apr 2016 09:27:47 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 0ADE32AE
+Authentication-Results: sv3.telemetry-investments.com; dmarc=none header.from=telemetry-investments.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=fail reason="key not found in DNS" (0-bit key) header.d=telemetry-investments.com header.i=@telemetry-investments.com header.b=2FDQeCmz
+Received: from localhost ([::1]:58623 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1an4Xh-0003dL-S8
+ for aschorr@telemetry-investments.com; Mon, 04 Apr 2016 09:27:45 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:54244)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1an4Xe-0003dF-OF
+ for gawk-devel@gnu.org; Mon, 04 Apr 2016 09:27:43 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1an4Xb-0004hH-IC
+ for gawk-devel@gnu.org; Mon, 04 Apr 2016 09:27:42 -0400
+Received: from gw3a.telemetry-investments.com ([38.76.0.51]:51669
+ helo=sv3.telemetry-investments.com)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <aschorr@telemetry-investments.com>)
+ id 1an4Xb-0004gt-EO
+ for gawk-devel@gnu.org; Mon, 04 Apr 2016 09:27:39 -0400
+Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id C51C344C;
+ Mon, 4 Apr 2016 09:27:36 -0400 (EDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=telemetry-investments.com; s=tele1409; t=1459776457;
+ bh=mX0+xH7BDTKMcWohU6wOtNj7nVpvVNl0VyjR1xNjpvQ=;
+ h=Date:From:To:Cc:Subject:References:In-Reply-To;
+ b=2FDQeCmzx9XKIZnj96BbW4CsCCyu8PiH4Dc/q+o/bxIkjbW+xRw4rg3Nm97Z01Bor
+ G7DjW4Gxr7kJEiPIODkCJ9xkvebZkCldibwo0AuT62D2+c+b2goZPmya3CukHFocJv
+ n1CDqwESISPJqwY6S1JOcE440/Hq0tP5tVZiHvZs=
+Received: by ti129.telemetry-investments.com (Postfix, from userid 300)
+ id 9AF723E0D; Mon, 4 Apr 2016 09:27:36 -0400 (EDT)
+Date: Mon, 4 Apr 2016 09:27:36 -0400
+From: "Andrew J. Schorr" <aschorr@telemetry-investments.com>
+To: Aharon Robbins <arnold@skeeve.com>
+Message-ID: <20160404132736.GA26934@ti129.telemetry-investments.com>
+References: <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+ <20160314181753.GA30914@ti129.telemetry-investments.com>
+ <56EF0442.3050605@googlemail.com>
+ <201603210354.u2L3swdW016469@skeeve.com>
+ <56F8334C.70808@googlemail.com>
+ <20160327211003.GA17748@smok.internal>
+ <201603281225.u2SCPOeP000830@freefriends.org>
+ <57016807.1050104@googlemail.com>
+ <201604040253.u342rYxg003329@skeeve.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <201604040253.u342rYxg003329@skeeve.com>
+User-Agent: Mutt/1.5.23 (2014-03-12)
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 38.76.0.51
+Cc: gawk-devel@gnu.org
+Subject: Re: [gawk-devel] UDP networking doesn't work (and some thoughts
+ about TCP)
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.14
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 2783
+Lines: 55
+
+Hi,
+
+> Andy - please coordinate with Juergen too if you have what to contribute.
+>
+> Starting by obsoleting /inet/udp is a good idea. When that's ready
+> it can be merged to master and then y'all can start on the reworking
+> that Andy wants to do.
+
+Sorry for being AWOL. My day job takes all my attention lately. I have no
+particularly view on whether we should get rid of /inet/udp, but if we keep it,
+we should try to make it work in a reasonable way. My main concern is with how
+tcp works. The current approach does not support the notion of listening for
+and accepting connections. This was done for the sake of simplicity and
+consistency with the udp approach, but it ignores the fact that serving TCP
+stream connections is conceptually quite different than responding to UDP
+packets. From an old email I sent about this:
+
+On Sun, Jun 30, 2013 at 05:19:24PM -0400, Andrew J. Schorr wrote:
+> 3. The tcp server logic was designed to be single-threaded. If you try to read
+> input from a server socket, it waits for a client to connect, closes the
+> listener socket, and then processes I/O from the newly connected socket. If I
+> could start over, I'd change the TCP server mechanism to work something like
+> this:
+>
+> server = "/inet/tcp/8080/0/0"
+> while (1) {
+> # wait for a client to connect
+> server |& getline client
+> # at this point, client contains the handle for the connected socket,
+> # something like "/inet/tcp/8080/client-host/client-port", and the server
+> # socket should still be open to accept new connections!
+> while ((client |& getline x) > 0)
+> printf "client %s says: %s\n", client, x
+> close(client)
+> }
+>
+> If it had been done that way, it would be easy to use the new select
+> multiplexing mechanisms to service multiple connected clients at once.
+> Since it was not designed that way, I'm not sure how best to remedy this.
+> I guess we can add a function to open a socket to listen for connections,
+> and another to accept connections, but it may be painful to integrate this
+> into the existing socket I/O scheme. A separate BSD-style API would be
+> easy to implement, but it seems suboptimal to have 2 different approaches
+> to networking. Does anbody have any thoughts on how best to solve this?
+
+So if your goal is to retain compatibility with the existing TCP
+server design, then I'm not sure I have much to contribute. I guess another
+possibility would be to have a command-line option or environment option
+to control the TCP behavior to support both approaches. I think that
+the existing single-threaded TCP server implementation is too limited to
+be useful, so that's why I suspect that nobody is using it. It's fine for
+a simple demo, but how is it actually useful?
+
+Regards,
+Andy
+
+From arnold@skeeve.com Mon Apr 4 15:55:03 2016
+Return-Path: <arnold@skeeve.com>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ ti9.telemetry-investments.com
+X-Spam-Level:
+X-Spam-Status: No, score=-2.6 required=10.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW
+ autolearn=ham autolearn_force=no version=3.4.0
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 7006420C
+ for <schorr@schorr.telemetry-investments.com>;
+ Mon, 4 Apr 2016 15:55:03 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 670E6679; Mon, 4 Apr 2016 15:55:03 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from mxout2.netvision.net.il (mxout2.netvision.net.il [194.90.9.21])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 1085135A
+ for <aschorr@telemetry-investments.com>; Mon, 4 Apr 2016 15:55:02 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 1085135A
+Authentication-Results: sv3.telemetry-investments.com;
+ dmarc=none header.from=skeeve.com
+MIME-version: 1.0
+Content-transfer-encoding: 7BIT
+Content-type: text/plain; CHARSET=US-ASCII
+Received: from skeeve.com ([93.173.16.221]) by mxout2.netvision.net.il
+ (Oracle Communications Messaging Server 7.0.5.30.0 64bit (built Oct 22 2013))
+ with ESMTPSA id <0O5400KPJKNNHLB0@mxout2.netvision.net.il> for
+ aschorr@telemetry-investments.com; Mon, 04 Apr 2016 22:55:00 +0300 (IDT)
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+ by skeeve.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id u34JsxOx003565;
+ Mon, 4 Apr 2016 22:54:59 +0300
+Received: (from arnold@localhost) by skeeve.com (8.14.4/8.14.4/Submit)
+ id u34JswLO003564; Mon, 4 Apr 2016 22:54:58 +0300
+From: Aharon Robbins <arnold@skeeve.com>
+Message-id: <201604041954.u34JswLO003564@skeeve.com>
+Date: Mon, 04 Apr 2016 22:54:58 +0300
+To: aschorr@telemetry-investments.com, arnold@skeeve.com
+Subject: Re: [gawk-devel] UDP networking doesn't work (and some thoughts about
+ TCP)
+Cc: juergen.kahrs@googlemail.com, gawk-devel@gnu.org
+References: <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+ <20160314181753.GA30914@ti129.telemetry-investments.com>
+ <56EF0442.3050605@googlemail.com> <201603210354.u2L3swdW016469@skeeve.com>
+ <56F8334C.70808@googlemail.com> <20160327211003.GA17748@smok.internal>
+ <201603281225.u2SCPOeP000830@freefriends.org>
+ <57016807.1050104@googlemail.com> <201604040253.u342rYxg003329@skeeve.com>
+ <20160404132736.GA26934@ti129.telemetry-investments.com>
+In-reply-to: <20160404132736.GA26934@ti129.telemetry-investments.com>
+User-Agent: Heirloom mailx 12.5 6/20/10
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: None (sv3.telemetry-investments.com: domain of arnold@skeeve.com
+ does not designate permitted sender hosts)
+ receiver=sv3.telemetry-investments.com; client-ip=194.90.9.21;
+ envelope-from=<arnold@skeeve.com>; helo=mxout2.netvision.net.il;
+X-Spambayes-Classification: ham; 0.00
+Status: RO
+Content-Length: 2893
+Lines: 69
+
+Hi Andy.
+
+> My main concern is with how
+> tcp works. The current approach does not support the notion of listening for
+> and accepting connections. This was done for the sake of simplicity and
+> consistency with the udp approach, but it ignores the fact that serving TCP
+> stream connections is conceptually quite different than responding to UDP
+> packets. From an old email I sent about this:
+>
+> On Sun, Jun 30, 2013 at 05:19:24PM -0400, Andrew J. Schorr wrote:
+> > 3. The tcp server logic was designed to be single-threaded. If you try to read
+> > input from a server socket, it waits for a client to connect, closes the
+> > listener socket, and then processes I/O from the newly connected socket. If I
+> > could start over, I'd change the TCP server mechanism to work something like
+> > this:
+> >
+> > server = "/inet/tcp/8080/0/0"
+> > while (1) {
+> > # wait for a client to connect
+> > server |& getline client
+> > # at this point, client contains the handle for the connected socket,
+> > # something like "/inet/tcp/8080/client-host/client-port", and the server
+> > # socket should still be open to accept new connections!
+> > while ((client |& getline x) > 0)
+> > printf "client %s says: %s\n", client, x
+> > close(client)
+> > }
+> >
+> > If it had been done that way, it would be easy to use the new select
+> > multiplexing mechanisms to service multiple connected clients at once.
+> > Since it was not designed that way, I'm not sure how best to remedy this.
+> > I guess we can add a function to open a socket to listen for connections,
+> > and another to accept connections, but it may be painful to integrate this
+> > into the existing socket I/O scheme. A separate BSD-style API would be
+> > easy to implement, but it seems suboptimal to have 2 different approaches
+> > to networking. Does anbody have any thoughts on how best to solve this?
+>
+> So if your goal is to retain compatibility with the existing TCP
+> server design, then I'm not sure I have much to contribute.
+
+I think this is actually rather easy to solve, by introducing
+a new namespace:
+
+ server = "/inetserv/tcp/8080/0/0"
+ while (1) {
+ # wait for a client to connect
+ getline client < server
+ # at this point, client contains the handle for the connected socket,
+ # something like "/inet/tcp/8080/client-host/client-port", and the server
+ # socket should still be open to accept new connections!
+ while ((client |& getline x) > 0)
+ printf "client %s says: %s\n", client, x
+ close(client)
+ }
+ close(server)
+
+To read handles it's better (IMHO) to use a < redirection, since
+it's a one way communication.
+
+In terms of plans, let's use the new branch to remove UDP. Once that's
+merged into master, we can use it for further standalone experimentation
+until everyone is happy.
+
+Thoughts?
+
+Thanks,
+
+Arnold
+
+
+From gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org Sun Apr 10 18:46:09 2016
+Return-Path: <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-Original-To: schorr@schorr.telemetry-investments.com
+Delivered-To: schorr@schorr.telemetry-investments.com
+Received: from sv3.telemetry-investments.com (ti74 [192.168.58.74])
+ by ti129.telemetry-investments.com (Postfix) with ESMTP id 7887D2B2
+ for <schorr@schorr.telemetry-investments.com>; Sun, 10 Apr 2016 18:46:09 -0400 (EDT)
+Received: by sv3.telemetry-investments.com (Postfix)
+ id 664E169E; Sun, 10 Apr 2016 18:46:09 -0400 (EDT)
+Delivered-To: aschorr@telemetry-investments.com
+Received: from lists.gnu.org (lists.gnu.org [208.118.235.17])
+ by sv3.telemetry-investments.com (Postfix) with ESMTP id 060592D7
+ for <aschorr@telemetry-investments.com>; Sun, 10 Apr 2016 18:46:08 -0400 (EDT)
+DMARC-Filter: OpenDMARC Filter v1.3.1 sv3.telemetry-investments.com 060592D7
+Authentication-Results: sv3.telemetry-investments.com; dmarc=pass header.from=googlemail.com
+Authentication-Results: sv3.telemetry-investments.com;
+ dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=aTQiSxDP
+Received: from localhost ([::1]:36889 helo=lists.gnu.org)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>)
+ id 1apO7M-0002T2-6C
+ for aschorr@telemetry-investments.com; Sun, 10 Apr 2016 18:46:08 -0400
+Received: from eggs.gnu.org ([2001:4830:134:3::10]:51154)
+ by lists.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1apO7J-0002R3-Gl
+ for gawk-devel@gnu.org; Sun, 10 Apr 2016 18:46:06 -0400
+Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1apO7F-0004Qw-Hc
+ for gawk-devel@gnu.org; Sun, 10 Apr 2016 18:46:05 -0400
+Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:36088)
+ by eggs.gnu.org with esmtp (Exim 4.71)
+ (envelope-from <juergen.kahrs@googlemail.com>) id 1apO7F-0004Qo-As
+ for gawk-devel@gnu.org; Sun, 10 Apr 2016 18:46:01 -0400
+Received: by mail-wm0-x244.google.com with SMTP id l6so17394391wml.3
+ for <gawk-devel@gnu.org>; Sun, 10 Apr 2016 15:46:00 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=googlemail.com; s=20120113;
+ h=from:subject:references:cc:message-id:date:user-agent:mime-version
+ :in-reply-to:content-transfer-encoding;
+ bh=VkLJf1sHk+OHjE9jns5+CXEDvxb0njer6a/EoiBLmSM=;
+ b=aTQiSxDP+WVbYOEaZI2cY0GAUnASPjRMBOjNa/SetAbjszzsn3hthpx3Avte4URdpa
+ ANS46fhFohKpj1RDo9xULP5A+o1qxRfv2FdpeZ0yHRGXOzEOy3AET3opMNfAm7TpLvEl
+ zWZlOZ3Z1aluEGlfz1P0obD609sI9a8AxQ+CoWykZMA3DwSOYIzb6MyG2FKl0POTPn4a
+ Qew9g0733I3i27V7OUTRGe5KKbDSlgfmV88apM9llvUjrjb8PQN7V7rJN6q07rEg7gHz
+ MF/qu6vkLCIFVyj5yhFsUTb0UaHGCzbO5pxyWvwWnPO5xSyoRDFFBalDPfhzFyoag+1K
+ 6Wcg==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20130820;
+ h=x-gm-message-state:from:subject:references:cc:message-id:date
+ :user-agent:mime-version:in-reply-to:content-transfer-encoding;
+ bh=VkLJf1sHk+OHjE9jns5+CXEDvxb0njer6a/EoiBLmSM=;
+ b=F1LxtAST2fPG9Buv+iVNdi4y7ZGcgwJGSVzcVPSVjnOKya0XGuJnTDQ9fr6FHDtTmR
+ Ycb+N1QGIGfNHCusa+Ehjk9TzG/acOMAGZ7d/JU98elS5Gl08812GWAw/9UrcihKHe8/
+ QxVDDw2Gak95t4PTtcZfRwR4jLbMjlvc/7KPXnBephrxRJL+c+BcV1llnaIBuT3VLHS4
+ 5VDx25otV3JSFMbT6vADnW8VmZ302qBhkML/4xV4aTQJPrhYdihUq9+joUNpNZyP+4jN
+ aQGQx9LMIPTshVJ9/bvReWTzn82Ee7XC0gcH6FNSB+TcQylKMXQucb5v8a7wXMutL4Pm
+ ydzQ==
+X-Gm-Message-State: AD7BkJJdClPPZPXynqHXiriIe///0m2VkMapnhQOs2qWCEU0hKgHueCdtRi3a5NqxNFbbQ==
+X-Received: by 10.194.142.196 with SMTP id ry4mr20040110wjb.171.1460328360324;
+ Sun, 10 Apr 2016 15:46:00 -0700 (PDT)
+Received: from [192.168.0.11] (ip5f5ac83d.dynamic.kabel-deutschland.de.
+ [95.90.200.61]) by smtp.googlemail.com with ESMTPSA id
+ q62sm14309810wmg.12.2016.04.10.15.45.59 for <gawk-devel@gnu.org>
+ (version=TLSv1/SSLv3 cipher=OTHER);
+ Sun, 10 Apr 2016 15:45:59 -0700 (PDT)
+From: "=?UTF-8?Q?J=c3=bcrgen_Kahrs?=" <juergen.kahrs@googlemail.com>
+X-Google-Original-From: =?UTF-8?Q?J=c3=bcrgen_Kahrs?=
+ <Juergen.Kahrs@googlemail.com>
+References: <20160314173208.GA31194@smok.internal>
+ <56E6F8F9.5010908@googlemail.com>
+ <20160314181753.GA30914@ti129.telemetry-investments.com>
+ <56EF0442.3050605@googlemail.com>
+ <201603210354.u2L3swdW016469@skeeve.com>
+ <56F8334C.70808@googlemail.com> <20160327211003.GA17748@smok.internal>
+ <201603281225.u2SCPOeP000830@freefriends.org>
+ <57016807.1050104@googlemail.com>
+ <201604040253.u342rYxg003329@skeeve.com>
+ <20160404132736.GA26934@ti129.telemetry-investments.com>
+ <201604041954.u34JswLO003564@skeeve.com>
+Cc: gawk-devel@gnu.org
+Message-ID: <570AD7A6.1040800@googlemail.com>
+Date: Mon, 11 Apr 2016 00:45:58 +0200
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
+ Thunderbird/38.7.0
+MIME-Version: 1.0
+In-Reply-To: <201604041954.u34JswLO003564@skeeve.com>
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
+X-Received-From: 2a00:1450:400c:c09::244
+Subject: Re: [gawk-devel] UDP networking doesn't work (and some thoughts
+ about TCP)
+X-BeenThere: gawk-devel@gnu.org
+X-Mailman-Version: 2.1.21
+Precedence: list
+List-Id: "Internal discussion list for gawk development." <gawk-devel.gnu.org>
+List-Unsubscribe: <https://lists.gnu.org/mailman/options/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=unsubscribe>
+List-Archive: <https://lists.gnu.org/mailman/private/gawk-devel/>
+List-Post: <mailto:gawk-devel@gnu.org>
+List-Help: <mailto:gawk-devel-request@gnu.org?subject=help>
+List-Subscribe: <https://lists.gnu.org/mailman/listinfo/gawk-devel>,
+ <mailto:gawk-devel-request@gnu.org?subject=subscribe>
+Errors-To: gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+Sender: "gawk-devel"
+ <gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>
+X-SPF-Scan-By: smf-spf v2.0.2 - http://smfs.sf.net/
+Received-SPF: Pass (sv3.telemetry-investments.com: domain of gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org
+ designates 208.118.235.17 as permitted sender)
+ receiver=sv3.telemetry-investments.com; client-ip=208.118.235.17;
+ envelope-from=<gawk-devel-bounces+aschorr=telemetry-investments.com@gnu.org>; helo=lists.gnu.org;
+Status: RO
+Content-Length: 1427
+Lines: 31
+
+Am 04.04.2016 um 21:54 schrieb Aharon Robbins:
+> In terms of plans, let's use the new branch to remove UDP. Once that's
+> merged into master, we can use it for further standalone experimentation
+> until everyone is happy.
+>
+> Thoughts?
+
+I think Andrew is right with his fundamental disagreement.
+Andrew argued that the current TCP interface
+- is too simple (it cannot support anything but the most basic
+ kinds of applications)
+- is incompatible with the new "select" multiplexing mechanisms
+- could be replaced by a BSD-style API, perhaps under a
+ different namespace (as suggested by Arnold)
+
+This leads me to the following questions:
+1) Should an improved API retain compatibility with the old TCP API ?
+ Is the old TCP API worth the effort (is it such a good concept) ?
+2) Should any alternative API be implemented inside GAWK ?
+Anyone who wants to do serious work with TCP applications
+will probably answer with "NO" to these questions.
+ad 1: Stuffing parameters into an artificial path name helps
+ with setting static parameters, but cannot help with the
+ the dynamic behaviour (unforeseeable events and details)
+ of networking connections
+ad 2: A second networking API inside GAWK is indeed "suboptimal",
+ unless there was a proven brilliant API that only needed to be
+ taken over (I doubt there is)
+
+Perhaps the best place for a networking API is a separate extension.
+
+