delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:message-id:date:from:mime-version:to:subject | |
:references:in-reply-to:content-type:content-transfer-encoding; | |
q=dns; s=default; b=d/JiPhkymQueac5N1pHE1Fps+2maq3fLKg04ojr2KCn | |
syrY+EmSNv80LA7rBjkhNIV5lqshh/l/JOslu/acX+7zH90vKwfru0BJQ3+pgeq4 | |
W1x5TKnAxXsZTrLHNGjocKocjTjgNlA0hNi6zAgaMVCpiVdrbEXg/4TvV6n+cuHQ | |
= | |
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:message-id:date:from:mime-version:to:subject | |
:references:in-reply-to:content-type:content-transfer-encoding; | |
s=default; bh=7yTkZgjWLo0y/tS1wWtB++Mz6PQ=; b=STD0hICNL4IYkjWgf | |
O3QHcneRp3LeO4PYrTuuUokBaVUr6kL0Q+rwwdX4OEcRI7sbxAmk4Hon9wEcEMcC | |
2989Up7+GQUSVEdbkhUMj/K+UT9dqj3YEC4y1sB1CT/iJsWrC4ujf4bT42ZU8ZH3 | |
T3mH5Z1YcTi2k83jZaAx+zDPss= | |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Authentication-Results: | sourceware.org; auth=none |
X-Virus-Found: | No |
X-Spam-SWARE-Status: | No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=ham version=3.3.2 |
X-HELO: | mailout06.t-online.de |
Message-ID: | <5424259D.2090304@t-online.de> |
Date: | Thu, 25 Sep 2014 16:24:29 +0200 |
From: | Christian Franke <Christian DOT Franke AT t-online DOT de> |
User-Agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26.1 |
MIME-Version: | 1.0 |
To: | cygwin AT cygwin DOT com |
Subject: | Re: connect() hangs on a listen()ing AF_UNIX socket |
References: | <53F61B70 DOT 2020600 AT t-online DOT de> <20140821164402 DOT GB21065 AT calimero DOT vinschen DOT de> <53F6450C DOT 3070007 AT t-online DOT de> <20140822093923 DOT GA12878 AT calimero DOT vinschen DOT de> <53F78CB1 DOT 9080406 AT t-online DOT de> <20140822201622 DOT GM32314 AT calimero DOT vinschen DOT de> <53FCD9EC DOT 1080703 AT t-online DOT de> <20140826205643 DOT GD5740 AT calimero DOT vinschen DOT de> |
In-Reply-To: | <20140826205643.GD5740@calimero.vinschen.de> |
X-IsSubscribed: | yes |
Corinna Vinschen wrote: > On Aug 26 21:03, Christian Franke wrote: >> Corinna Vinschen wrote: >>> Sounds like a nice idea. We should try that. I'm just not sure how >>> much time I have left to work on this before my vaca next month. Do you >>> have fun to look into that? We have waited so long for postfix, I guess >>> a couple more weeks won't really hurt. >> OK, will try that > Cool! Don't hesitate to discuss implementation details on the > cygwin-developers list. Unfortunately, a very first prototype did not work. If receiving of secret+cred is delayed until first send()/recv(), postfix hangs in first send() after the connect(). During startup, the postfix master calls connect() and first client send() before corresponding server accept() is called. So I decided to provide a intermediate solution for now, see: https://cygwin.com/ml/cygwin-patches/2014-q3/msg00015.html For the long term, this approach may work or not: Remove the complete handshake over TCP. Maintain a table of current TCP connections in the socket "file". The table contains pid, TCP port and credentials for the server which did the (first) listen() call and for all connected clients. Some hashes could be added to check for validity. >> Postfix apparently pushes Cygwin to its limits. With a test cygwin1.dll >> where the secret+cred exchange is fully disabled, postfix starts up but >> queuing of mail fails. >> >> This is because fchmod() is called on a file rename()d after open(): >> >> fd = open("tempfile", ., 0600); >> // use fd's inode number and current time to create unique "queuefile". >> rename("tempfile", "queuefile"); >> write(fd, "SOME MAIL....", .); >> fchmod(fd, 0700); // fails with ENOENT on Cygwin (because it does a >> chmod("tempfile",.)?) >> close(fd); > I fixed that in CVS (and I'm just generating a snapshot). Works with postfix. Thanks, Christian -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |