Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Sat, 1 Dec 2001 12:12:57 +0100 From: "Gerrit P. Haase" X-Mailer: The Bat! (v1.53t) Business Reply-To: "Gerrit P. Haase" Organization: Esse keine toten Tiere X-Priority: 3 (Normal) Message-ID: <53570659865.20011201121257@familiehaase.de> To: "Pierre A. Humblet" CC: cygwin AT cygwin DOT com Subject: Re: More exim, and fcntl lock problems In-Reply-To: <3C07F55F.5B2E669D@ieee.org> References: <3C07F55F DOT 5B2E669D AT ieee DOT org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Sender: 320081107336-0001 AT t-dialin DOT net Hallo Pierre, Am 2001-11-30 um 22:08 schriebst du: > Coincidentally with Gerrit Haase in > http://sources.redhat.com/ml/cygwin/2001-11/msg01465.html > last weekend I also got to compile exim (a mail > transfer agent) and qpopper (a pop server). Great! > Both compile fine with relatively minor changes. For > exim I wrote a routine to discover the local interfaces > and (instead of relying on bind) a simple synchronous stub > resolver (that could perhaps later interface directly to > the native caching resolver in Windows 2000 etc...). > Contrary to Gerrit I didn't need to provide flock(). > Exim works somewhat, e.g. it can send mail. I took the flock emulation from the ruby sources (locking is in fact based on fcntl(). The stub resolver is interesting, we need s.th. like this to include it in cygwin. I have problems with accessing /etc/services to lookup the port for the smtp-service, in fact Exim isn't able to read it, so I need tto set 'port=25' in the config file AND need to start the daemon with '-oX 25'. > That's where the bad news start, I tried Win98 and NT. > 1) Under Win98 I hit issues that were traced to gdbm > emulation of ndbm on FAT > http://cygwin.com/ml/cygwin/2001-11/msg01793.html > That looks hopeless to me. Please tell me I am wrong! gdbm on FAT filesystems seems to be not usable without tweaking. I used db to compile, this works well. I would really like to have a 'complete' port of Berkeley DB in the dist (though I don't know how it works together with Win98). > 2) On WinNT, local deliveries fail on line 765 of transport.c > while ((len = read(deliver_datafile, deliver_in_buffer, > I reproduced the situation in the attached try.c > A parent process opens and locks a file (using fcntl), > and then forks a child. It turns out that the child cannot > read the file. Is it a Cygwin bug (latest everything)? How does fork work? Isn't it the child which gets a new PID and a file that is locked by PID 1 then PID 2 cannot access it? I really don't know much about locking and forking so excuse me if I get s.th. wrong here. It is no permission problem? > I also hit a couple of minor issues, e.g. pathnames starting > with multiple / (fixed in os.c), and the fact that Windows > pathnames can contain $ (unfortunately my home directory is > //admin4/phumblet$). Exim tries to expand them, as sh would > (no fix yet). Bug found by accident;) > I will gladly send my versions of os.c and os.h to willing > experimenters. I posted my patch, I would like to see your patch too:-) Ciao, Gerrit P. Haase mailto:gp AT familiehaase DOT de -- =^..^= This mail was delivered with Exim hosted on Cygwin;) -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/