Commit Graph

9369 Commits

Author SHA1 Message Date
Steinar H. Gunderson
2694b970e8 Port the TCP socket fix made in ares_fds() to ares_getsock() as well. 2007-09-29 19:26:59 +00:00
Steinar H. Gunderson
23f5d145ec Previously, processing a large batch of timeouts was O(n^2) in the number of
outstanding queries, and processing a DNS response packet was O(n) in the
number of outstanding queries. To speed things up in Google, we added a few circular,
doubly-linked lists of queries that are hash-bucketed based on
the attributes we care about, so most important operations are now O(1).

It might be that the number of buckets are higher than most people would need,
but on a quick calculation it should only be 100kB or so even on a 64-bit
system, so I've let it stay as-is.
2007-09-29 18:18:47 +00:00
Gisle Vanem
b01ab65225 We should standarise on C comments. 2007-09-29 14:37:47 +00:00
Gisle Vanem
7a7f490efa Fix compiler warning in setsockopt(). 2007-09-29 14:34:59 +00:00
Steinar H. Gunderson
95c15fce0c TCP queries can time out too, not just UDP queries. (Patch from the Google tree.) 2007-09-29 14:25:14 +00:00
Steinar H. Gunderson
c788efffd4 Read and process as many packets as possible in read_udp_packets, to avoid having to run the entire event loop once per packet. (Patch from the Google tree.) 2007-09-29 14:21:47 +00:00
Steinar H. Gunderson
c1a475e708 There are two different places in write_tcp_data() that advance the send_queue; however, they are slightly different and only the first one properly uses a while loop. Consolidate both into a single function that DTTR. (Patch from the Google tree.) 2007-09-29 14:09:14 +00:00
Steinar H. Gunderson
d0de9663e2 Reject names that are longer than 255 characters, to avoid problems with strict or buggy DNS server implementations. (Patch from the Google tree) 2007-09-29 13:58:23 +00:00
Steinar H. Gunderson
d6dd848523 In ares_mkquery, make sure we set buflen and buf to reasonable values if there's an error. (Patch from the Google tree) 2007-09-29 13:56:36 +00:00
Steinar H. Gunderson
9fc66e4dd9 Be stricter about what's a valid IP address in fake_hostent. (Patch from the Google tree.) 2007-09-29 13:52:14 +00:00
Steinar H. Gunderson
6ecea9453b Handle the root of the DNS tree correctly in ares_expand_name. 2007-09-29 13:38:17 +00:00
Daniel Stenberg
2c105af910 Adapted the c-ares code to the API change c-ares 1.5.0 brings in the
notifier callback(s).
2007-09-28 21:48:28 +00:00
Daniel Stenberg
bb667c8ac6 rename variable to prevent shadow warning 2007-09-28 21:45:05 +00:00
Daniel Stenberg
8179743cee today's modifications by Steinar and me 2007-09-28 20:28:20 +00:00
Daniel Stenberg
3d59a3855a Bumped version to 1.5.0 for next release and soname bumped to 2 due to ABI
and API changes in the progress callback (and possibly more coming up from
Steinar)
2007-09-28 20:28:06 +00:00
Dan Fandrich
8388366849 Renamed a variable to avoid shadowing a global declarations. 2007-09-28 18:47:59 +00:00
Steinar H. Gunderson
ef3b425b11 Unrevert previous 'missing' hunks. They were missing since the patch is still in for review :-) 2007-09-28 15:56:28 +00:00
Steinar H. Gunderson
026d93b4f6 Yet more missing hunks... Nggh. 2007-09-28 15:55:11 +00:00
Steinar H. Gunderson
36710c4586 Always register for TCP events even if there are no outstanding queries, as the other side could always close the connection, which is a valid event which should be responded to. 2007-09-28 15:53:10 +00:00
Steinar H. Gunderson
63ac6156aa Forgot to include a few hunks from ares_process.c earlier. Fixing now. 2007-09-28 15:51:00 +00:00
Steinar H. Gunderson
08a70d117c Support a few more socket options, and refactor the option setting a bit. (Patch from the Google tree.) 2007-09-28 15:15:39 +00:00
Steinar H. Gunderson
6ce589c3ee Make the query callbacks return the number of timeouts that happened during the execution of a query, and update documentation accordingly. (Patch from the Google tree.) 2007-09-28 14:46:51 +00:00
Steinar H. Gunderson
d426c20c0a Three fixes in one commit (sorry): a) Take care of the tcpbuf if it ends while queued for transmission, note broken servers and close them in the main loop, and store TCP socket generation number in order not to send the same query twice over the same socket. 2007-09-28 14:28:14 +00:00
Steinar H. Gunderson
54ca7d8cb2 Don't skip a server if it's the only one. (Bugfix from the Google tree.) 2007-09-28 14:26:11 +00:00
Dan Fandrich
0819c3a8cf Don't strdup an empty string 2007-09-27 18:39:10 +00:00
Dan Fandrich
ad05b22de3 Renamed a few variables to avoid shadowing global declarations. 2007-09-27 18:12:03 +00:00
Dan Fandrich
9fc8800b6d Removed cut-and-paste cruft leading to fclose() of an unopened file 2007-09-27 17:22:10 +00:00
Daniel Stenberg
a4d6611d26 a name resolve that times out is still a failed name resolve 2007-09-27 12:05:39 +00:00
Daniel Stenberg
015fc6aa17 wrong, revert the previous "fix" and instead check that the fd_set pointer
is non-NULL before we FD_CLR
2007-09-27 12:04:56 +00:00
Daniel Stenberg
a739b9bc45 eek, fix the conditions to return on either problem instead of requiring
both to occur
2007-09-27 12:02:15 +00:00
Dan Fandrich
0bd2d54814 Renamed a few variables to avoid shadowing global declarations. 2007-09-27 02:45:58 +00:00
Dan Fandrich
16b95fc773 Enabled a few more gcc warnings with --enable-debug. Renamed a few
variables to avoid shadowing global declarations.
2007-09-27 01:45:22 +00:00
Yang Tse
9c5cd6c413 Fix compiler warning: the address of 'env' will always evaluate as 'true' 2007-09-27 00:58:41 +00:00
Daniel Stenberg
9b55056423 we added a curl_easy_setopt() option too 2007-09-26 12:46:03 +00:00
Daniel Stenberg
fd4cf78f36 Philip Langdale provided the new CURLOPT_POST301 option for
curl_easy_setopt() that alters how libcurl functions when following
redirects. It makes libcurl obey the RFC2616 when a 301 response is received
after a non-GET request is made. Default libcurl behaviour is to change
method to GET in the subsequent request (like it does for response code 302
- because that's what many/most browsers do), but with this CURLOPT_POST301
option enabled it will do what the spec says and do the next request using
the same method again. I.e keep POST after 301.

The curl tool got this option as --post301

Test case 1011 and 1012 were added to verify.
2007-09-26 12:44:59 +00:00
Daniel Stenberg
a6315359d7 Max Katsev reported that when doing a libcurl FTP request with
CURLOPT_NOBODY enabled but not CURLOPT_HEADER, libcurl wouldn't do TYPE
before it does SIZE which makes it less useful. I walked over the code and
made it do this properly, and added test case 542 to verify it.
2007-09-26 12:00:01 +00:00
Dan Fandrich
966130132f Make glibc define the prototype for strcasestr 2007-09-25 17:33:56 +00:00
Daniel Stenberg
a19de6e9ac a new Lua binding and I shortened the wording on several bindings by cutting
out "written"
2007-09-25 08:46:49 +00:00
Dan Fandrich
bdfeaa0f95 #ifdef out a few more functions when SSL is disabled. 2007-09-25 06:45:05 +00:00
Dan Fandrich
c478200766 Use a native strcasestr() if found. 2007-09-25 06:43:58 +00:00
Daniel Stenberg
775f86cb5a Immanuel Gregoire fixed KNOWN_BUGS #44: --ftp-method nocwd did not handle
URLs ending with a slash properly (it should list the contents of that
directory). Test case 351 brought back and also test 1010 was added.
2007-09-24 21:47:35 +00:00
Daniel Stenberg
db1c92ceac Bad use of "its" replaceed with a rephrase. I noticed this flaw thanks to the
Debian bug report http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=443734
2007-09-24 10:56:26 +00:00
Daniel Stenberg
0f4664d27f Steinar H. Gunderson fixed: Correctly clear sockets from the fd_set on in
several functions (write_tcp_data, read_tcp_data, read_udp_packets) so that
if it fails and the socket is closed the following code doesn't try to use
the file descriptor.
2007-09-22 21:23:10 +00:00
Daniel Stenberg
0f89a2e639 Steinar H. Gunderson modified c-ares to now also do to DNS retries even when
TCP is used since there are several edge cases where it still makes sense.
2007-09-22 21:04:16 +00:00
Daniel Stenberg
05b26e7566 Brad House provided a fix for ares_save_options(): Apparently I overlooked
something with the ares_save_options() where it would try to do a malloc(0)
when no options of that type needed to be saved.  On most platforms, this was
fine because malloc(0) doesn't actually return NULL, but on AIX it does, so
ares_save_options would return ARES_ENOMEM.
2007-09-22 20:45:50 +00:00
Daniel Stenberg
6c511abf43 --proxy-negotiate is added in 7.17.1 2007-09-21 11:53:56 +00:00
Daniel Stenberg
bb6d0771c2 the NSS patch has been committed 2007-09-21 11:19:13 +00:00
Daniel Stenberg
75f6c36e51 Available command line options: 119 2007-09-21 11:08:03 +00:00
Daniel Stenberg
015d5869d7 Mark Davies fixed Negotiate authentication over proxy, and also introduced
the --proxy-negotiate command line option to allow a user to explicitly
select it.
2007-09-21 11:05:31 +00:00
Dan Fandrich
4686adb433 Added variable substitution to the <verify><file> section.
Made a few more tests work remotely.
2007-09-20 20:39:17 +00:00