Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						b9d66dca51 
					 
					
						
						
							
							- Dmitry Popov filed bug report  #1911069  
						
						 
						
						... 
						
						
						
						(http://curl.haxx.se/bug/view.cgi?id=1911069 ) that identified a race
  condition in the name resolver code when the DNS cache is shared between
  multiple easy handles, each running in simultaneous threads that could cause
  crashes. 
						
						
					 
					
						2008-03-11 22:55:23 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						991505e077 
					 
					
						
						
							
							Woops, partly revert my previous commit and do it slightly differently instead.  
						
						 
						
						... 
						
						
						
						The signalling of that a global DNS cache is wanted is done by setting the
option but the setting of the internal variable that it is in use must not be
done until it finally actually gets used!
NOTE and WARNING: I noticed that you can't actually switch off the global dns
cache with CURLOPT_DNS_USE_GLOBAL_CACHE but you couldn't do that previously
either and the option is very clearly and loudly documented as DO NOTE USE so
I won't bother to fix this bug now. 
						
						
					 
					
						2008-01-15 22:44:12 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						56f17d2c9f 
					 
					
						
						
							
							I made the torture test on test 530 go through. This was actually due to  
						
						 
						
						... 
						
						
						
						silly code left from when we switched to let the multi handle "hold" the dns
cache when using the multi interface... Of course this only triggered when a
certain function call returned error at the correct moment. 
						
						
					 
					
						2008-01-15 22:15:55 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						cbd1a77ec2 
					 
					
						
						
							
							if () => if()  
						
						 
						
						... 
						
						
						
						while () => while()
and some other minor re-indentings 
						
						
					 
					
						2007-11-07 09:21:35 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dan Fandrich 
							
						 
					 
					
						
						
							
						
						8388366849 
					 
					
						
						
							
							Renamed a variable to avoid shadowing a global declarations.  
						
						 
						
						
						
						
					 
					
						2007-09-28 18:47:59 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dan Fandrich 
							
						 
					 
					
						
						
							
						
						523767660c 
					 
					
						
						
							
							Fixed some minor mismatched types found by splint.  
						
						 
						
						
						
						
					 
					
						2007-08-26 05:53:26 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						54967d2a3a 
					 
					
						
						
							
							Thomas J. Moore provided a patch that introduces Kerberos5 support in  
						
						 
						
						... 
						
						
						
						libcurl. This also makes the options change name to --krb (from --krb4) and
CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still 
						
						
					 
					
						2007-07-01 22:01:18 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						62f0f5571d 
					 
					
						
						
							
							Robert Iakobashvili re-arranged the internal hash code to work with a custom  
						
						 
						
						... 
						
						
						
						hash function for different hashes, and also expanded the default size for
the socket hash table used in multi handles to greatly enhance speed when
very many connections are added and the socket API is used. 
						
						
					 
					
						2007-06-26 21:09:28 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Yang Tse 
							
						 
					 
					
						
						
							
						
						94b253fde7 
					 
					
						
						
							
							Steve Little's fixes to allow compilation on VMS 64-bit mode  
						
						 
						
						
						
						
					 
					
						2007-04-25 03:00:10 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Gisle Vanem 
							
						 
					 
					
						
						
							
						
						c514a2a89a 
					 
					
						
						
							
							Removed inclusion of <sys/types.h> and <sys/stat.h> in .c-files  
						
						 
						
						... 
						
						
						
						since they're already included through "setup.h". 
						
						
					 
					
						2007-02-26 04:24:26 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Yang Tse 
							
						 
					 
					
						
						
							
						
						3a634a273a 
					 
					
						
						
							
							curlassert macro replaced with DEBUGASSERT macro defined in setup_once.h  
						
						 
						
						
						
						
					 
					
						2007-02-21 19:03:20 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dan Fandrich 
							
						 
					 
					
						
						
							
						
						77516822f6 
					 
					
						
						
							
							Workaround for Cray UNICOS 9.0 to fix ftp.  
						
						 
						
						
						
						
					 
					
						2006-08-21 22:28:19 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dan Fandrich 
							
						 
					 
					
						
						
							
						
						839441e236 
					 
					
						
						
							
							Minor portability fixes to get things running on UNICOS 9.0 on a Cray Y-MP  
						
						 
						
						
						
						
					 
					
						2006-08-16 18:48:27 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Yang Tse 
							
						 
					 
					
						
						
							
						
						ecfaa4f869 
					 
					
						
						
							
							Fix warning: no newline at end of file  
						
						 
						
						
						
						
					 
					
						2006-07-25 18:48:12 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Yang Tse 
							
						 
					 
					
						
						
							
						
						13616f8f96 
					 
					
						
						
							
							Simplify check for NEED_MALLOC_H, and make more explicit that NEED_MALLOC_H shall be defined if <malloc.h> header file must be included even when including <stdlib.h>.  
						
						 
						
						
						
						
					 
					
						2006-07-25 13:49:49 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Gisle Vanem 
							
						 
					 
					
						
						
							
						
						e4d6ade4b3 
					 
					
						
						
							
							Moved functions common to IPv4 and C-ares to hostip.c;  
						
						 
						
						... 
						
						
						
						Curl_freeaddrinfo() and Curl_ip2addr(). 
						
						
					 
					
						2006-07-25 10:31:31 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Gisle Vanem 
							
						 
					 
					
						
						
							
						
						c82e880f5b 
					 
					
						
						
							
							Remove comment about c-ares not supporting IPv6.  
						
						 
						
						
						
						
					 
					
						2006-07-25 10:23:15 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Gisle Vanem 
							
						 
					 
					
						
						
							
						
						5cdbd0cf4a 
					 
					
						
						
							
							Constify arguments to Curl_he2ai() and Curl_addrinfo_copy().  
						
						 
						
						
						
						
					 
					
						2006-07-21 06:21:46 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Gisle Vanem 
							
						 
					 
					
						
						
							
						
						a55c70d4ae 
					 
					
						
						
							
							Constify 'hostname' and 'service' to various resolver functions.  
						
						 
						
						
						
						
					 
					
						2006-07-21 05:51:12 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Yang Tse 
							
						 
					 
					
						
						
							
						
						fe22872d14 
					 
					
						
						
							
							include <malloc.h> only if HAVE_MALLOC_H and NEED_MALLOC_H are both defined.  
						
						 
						
						
						
						
					 
					
						2006-07-11 21:34:23 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						ca319f63ad 
					 
					
						
						
							
							Ingmar Runge provided a source snippet that caused a crash. The reason for  
						
						 
						
						... 
						
						
						
						the crash was that libcurl internally was a bit confused about who owned the
DNS cache at all times so if you created an easy handle that uses a shared
DNS cache and added that to a multi handle it would crash. Now we keep more
careful internal track of exactly what kind of DNS cache each easy handle
uses: None, Private (allocated for and used only by this single handle),
Shared (points to a cache held by a shared object), Global (points to the
global cache) or Multi (points to the cache within the multi handle that is
automatically shared between all easy handles that are added with private
caches). 
						
						
					 
					
						2006-07-07 22:58:06 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						e85e30546c 
					 
					
						
						
							
							Roland Blom filed bug report  #1481217  
						
						 
						
						... 
						
						
						
						(http://curl.haxx.se/bug/view.cgi?id=1481217 ), with follow-ups by Michele Bini
and David Byron. libcurl previously wrongly used GetLastError() on windows to
get error details after socket-related function calls, when it really should
use WSAGetLastError() instead.
When changing to this, the former function Curl_ourerrno() is now instead
called Curl_sockerrno() as it is necessary to only use it to get errno from
socket-related functions as otherwise it won't work as intended on Windows. 
						
						
					 
					
						2006-05-04 22:39:47 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Gisle Vanem 
							
						 
					 
					
						
						
							
						
						3cbb1b2b64 
					 
					
						
						
							
							Use the HAVE_MALLOC_H and HAVE_PROCESS_H defines  
						
						 
						
						... 
						
						
						
						(more logical). 
						
						
					 
					
						2006-04-26 17:23:28 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						92009181af 
					 
					
						
						
							
							Shmulik Regev provided a fix for the DNS cache when using short life times,  
						
						 
						
						... 
						
						
						
						as previously it could be holding on to old cached entries longer than
requested. 
						
						
					 
					
						2006-02-16 23:42:32 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						5f0366c2cb 
					 
					
						
						
							
							only define _REENTRANT if not already defined, and only in setup.h  
						
						 
						
						
						
						
					 
					
						2005-04-19 23:19:23 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						6a2e21ec8c 
					 
					
						
						
							
							FTP code turned into state machine. Not completely yet, but a good start.  
						
						 
						
						... 
						
						
						
						The tag 'before_ftp_statemachine' was set just before this commit in case
of future need. 
						
						
					 
					
						2005-02-09 13:06:40 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						043d70fcdf 
					 
					
						
						
							
							Use plain structs and not typedef'ed ones in the hash and linked-list code.  
						
						 
						
						
						
						
					 
					
						2005-01-25 00:06:29 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						dcea109bb5 
					 
					
						
						
							
							Dan Fandrich fix: eliminates some pedantic CodeWarrior compiler warnings and  
						
						 
						
						... 
						
						
						
						errors. 
						
						
					 
					
						2004-11-18 14:04:40 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						6d1b37b3da 
					 
					
						
						
							
							Prevent a longjmp warning by moving the rc assign within Curl_resolv().  
						
						 
						
						... 
						
						
						
						Andy Cedilnik reported. Warning on HP-UX? 
						
						
					 
					
						2004-10-10 03:32:01 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						39af394a1c 
					 
					
						
						
							
							removed tabs and trailing whitespace from source  
						
						 
						
						
						
						
					 
					
						2004-10-06 07:50:18 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						95def48071 
					 
					
						
						
							
							Made the dns entry remain locked while a connection to the host remains to  
						
						 
						
						... 
						
						
						
						allow verbose output during this period. Bertrand Demiddelaer reported and
helped fixing. 
						
						
					 
					
						2004-10-04 10:36:51 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						f2a99d7d74 
					 
					
						
						
							
							the _num_chars() function is not used, removing  
						
						 
						
						
						
						
					 
					
						2004-06-24 15:05:39 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						feb2dd2835 
					 
					
						
						
							
							Replaced all uses of sprintf() with the safer snprintf(). It is just a  
						
						 
						
						... 
						
						
						
						precaution to prevent mistakes to lead to buffer overflows. 
						
						
					 
					
						2004-06-24 11:54:11 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						5e34f3dc01 
					 
					
						
						
							
							made the Curl_he2ai() take the port number as an int intead, to avoid lots  
						
						 
						
						... 
						
						
						
						of typecasts all over 
						
						
					 
					
						2004-06-24 10:43:50 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						560c257bd0 
					 
					
						
						
							
							prevent warning  
						
						 
						
						
						
						
					 
					
						2004-06-24 08:08:28 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						c39858aac0 
					 
					
						
						
							
							Source cleanups. The major one being that we now _always_ use a Curl_addrinfo  
						
						 
						
						... 
						
						
						
						linked list for name resolved data, even on hosts/systems with only IPv4
stacks as this simplifies a lot of code. 
						
						
					 
					
						2004-06-24 07:43:48 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						8d76d4016d 
					 
					
						
						
							
							removed trailing whitespace  
						
						 
						
						
						
						
					 
					
						2004-06-10 11:56:02 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						9f92657f76 
					 
					
						
						
							
							Gisle corrected two comments  
						
						 
						
						
						
						
					 
					
						2004-06-10 11:55:37 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						9f341f9ce5 
					 
					
						
						
							
							Gisle Vanem's improved verbose output and timeout handling when connecting to  
						
						 
						
						... 
						
						
						
						a host name that resolves to multiple IP addresses. 
						
						
					 
					
						2004-06-10 11:06:21 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						e9056f5f95 
					 
					
						
						
							
							if shrinking the buffer fails, use the older larger one  
						
						 
						
						
						
						
					 
					
						2004-05-17 22:07:43 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						bbafb2eb27 
					 
					
						
						
							
							curl_global_init_mem() allows the memory functions to be replaced.  
						
						 
						
						... 
						
						
						
						memory.h is included everywhere for this. 
						
						
					 
					
						2004-05-11 11:30:23 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						4250637e7d 
					 
					
						
						
							
							improved the cleaning up of memory when we fail to resolve names due to  
						
						 
						
						... 
						
						
						
						out of memory (thanks to 'runtests.pl -t') 
						
						
					 
					
						2004-05-04 13:40:30 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						245e3122df 
					 
					
						
						
							
							Made defines instead of plain numbers for the Curl_resolv() return code to  
						
						 
						
						... 
						
						
						
						make the code easier to read 
						
						
					 
					
						2004-04-26 14:18:00 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						648e82f05d 
					 
					
						
						
							
							Major hostip.c cleanup and split into multiple files and easier #ifdef  
						
						 
						
						... 
						
						
						
						usage. 
						
						
					 
					
						2004-04-26 07:20:11 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						3755bffcc2 
					 
					
						
						
							
							Gisle Vanem found and fixed a memory leak when doing (failing) Windows  
						
						 
						
						... 
						
						
						
						threaded name resolves. 
						
						
					 
					
						2004-04-23 14:04:30 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						62b7c08bb3 
					 
					
						
						
							
							include unistd.h as well for the close() proto on some platforms (like Tru64)  
						
						 
						
						
						
						
					 
					
						2004-04-21 11:18:42 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						dc25cd6f3a 
					 
					
						
						
							
							cleanup leftovers  
						
						 
						
						
						
						
					 
					
						2004-04-20 09:46:10 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						68e8a0f0d9 
					 
					
						
						
							
							asking for CURL_IPRESOLVE_V6 when ipv6 addresses can't be resolved will  
						
						 
						
						... 
						
						
						
						now cause the resolve function to return NULL immediately 
						
						
					 
					
						2004-04-14 12:10:44 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						1d0b5b507a 
					 
					
						
						
							
							Curl_wait_for_resolv() could hang due to the bad timeout timer resolution and  
						
						 
						
						... 
						
						
						
						some bad thinking on my part. 
						
						
					 
					
						2004-04-14 11:43:26 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Stenberg 
							
						 
					 
					
						
						
							
						
						31a693b99a 
					 
					
						
						
							
							Gisle Vanem's fix that makes the multi interface work on Windows again even  
						
						 
						
						... 
						
						
						
						when not using ares. 
						
						
					 
					
						2004-04-13 13:59:12 +00:00