Commit graph

229 commits

Author SHA1 Message Date
Mark Andrews
b4a3336bb2 1283. [func] Use "dataready" accept filter if available. 2003-08-15 01:16:06 +00:00
Mark Andrews
69f20fa680 1247. [bug] Don't reset the interface index for link/site local
addresses. [RT #2576]
2003-08-14 04:31:55 +00:00
Mark Andrews
e1ccb64c24 1146. [func] Allow IPV6_IPV6ONLY to be set/cleared on a socket if
supported by the OS by a new function
                        isc_socket_ipv6only().
2003-08-08 06:50:17 +00:00
Mark Andrews
c1df871a18 silence compiler warnings (HPUX/11i) 2003-07-23 06:57:59 +00:00
Mark Andrews
f4d86cfcea update_copyrights 2003-07-22 04:03:54 +00:00
Mark Andrews
6fd5b7a222 1416. [bug] Empty node should return NOERROR NODATA, not NXDOMAIN.
[RT #4715]
2003-05-14 05:47:24 +00:00
Mark Andrews
fed111e907 1437. [bug] Leave space for stdio to work in. [RT #5033] 2003-05-13 04:53:09 +00:00
Mark Andrews
a7efbe70e7 merge 9.2.2 back into v9_2 2003-03-06 04:38:29 +00:00
Mark Andrews
c6ce103cf8 reviewed: bwelling
1334.   [port]          Handle ECONNRESET from sendmsg() [unix].
2002-07-11 04:04:26 +00:00
Mark Andrews
a968e6b0b1 reviewed: bwelling
1317.   [port]          linux: make handling EINVAL from socket() no longer
                        conditional on #ifdef LINUX.
2002-07-11 03:43:19 +00:00
Mark Andrews
dd6234eb00 reviewed: bwelling
1245.  [bug]           Treat ENOBUFS, ENOMEM and ENFILE as soft errors for
                       accept().
2002-07-10 00:24:46 +00:00
Mark Andrews
f324e3cfdf reviewed: bwelling
1241.   [bug]           Drop received UDP messsages with a zero source port
                        as these are invariably forged. [RT #2621]
2002-07-10 00:04:57 +00:00
Mark Andrews
034804a048 pullup:
1231.   [port]          HPUX 11.11 recvmsg() can return spurious EADDRNOTAVAIL.
2002-03-20 20:56:44 +00:00
Mark Andrews
73d7583d98 update copyrights 2002-02-08 03:57:47 +00:00
Mark Andrews
8a044e464b pullup:
1081.   [bug]           Multicast queries were incorrectly identified
                        based on the source address, not the destination
                        address.
(from JINMEI Tatuya)
2002-01-24 23:22:25 +00:00
Andreas Gustafsson
4c7c397275 1183. [bug] Handle ENOSR error when writing to the internal
control pipe. [RT #2395]
2002-01-23 02:35:56 +00:00
Andreas Gustafsson
d7224e6672 pullup:
reference after free in error path.
2002-01-22 23:17:44 +00:00
Mark Andrews
2bffec87ac pullup:
Out of date comment.
2002-01-22 05:00:30 +00:00
Mark Andrews
014f9142bc pullup:
1114.   [port]          Ignore more accept() errors. [RT #2021]
2001-11-10 03:03:44 +00:00
Andreas Gustafsson
b5c8773673 pullup:
theoretically potential file descriptor leak.
2001-11-09 20:21:41 +00:00
Andreas Gustafsson
5a78ccdf1f pullup:
1068.   [bug]           errno could be overwritten by catgets(). [RT #1921]
1066.   [bug]           Provide a thread safe wrapper for strerror().
                        [RT #1689]
(Also some changes to configure.in, config.h.in, and acconfig.h that were
necessary to allow config.h.in to be correctly regenerated with the
HAVE_STRERROR definition needed by 1066.)
2001-10-22 23:28:26 +00:00
Mark Andrews
5e8c385e64 pullup:
1004.  [port]          Deal with recvfrom() returning EHOSTDOWN. [RT #1770]
2001-09-19 02:37:21 +00:00
Mark Andrews
2c0b26955e 961. [bug] Tried to use a IPV6 feature when ISC_PLATFORM_HAVEIPV6
was not defined.  [RT #1482]
2001-08-16 07:27:48 +00:00
Mark Andrews
8ff4edd14e silence format warning: remove unused arg. 2001-08-12 00:12:14 +00:00
Andreas Gustafsson
76c8294c81 format string bugs and improved format string checking [RT #1578] 2001-08-08 22:54:55 +00:00
Andreas Gustafsson
aa0dc8d920 934. [port] Deal with systems where accept() spuriously returns
ECONNRESET.
2001-07-15 22:50:24 +00:00
Andreas Gustafsson
e76d4c91bf coding style 2001-07-09 21:06:30 +00:00
Brian Wellington
224e84bc0e misc. stuff related to [RT #1293] 2001-06-07 00:21:53 +00:00
David Lawrence
92ef1a9b9d use ISC_MAGIC for all magic numbers, for our friends in EBCDIC land 2001-06-04 19:33:39 +00:00
Andreas Gustafsson
740ae0808f when returning a socket error, use isc__errno2result() instead
of always returning ISC_R_UNEXPECTED
2001-05-14 23:58:33 +00:00
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