2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-24 11:08:45 +00:00

196 Commits

Author SHA1 Message Date
Andreas Gustafsson
7900390a52 Previous change turned invalid peer address returns from accept()
into hard errors - they should be soft errors
2001-04-10 21:48:27 +00:00
Andreas Gustafsson
a84cfaa3f2 The bug fix in socket.c 1.189 was less than ideal: if a socket
got wedged in a state where accept() always returns EBADF, the server would loop calling
internal_accept() repeatedly.  Implemented an alternative fix where a hard
error in accept() causes an event with a nonzero result code to be sent, and
the new socket object to be freed
2001-04-10 21:38:33 +00:00
Brian Wellington
2eb3dafdcf Add the socket flag ISC_R_NORETRY, which makes the socket code treat
a soft error as a hard error on send (that is, not retry it).  It also
modifies the code calling sendmsg() to retry on EINTR.
2001-03-06 01:23:03 +00:00
Andreas Gustafsson
c05eeed3c9 754. [bug] Certain failure returns from sendto() could
cause the server to retry the transmission
                        indefinitely. [RT #902]
2001-02-24 23:51:09 +00:00
Brian Wellington
1f7f8d5c07 Add isc_socket_sendto2() and isc_socket_recv2(). These versions take
a partially constructed event and flags.  The flags can include
ISC_SOCKFLAG_IMMEDIATE, which means that if the operation completes, the
event is filled in and not sent.
2001-02-12 21:43:17 +00:00
Brian Wellington
1938554ccc consolidate duplicated code 2001-02-08 00:04:11 +00:00
Mark Andrews
df0bcff664 extend change #727 to check returned address length for zero. 2001-02-07 23:40:28 +00:00
Andreas Gustafsson
9a3ee1570d "hard" errors in accept() were handled really badly. They were logged
twice, and the socket object for the new socket was never destroyed,
causing the server to hang on exit (if multithreaded) or dump core on exit
(if singlethreaded).  Now the only difference between "hard" and "soft" errors
is that the latter are not logged.
2001-02-06 23:43:01 +00:00
Andreas Gustafsson
8dab78b566 as a workaround for various OS bugs, do not INSIST() that
accept() returns a valid peer address; instead just log an ugly error message
and continue if the peer address is left unchanged or insane by accept()
[RT #809]
2001-02-06 23:04:02 +00:00
Brian Wellington
6f9786fdcf Consolidate duplicated code in isc_socket_sendto[v] and isc_socket_recv[v]. 2001-01-27 06:41:36 +00:00
Brian Wellington
562f162981 remove unused labels 2001-01-27 01:16:09 +00:00
Brian Wellington
dd66e6306b Remove isc_socket/[send|recv]mark, which were never used. 2001-01-26 23:17:26 +00:00
Damien Neil
dfb0717d75 - Receive and send operations on UDP sockets no longer need to acquire
the socket lock.  (Assuming the operation succeeds immediately, and doesn't
need to be queued.)

- Communications with the watcher thread tweaked to reduce the need for
locking.
2001-01-25 22:25:10 +00:00
Brian Wellington
1e3bc7eaeb only use data from accept() if accept succeeds. 2001-01-23 21:07:12 +00:00
Andreas Gustafsson
b346ae570d style 2001-01-23 20:45:31 +00:00
Brian Wellington
e90441d922 INSIST that accept() returns a socket of the correct protocol family. Also
assign the "pf" field in the new socket.
2001-01-23 20:42:46 +00:00
Andreas Gustafsson
90bffb134e make_nonblock() errors were reported twice, and one of the instances
used the wrong errno value [RT #640]
2001-01-11 18:57:23 +00:00
Brian Wellington
499b34cea0 copyright update 2001-01-09 22:01:04 +00:00
David Lawrence
801dceea23 Revert my last change. It was stupid, which I if I had been thinking clearly
I would have seen *before* I commited anything.  So, include isc/thread.h,
isc/mutex.h and isc/condition.h even if ISC_PLATFORM_USETHREADS is not defined.

(What caused me to bother with this at all was a problem that I resolved
a few days ago by fixing configure ... though now that I think about it,
that probably means there is some other latent problem with inconsistent
definitions that could maybe be handled better.  I'll look into it more
later, AFTER vacation.)
2000-12-26 21:45:08 +00:00
David Lawrence
bdcae3560b Only include isc/thread.h, isc/mutex.h and isc/condition.h if
ISC_PLATFORM_USETHREADS is defined.
2000-12-26 21:12:25 +00:00
Brian Wellington
a644e87df7 Move the msgcat stuff into socket_log(), to avoid unnecessary calls to
isc_msgcat_get() and speed things up.
2000-12-19 20:35:37 +00:00
Andreas Gustafsson
0833ef954a when code is duplicated (which it shouldn't be), it should at
least be duplicated consistently
2000-12-19 19:19:45 +00:00
Brian Wellington
17aac384e0 595. [port] On Linux 2.2, socket() returns EINVAL when it
should return EAFNOSUPPORT.  Work around this.
2000-12-06 01:53:38 +00:00
David Lawrence
9cd6d409b7 first pass at using isc_msgcat_get for message strings in libisc 2000-12-06 00:30:32 +00:00
Andreas Gustafsson
20e1ac3376 removed unused variable poke_needed 2000-11-22 23:48:14 +00:00
Andreas Gustafsson
0d8fe6131e treat EHOSTDOWN (if defined) the same as EHOSTUNREACH rather than as an
unexpected error [RT #215]
2000-11-17 21:04:12 +00:00
Brian Wellington
c0150ad6aa Don't call UNEXPECTED_ERROR if setsockopt(SO_TIMESTAMP) returns ENOPROTOOPT. 2000-10-12 00:35:49 +00:00
Brian Wellington
e0521dac5d Not all of the setsockopt failures logged the reason for failure. 2000-10-07 00:16:50 +00:00
Brian Wellington
0d89afffb2 Make sure #else and #endif for ISC_PLATFORM_USETHREADS are marked as such. 2000-09-28 21:31:08 +00:00
Michael Graff
08ad332552 put a break in the switch 2000-09-21 21:40:29 +00:00
Michael Graff
e710c2162a check for more expected error values in connect() case 2000-09-21 21:30:27 +00:00
Michael Graff
1deaf52c98 kill persistent errors. Always retry the I/O now. 2000-09-07 01:59:57 +00:00
Michael Graff
e558faa60b make unreachable errors on unconnected UDP sockets be soft errors, rather than hard ones. 2000-09-06 22:55:33 +00:00
Andreas Gustafsson
04cec6dc5b comment style 2000-08-31 17:10:58 +00:00
Mark Andrews
7523838d84 make error message more informative. 2000-08-31 13:38:55 +00:00
Brian Wellington
efafe4fa7f Non-threaded socket manager. 2000-08-29 23:58:17 +00:00
Brian Wellington
a44038277a MOre calls to DESTROYLOCK 2000-08-26 01:31:56 +00:00
Brian Wellington
569c05295c removed a chunk of dead debugging code. 2000-08-25 22:07:52 +00:00
Mark Andrews
44215b932d 392. [func] Add ISC_R_FAMILYNOSUPPORT. Returned when OS does
not support the given address family requested.

 391.   [clarity]       ISC_R_FAMILY -> ISC_R_FAMILYMISMATCH.
2000-08-15 01:43:38 +00:00
Andreas Gustafsson
a3e7b6450e style 2000-08-10 23:42:17 +00:00
Brian Wellington
5e989d1777 If isc_socket_bind tries to bind to a socket with a different address
family than the address specified, return a meaningful error.
2000-08-10 23:11:12 +00:00
Brian Wellington
3d37f10b91 On send, treat EPERM like ISC_R_HOSTUNREACH. send() seems to return EPERM
on Linux when firewall rules block the send.
2000-08-10 21:47:46 +00:00
Brian Wellington
cd7ffa4c12 381. [bug] Check for IPV6_RECVPKTINFO and use it instead of
IPV6_PKTINFO if found. [RT #229]
2000-08-10 00:05:45 +00:00
David Lawrence
40f53fa8d9 Trailing whitespace trimmed. Perhaps running "perl util/spacewhack.pl in your
own CVS tree will help minimize CVS conflicts.  Maybe not.
Blame Graff for getting me to trim all trailing whitespace.
2000-08-01 01:33:37 +00:00
David Lawrence
15a4474541 word wrap copyright notice at column 70 2000-07-27 09:55:03 +00:00
Andreas Gustafsson
0072e42780 use isc_log_wouldlog() in manager_log() 2000-07-13 01:38:40 +00:00
Brian Wellington
2935e25e99 Removed debugging code that is no longer useful. 2000-07-13 01:22:56 +00:00
Brian Wellington
febc974d0f Use isc_log_wouldlog() to avoid calling strerror() whenever possible. 2000-07-13 01:13:53 +00:00
Andreas Gustafsson
211ac47e07 use isc_log_wouldlog() to avoid unnecessary formatting work
when the debug level does not warrant logging
2000-07-13 00:25:38 +00:00
Michael Graff
401bea7527 set connected and bound when the connect completes 2000-07-10 19:40:06 +00:00