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 From: "Gerrit P. Haase" Organization: Esse keine toten Tiere To: Stipe Tolj Date: Fri, 28 Sep 2001 23:53:40 +0200 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Subject: Re: qmail-1.03: any volunteers?! Reply-to: cygwin AT cygwin DOT com CC: cygwin AT cygwin DOT com Message-ID: <3BB50D84.20049.858F0A@localhost> In-reply-to: <3BB488F9.7B346FA6@wapme-systems.de> X-mailer: Pegasus Mail for Win32 (v3.12cDE) X-Hops: 1 X-Sender: 320081107336-0001 AT t-dialin DOT net 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/