https://bugs.exim.org/show_bug.cgi?id=2784
--- Comment #9 from Lena <[email protected]> --- Created attachment 1403 --> https://bugs.exim.org/attachment.cgi?id=1403&action=edit revert wb In both cases shutdown=yes and shutdown=no, after sending the data, Exim 4.94.2 sends an additional packet with flag F and length 0. Telnet doesn't send such packet. Exim 4.93 expand.c : /* Now we need to read from the socket, under a timeout. The function that reads a file can be used. */ if (!do_tls) fp = fdopen(cctx.sock, "rb"); Exim 4.94 lookups/readsock.c : /* Now we need to read from the socket, under a timeout. The function that reads a file can be used. If we're using a stdio buffered read, and might need later write ops on the socket, the stdio must be in writable mode or the underlying socket goes non-writable. */ if (!cctx->tls_ctx) fp = fdopen(cctx->sock, lf.do_shutdown ? "rb" : "wb"); Can someone explain when/how/why we might need later write ops on the socket (after the data from the second argument of "${readsocket" was sent)? Exim 4.94.2 - doesn't work: [root@lena ~]# exim -be '${readsocket{inet:i.ua:80}{GET / HTTP/1.0\r\nHost: i.ua\r\n\r\n}{4s:shutdown=yes}{\n}{socket failure}}' [root@lena ~]# exim -be '${readsocket{inet:i.ua:80}{GET / HTTP/1.0\r\nHost: i.ua\r\n\r\n}{4s:shutdown=no}{\n}{socket failure}}' [root@lena ~]# After I reverted this change (patch attached), it works: [root@lena ~]# exim -be '${readsocket{inet:i.ua:80}{GET / HTTP/1.0\r\nHost: i.ua\r\n\r\n}{4s:shutdown=yes}{\n}{socket failure}}' [root@lena ~]# exim -be '${readsocket{inet:i.ua:80}{GET / HTTP/1.0\r\nHost: i.ua\r\n\r\n}{4s:shutdown=no}{\n}{socket failure}}' HTTP/1.1 301 Moved Permanently Date: Mon, 22 Nov 2021 13:13:56 GMT Server: Apache/1.3.42 (Unix) mod_deflate/1.0.21 Location: https://www.i.ua Connection: close Content-Type: text/html; charset=windows-1251 [root@lena ~]# -- You are receiving this mail because: You are on the CC list for the bug. -- ## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim details at http://www.exim.org/ ##
