cfe+@andrew.cmu.edu (Craig F. Everhart) (04/21/89)
You're seeing a misleading error message. ``bad file number'' is a
representation of what was left in errno (EBADF) after an SMTP connection went
south; the connection is closed, but sendmail doesn't know it, so it does a
``close()'' anyway, leaving bad stuff in the global variable ``errno''. An
ostensible fix for this was posted to comp.mail.sendmail about a month ago,
involving saving and restoring the errno value across a pair of close()
operations.
Unfortunately, that errno-clobber is masking the original errno value, which is
doubtless something like ETIMEDOUT or ECONNREFUSED. Too bad your error-handler
is interpreting the EBADF as a permanent/persistent error rather than a
transient one.
Once you find out what the network problem is, you'll have to deal with your
network/gateway support to find out why you can't get to some hosts.
Craig