Subject: Re: qmail-1.03: any volunteers?!
From: "Gerrit P. Haase" <[email-masked]>
To: Stipe Tolj <[email-masked]>
Cc: [email-masked]
Date: Fri, 28 Sep 2001 23:53:40 +0200

Stipe Tolj schrieb am 2001-09-28, 16:28:

>>  #ifdef HASMKFIFO
>>  int fifo_make(fn,mode) char *fn; int mode; { return mkfifo(fn,mode); }
>> +#elif __CYGWIN__
>> +int fifo_make(fn,mode) char *fn; int mode; { return mode; }
>>  #else
>>  int fifo_make(fn,mode) char *fn; int mode; { return mknod(fn,S_IFIFO | mode,0); }
>>  #endif
>> 
>> You've changed it that way, is that sufficient?
>
>I consider not -- now as you ask. But I suppose it was one of the
>"first shot" aspects to get everything to compile and build and see
>what limitations are still threre.
>
>Have you cecked for what the return value of int fifo_make() is used
>and it the change would have any impact?
>
>Stipe

There is a fifo generated (normally).  Later this is a/the trigger, DJB 
uses these triggers for the different programs to communicate. If there 
is a positive return value, but no fifo which can be triggered, then there 
is an error ('No such file' or s.th. like this). If there is no return value,
then the error is earlier. ('Cannot generate fifo' or s.th. like this).

I tried once to build nullmailer, which is an improved version of bernsteins
version, only to shoot some mail off a workstation to the real server, acts
like a little smtpserver, only for sending, needs a big brother MTA at 
another machine. 
Well it worked, the problem was, there was no trigger, no fifo. If you send
an email to the smtpd, it writes this down in a directory and triggers the 
fifo. If the fifo is read by the transport program (inject?) and if there is 
a notice, it will look in the dir and send off what is there.
To get it up and running, I generated a file in the trigger dir so 's.th.'
was found, the program thinks there is a fifo (looks like a file), and don't
report errors, but it works not like a trigger.  The inject tool is eating
up the cpu because it always thinks the fifo is triggered.
The mail is sent off, of course. I built the injector with a sleep of some 
seconds so it doesn't burn my pentium, but this is not the solution.
Then it does nothing else as ssmtp with the exception you can connect it
with every mail client you want.  I used it as smtpd which writes mails in
some dir, now I could take cron and ssmtp to send them off, which is not the
ugliest solution, but also not so smart as to have a daemon running which sents 
off the mail direct instead of calling ssmtp.

Best thing that makes sense here is to find a way to substitute mkfifo, 
or the functionality it provides, Corinna said s.th. with socket calls 
would be possible.

I thought a file would be sufficient, you writ s.th in a file. The other 
program looks at this file if there is s.th written. But there will always 
be problems with locking...
The fifo's is the only thing fast enough to get off 500000 mails a day on
an old P90 box with 16MB RAM (only possible with linux:)! 

That would be a great thing for cygwin. I have no idea (unfortunately), but i 
think a 'pseudo trigger' would be nice, s.th. that looks like a fifo (a file?)
and that acts like a fifo (-> socket). You put s.th in at one end which waits
until someone pulls it out at the other end.

There are also named pipes at in windows, maybe they can be assimilated?
(Are we Borg enough to assimilate?)

Gerrit

-- 
=^..^=

--
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/