GNU bug report logs -
#62990
30.0.50; UDP server closes connection upon receiving an empty packet
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hello again,
> Actually, it turned out to be a small change (on top of my previous
> patch)
>
> diff --git a/src/process.c b/src/process.c
> index e3233f5ad89..eca1441062d 100644
> --- a/src/process.c
> +++ b/src/process.c
> @@ -6305,7 +6305,13 @@ read_and_dispose_of_process_output (struct Lisp_Process *p, char *chars,
> coding->carryover_bytes);
> p->decoding_carryover = coding->carryover_bytes;
> }
> - if (SBYTES (text) > 0)
> + if (SBYTES (text) > 0
> +#ifdef DATAGRAM_SOCKETS
> + || (SBYTES (text) == 0
> + && 0 <= p->outfd
> + && DATAGRAM_CHAN_P (p->outfd))
> +#endif
> + )
> /* FIXME: It's wrong to wrap or not based on debug-on-error, and
> sometimes it's simply wrong to wrap (e.g. when called from
> accept-process-output). */
I somehow completely overlooked this second patch and can confirm that
with it, both the Emacs Lisp and Guile version of the server/client
behave identically. In other words, the UDP bug is completely fixed now.
I've done a cursory search on the web and did not find anything that
would send empty packets via UDP, so I do doubt it would break existing
code or need a opt-out setting.
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 1 year and 157 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.