This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: More exim, and fcntl lock problems

Hallo Pierre,

Am 2001-11-30 um 22:08 schriebst du:

> Coincidentally with Gerrit Haase in
> last weekend I also got to compile exim (a mail
> transfer agent) and qpopper (a pop server).


> 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 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
> 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 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:-)


Gerrit P. Haase                  
This mail was delivered with Exim hosted on Cygwin;)

Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]