Andreas Gustafsson
fd5847ef09
828. [bug] The errno value from recvfrom() could be overwritten
...
by logging code. [RT #1293 ]
2001-05-14 18:20:03 +00:00
Andreas Gustafsson
5e194abb5b
814. [bug] Socket objects left over from accept() failures
...
were incorrectly destroyed, causing corruption
of socket manager data structures.
813. [bug] File descriptors exceeding FD_SETSIZE were handled
badly. [RT #1192 ]
2001-04-26 23:45:55 +00:00
Andreas Gustafsson
0dc1e14537
alphabetized includes
2001-04-24 18:40:07 +00:00
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