Re: [courier-users] Re: Courier 20031005
On Sun, 5 Oct 2003, Gordon Messmer wrote: Jon Nelson wrote: If I may, I would suggest that neither patch is correct. You normally want to call connect *once*, and then select on the file descriptor. connect() doesn't return a file descriptor in all cases. This patch addresses the case where connect() returns -1, and sets errno to EAGAIN. This happens when the socket you're trying to connect to is still listening, but its listen queue is full. This happens sometimes when a storm of courier's processes try to connect to a filter before that filter gets a chance to accept the connections. Oh, yeah. Gotcha! Nice catch! At the end of your proscribed time limit, or earlier, the file descriptor will be definitively connected, failed to connect, or still trying. Sam's patch is much closer, IMO, but still not quite correct, because the patch calls connect multiple times. It only calls connect again if connect didn't return a file descriptor. My mistake, and thanks for correcting me in a courteous and police fashion, which I do appreciate. -- Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep. Jon Nelson [EMAIL PROTECTED] C and Python Code Gardener --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: Courier 20031005
Jim Gifford writes: Do you want me to test to see if it fixes the makealiases problem I had with DB 4.1.25??? You can try it, but I doubt it. DB 4.1.25 looks to be plain buggy. pgp0.pgp Description: PGP signature
Re: [courier-users] Re: Courier 20031005
On Sun, 5 Oct 2003, Sam Varshavchik wrote: Jim Gifford writes: Do you want me to test to see if it fixes the makealiases problem I had with DB 4.1.25??? You can try it, but I doubt it. DB 4.1.25 looks to be plain buggy. Do you mean buggy with courier or just plain buggy everywhere? I've not heard this assertion by anybody else, and some distros (with many good developers backing up their decisions) use db 4.1.25 Can you give specifics? -- Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep. Jon Nelson [EMAIL PROTECTED] C and Python Code Gardener --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: Courier 20031005
Jon Nelson writes: On Sun, 5 Oct 2003, Sam Varshavchik wrote: Jim Gifford writes: Do you want me to test to see if it fixes the makealiases problem I had with DB 4.1.25??? You can try it, but I doubt it. DB 4.1.25 looks to be plain buggy. Do you mean buggy with courier or just plain buggy everywhere? I've not heard this assertion by anybody else, and some distros (with many good developers backing up their decisions) use db 4.1.25 Can you give specifics? http://marc.theaimsgroup.com/?l=courier-usersm=106427731909556w=2 pgp0.pgp Description: PGP signature
Re: [courier-users] Re: Courier 20031005
On Sun, 5 Oct 2003, Sam Varshavchik wrote: Gordon Messmer writes: Sam Varshavchik wrote: Download: http://www.courier-mta.org/download.php Any chance of this patch (or something similar) making it in before the next release? http://phantom.dragonsdawn.net/~gordon/courier-patches/cdfilters-EAGAIN.patch This is not correct. No matter what you're trying to do, throwing away the return code from connect() is patently wrong. This may work on your particular operating system or revision, but it's a sure bet it's not going to work for everyone. I believe that the following patch, instead, is the correct way to do this. If I may, I would suggest that neither patch is correct. You normally want to call connect *once*, and then select on the file descriptor. At the end of your proscribed time limit, or earlier, the file descriptor will be definitively connected, failed to connect, or still trying. Sam's patch is much closer, IMO, but still not quite correct, because the patch calls connect multiple times. I could be wrong, but I've never seen it used like this. -- Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep. Jon Nelson [EMAIL PROTECTED] C and Python Code Gardener --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Courier 20031005
On Sun, 5 Oct 2003, Sam Varshavchik wrote: Jon Nelson writes: On Sun, 5 Oct 2003, Sam Varshavchik wrote: Jim Gifford writes: Do you want me to test to see if it fixes the makealiases problem I had with DB 4.1.25??? You can try it, but I doubt it. DB 4.1.25 looks to be plain buggy. Do you mean buggy with courier or just plain buggy everywhere? I've not heard this assertion by anybody else, and some distros (with many good developers backing up their decisions) use db 4.1.25 Can you give specifics? http://marc.theaimsgroup.com/?l=courier-usersm=106427731909556w=2 OK, that's a link (which I was familiar with anyway), but it doesn't explain how *every* other piece of software that I've used (which uses db 4.1.25) works successfully, including various versions of Perl, Python, and may C programs. Maybe something is buggy about how courier is using db 4.1.25, but I've seen nothing either here or elsewhere that suggests that there are issues with db 4.1.25 that aren't solved by applying the patches that SleepyCat already provides (and which, BTW, Debian also patches their's with). Just FYI, I still prefer gdbm but I also prefer facts or strong evidence to weak supposition, and that's unfortunately what I see here. -- Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep. Jon Nelson [EMAIL PROTECTED] C and Python Code Gardener --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Courier 20031005
Jon Nelson wrote: If I may, I would suggest that neither patch is correct. You normally want to call connect *once*, and then select on the file descriptor. connect() doesn't return a file descriptor in all cases. This patch addresses the case where connect() returns -1, and sets errno to EAGAIN. This happens when the socket you're trying to connect to is still listening, but its listen queue is full. This happens sometimes when a storm of courier's processes try to connect to a filter before that filter gets a chance to accept the connections. At the end of your proscribed time limit, or earlier, the file descriptor will be definitively connected, failed to connect, or still trying. Sam's patch is much closer, IMO, but still not quite correct, because the patch calls connect multiple times. It only calls connect again if connect didn't return a file descriptor. --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Courier 20031005
Sam Varshavchik wrote: Gordon Messmer writes: Any chance of this patch (or something similar) making it in before the next release? http://phantom.dragonsdawn.net/~gordon/courier-patches/cdfilters-EAGAIN.patch This is not correct. No matter what you're trying to do, throwing away the return code from connect() is patently wrong. This may work on your particular operating system or revision, but it's a sure bet it's not going to work for everyone. I believe that the following patch, instead, is the correct way to do this. That's cool. I've hoping that you'd look in to this particular case. Thank you. --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users