Yang Tse
8ec2cb5544
WIN32 MemoryTracking: track wcsdup() _wcsdup() and _tcsdup() usage
...
As of 25-mar-2013 wcsdup() _wcsdup() and _tcsdup() are only used in
WIN32 specific code, so tracking of these has not been extended for
other build targets. Without this fix, memory tracking system on
WIN32 builds, when using these functions, would provide misleading
results.
In order to properly extend this support for all targets curl.h
would have to define curl_wcsdup_callback prototype and consequently
wchar_t should be visible before that in curl.h. IOW curl_wchar_t
defined in curlbuild.h and this pulling whatever system header is
required to get wchar_t definition.
Additionally a new curl_global_init_mem() function that also receives
user defined wcsdup() callback would be required.
2013-03-25 03:32:47 +01:00
Yang Tse
5a053ffe80
build: fix circular header inclusion with other packages
...
This commit renames lib/setup.h to lib/curl_setup.h and
renames lib/setup_once.h to lib/curl_setup_once.h.
Removes the need and usage of a header inclusion guard foreign
to libcurl. [1]
Removes the need and presence of an alarming notice we carried
in old setup_once.h [2]
----------------------------------------
1 - lib/setup_once.h used __SETUP_ONCE_H macro as header inclusion guard
up to commit ec691ca3 which changed this to HEADER_CURL_SETUP_ONCE_H,
this single inclusion guard is enough to ensure that inclusion of
lib/setup_once.h done from lib/setup.h is only done once.
Additionally lib/setup.h has always used __SETUP_ONCE_H macro to
protect inclusion of setup_once.h even after commit ec691ca3 , this
was to avoid a circular header inclusion triggered when building a
c-ares enabled version with c-ares sources available which also has
a setup_once.h header. Commit ec691ca3 exposes the real nature of
__SETUP_ONCE_H usage in lib/setup.h, it is a header inclusion guard
foreign to libcurl belonging to c-ares's setup_once.h
The renaming this commit does, fixes the circular header inclusion,
and as such removes the need and usage of a header inclusion guard
foreign to libcurl. Macro __SETUP_ONCE_H no longer used in libcurl.
2 - Due to the circular interdependency of old lib/setup_once.h and the
c-ares setup_once.h header, old file lib/setup_once.h has carried
back from 2006 up to now days an alarming and prominent notice about
the need of keeping libcurl's and c-ares's setup_once.h in sync.
Given that this commit fixes the circular interdependency, the need
and presence of mentioned notice is removed.
All mentioned interdependencies come back from now old days when
the c-ares project lived inside a curl subdirectory. This commit
removes last traces of such fact.
2013-01-09 00:49:50 +01:00
Yang Tse
4a5aa6682d
Revert changes relative to lib/*.[ch] recent renaming
...
This reverts renaming and usage of lib/*.h header files done
28-12-2012, reverting 2 commits:
f871de0... build: make use of 76 lib/*.h renamed files
ffd8e12... build: rename 76 lib/*.h files
This also reverts removal of redundant include guard (redundant thanks
to changes in above commits) done 2-12-2013, reverting 1 commit:
c087374... curl_setup.h: remove redundant include guard
This also reverts renaming and usage of lib/*.c source files done
3-12-2013, reverting 3 commits:
13606bb... build: make use of 93 lib/*.c renamed files
5b6e792... build: rename 93 lib/*.c files
7d83dff... build: commit 13606bbfde follow-up 1
Start of related discussion thread:
http://curl.haxx.se/mail/lib-2013-01/0012.html
Asking for confirmation on pushing this revertion commit:
http://curl.haxx.se/mail/lib-2013-01/0048.html
Confirmation summary:
http://curl.haxx.se/mail/lib-2013-01/0079.html
NOTICE: The list of 2 files that have been modified by other
intermixed commits, while renamed, and also by at least one
of the 6 commits this one reverts follows below. These 2 files
will exhibit a hole in history unless git's '--follow' option
is used when viewing logs.
lib/curl_imap.h
lib/curl_smtp.h
2013-01-06 18:20:27 +01:00
Yang Tse
5b6e7927c6
build: rename 93 lib/*.c files
...
93 lib/*.c source files renamed to use our standard naming scheme.
This commit only does the file renaming.
----------------------------------------
renamed: lib/amigaos.c -> lib/curl_amigaos.c
renamed: lib/asyn-ares.c -> lib/curl_asyn_ares.c
renamed: lib/asyn-thread.c -> lib/curl_asyn_thread.c
renamed: lib/axtls.c -> lib/curl_axtls.c
renamed: lib/base64.c -> lib/curl_base64.c
renamed: lib/bundles.c -> lib/curl_bundles.c
renamed: lib/conncache.c -> lib/curl_conncache.c
renamed: lib/connect.c -> lib/curl_connect.c
renamed: lib/content_encoding.c -> lib/curl_content_encoding.c
renamed: lib/cookie.c -> lib/curl_cookie.c
renamed: lib/cyassl.c -> lib/curl_cyassl.c
renamed: lib/dict.c -> lib/curl_dict.c
renamed: lib/easy.c -> lib/curl_easy.c
renamed: lib/escape.c -> lib/curl_escape.c
renamed: lib/file.c -> lib/curl_file.c
renamed: lib/fileinfo.c -> lib/curl_fileinfo.c
renamed: lib/formdata.c -> lib/curl_formdata.c
renamed: lib/ftp.c -> lib/curl_ftp.c
renamed: lib/ftplistparser.c -> lib/curl_ftplistparser.c
renamed: lib/getenv.c -> lib/curl_getenv.c
renamed: lib/getinfo.c -> lib/curl_getinfo.c
renamed: lib/gopher.c -> lib/curl_gopher.c
renamed: lib/gtls.c -> lib/curl_gtls.c
renamed: lib/hash.c -> lib/curl_hash.c
renamed: lib/hmac.c -> lib/curl_hmac.c
renamed: lib/hostasyn.c -> lib/curl_hostasyn.c
renamed: lib/hostcheck.c -> lib/curl_hostcheck.c
renamed: lib/hostip.c -> lib/curl_hostip.c
renamed: lib/hostip4.c -> lib/curl_hostip4.c
renamed: lib/hostip6.c -> lib/curl_hostip6.c
renamed: lib/hostsyn.c -> lib/curl_hostsyn.c
renamed: lib/http.c -> lib/curl_http.c
renamed: lib/http_chunks.c -> lib/curl_http_chunks.c
renamed: lib/http_digest.c -> lib/curl_http_digest.c
renamed: lib/http_negotiate.c -> lib/curl_http_negotiate.c
renamed: lib/http_negotiate_sspi.c -> lib/curl_http_negotiate_sspi.c
renamed: lib/http_proxy.c -> lib/curl_http_proxy.c
renamed: lib/idn_win32.c -> lib/curl_idn_win32.c
renamed: lib/if2ip.c -> lib/curl_if2ip.c
renamed: lib/imap.c -> lib/curl_imap.c
renamed: lib/inet_ntop.c -> lib/curl_inet_ntop.c
renamed: lib/inet_pton.c -> lib/curl_inet_pton.c
renamed: lib/krb4.c -> lib/curl_krb4.c
renamed: lib/krb5.c -> lib/curl_krb5.c
renamed: lib/ldap.c -> lib/curl_ldap.c
renamed: lib/llist.c -> lib/curl_llist.c
renamed: lib/md4.c -> lib/curl_md4.c
renamed: lib/md5.c -> lib/curl_md5.c
renamed: lib/memdebug.c -> lib/curl_memdebug.c
renamed: lib/mprintf.c -> lib/curl_mprintf.c
renamed: lib/multi.c -> lib/curl_multi.c
renamed: lib/netrc.c -> lib/curl_netrc.c
renamed: lib/non-ascii.c -> lib/curl_non_ascii.c
renamed: lib/curl_non-ascii.h -> lib/curl_non_ascii.h
renamed: lib/nonblock.c -> lib/curl_nonblock.c
renamed: lib/nss.c -> lib/curl_nss.c
renamed: lib/nwlib.c -> lib/curl_nwlib.c
renamed: lib/nwos.c -> lib/curl_nwos.c
renamed: lib/openldap.c -> lib/curl_openldap.c
renamed: lib/parsedate.c -> lib/curl_parsedate.c
renamed: lib/pingpong.c -> lib/curl_pingpong.c
renamed: lib/polarssl.c -> lib/curl_polarssl.c
renamed: lib/pop3.c -> lib/curl_pop3.c
renamed: lib/progress.c -> lib/curl_progress.c
renamed: lib/qssl.c -> lib/curl_qssl.c
renamed: lib/rawstr.c -> lib/curl_rawstr.c
renamed: lib/rtsp.c -> lib/curl_rtsp.c
renamed: lib/security.c -> lib/curl_security.c
renamed: lib/select.c -> lib/curl_select.c
renamed: lib/sendf.c -> lib/curl_sendf.c
renamed: lib/share.c -> lib/curl_share.c
renamed: lib/slist.c -> lib/curl_slist.c
renamed: lib/smtp.c -> lib/curl_smtp.c
renamed: lib/socks.c -> lib/curl_socks.c
renamed: lib/socks_gssapi.c -> lib/curl_socks_gssapi.c
renamed: lib/socks_sspi.c -> lib/curl_socks_sspi.c
renamed: lib/speedcheck.c -> lib/curl_speedcheck.c
renamed: lib/splay.c -> lib/curl_splay.c
renamed: lib/ssh.c -> lib/curl_ssh.c
renamed: lib/sslgen.c -> lib/curl_sslgen.c
renamed: lib/ssluse.c -> lib/curl_ssluse.c
renamed: lib/strdup.c -> lib/curl_strdup.c
renamed: lib/strequal.c -> lib/curl_strequal.c
renamed: lib/strerror.c -> lib/curl_strerror.c
renamed: lib/strtok.c -> lib/curl_strtok.c
renamed: lib/strtoofft.c -> lib/curl_strtoofft.c
renamed: lib/telnet.c -> lib/curl_telnet.c
renamed: lib/tftp.c -> lib/curl_tftp.c
renamed: lib/timeval.c -> lib/curl_timeval.c
renamed: lib/transfer.c -> lib/curl_transfer.c
renamed: lib/url.c -> lib/curl_url.c
renamed: lib/version.c -> lib/curl_version.c
renamed: lib/warnless.c -> lib/curl_warnless.c
renamed: lib/wildcard.c -> lib/curl_wildcard.c
----------------------------------------
2013-01-03 06:13:18 +01:00
Yang Tse
f871de0064
build: make use of 76 lib/*.h renamed files
...
76 private header files renamed to use our standard naming scheme.
This change affects 322 files in libcurl's source tree.
2012-12-28 19:37:11 +01:00
Yang Tse
a0b207164c
setup_once.h: refactor inclusion of <unistd.h> and <sys/socket.h>
...
Inclusion of top two most included header files now done in setup_once.h
2012-12-14 17:38:18 +01:00
Yang Tse
6b75d2c2df
fix a bunch of MSVC compiler warnings
2011-09-03 16:07:09 +02:00
Yang Tse
aaab5fa299
MemoryTracking: adjust initialization calling
...
Calling of curl_memdebug() was still done with a pending free()
2011-08-20 17:26:42 +02:00
Yang Tse
31a1af5ebb
MemoryTracking: adjust curl_domalloc() and curl_dofree() memory filling
...
Until 2011-08-17 libcurl's Memory Tracking feature also performed
automatic malloc and free filling operations using 0xA5 and 0x13
values. Our own preinitialization of dynamically allocated memory
might be useful when not using third party memory debuggers, but
on the other hand this would fool memory debuggers into thinking
that all dynamically allocated memory is properly initialized.
As a default setting, libcurl's Memory Tracking feature no longer
performs preinitialization of dynamically allocated memory on its
own. If you know what you are doing, and really want to retain old
behavior, you can achieve this compiling with preprocessor symbols
CURL_MT_MALLOC_FILL and CURL_MT_FREE_FILL defined with appropriate
values.
2011-08-17 19:02:42 +02:00
Yang Tse
9710f387c4
MemoryTracking: make curl_docalloc() call calloc() avoiding our zero fill
2011-08-16 22:24:23 +02:00
Yang Tse
bcbac913d6
socketpair() usage tracking to allow fd leak detection
2011-07-29 13:27:10 +02:00
Yang Tse
f1586cb477
stdio.h, stdlib.h, string.h, stdarg.h and ctype.h inclusion done in setup_once.h
2011-07-26 17:23:27 +02:00
Daniel Stenberg
2309b4e330
remove the CVSish $Id$ lines
2010-03-24 11:02:54 +01:00
Yang Tse
5b778a7ca4
fix socket data type and logging format in debug tracking socket functions
2010-02-22 23:28:56 +00:00
Yang Tse
10affed097
fix compiler warning
2010-02-21 19:59:09 +00:00
Yang Tse
a6fb6b70c7
fix compiler warning
2010-02-20 11:58:26 +00:00
Yang Tse
ccfe279117
Constantine Sapuntzakis enhancements to make memory tracking log file writing
...
of messages atomic, on systems where an fwrite of a memory buffer is atomic.
2010-01-18 20:22:04 +00:00
Yang Tse
e8fd5d8062
Fix compiler warning: ISO C90 forbids mixed declarations and code
2009-11-18 11:53:31 +00:00
Yang Tse
2f6dcaa644
Make memory tracking system intolerant with zero sized malloc(),
...
calloc() and realloc() function calls.
2009-11-18 11:21:58 +00:00
Yang Tse
308497ffc6
Fix compiler warning: control reaches end of non-void function
2009-10-29 04:02:21 +00:00
Daniel Stenberg
6a79b0e859
Since the NSS lib closes the socket the memory tracking system wrongly gets a
...
false positive on a leaked socket, so this introduces a way to tell the system
that the socket is indeed closed without explicitly closing it!
2009-10-28 20:30:23 +00:00
Yang Tse
9137e717b0
Use build-time configured curl_socklen_t instead of socklen_t
2009-05-02 02:37:32 +00:00
Yang Tse
33a3753c3f
libcurl's memory.h renamed to curl_memory.h
2009-04-21 11:46:16 +00:00
Yang Tse
fe8eeb5641
remove unnecessary typecast
2009-04-21 09:03:15 +00:00
Dan Fandrich
976963cd21
Really old gcc doesn't like parenthesis around the names of functions that
...
don't have prototypes. They didn't serve any useful purpose here, anyway.
2008-10-23 08:05:40 +00:00
Yang Tse
89367d47a8
Disable tracking of fdopen() calls in the low-level memory leak tracking
...
code when fdopen() is not available, to avoid compiler error.
2008-09-13 03:45:03 +00:00
Yang Tse
7fdfd938e0
remove dead code portion inoperative long time ago
2008-09-13 01:54:45 +00:00
Yang Tse
3dcd2b82c4
fix print formatting string directives
2008-09-04 18:59:05 +00:00
Dan Fandrich
08aab6a620
Move the CURLDEBUG check after setup.h so it can be set there if necessary.
2008-05-14 23:36:26 +00:00
Daniel Stenberg
cbd1a77ec2
if () => if()
...
while () => while()
and some other minor re-indentings
2007-11-07 09:21:35 +00:00
Patrick Monnerat
259f27b09f
Fix getsockname argument type
...
Improve "universal" alignment type in struct memdebug
2007-08-08 10:37:07 +00:00
James Housley
aed0cc6f2a
Using fdopen() is a more correct way to implement the CURLOPT_NEW_FILE_PREMS
...
file.c, but the debug interface was missing. This adds the routines needed
to make the memory debuging work for fdopen().
2007-06-28 11:11:29 +00:00
Dan Fandrich
3fef839f75
Added call to setvbuf (disabled by default for speed) to flush the
...
memdebug log file after every line and avoid losing the last few log
entries if curl crashes.
2007-05-15 00:36:56 +00:00
Yang Tse
3a634a273a
curlassert macro replaced with DEBUGASSERT macro defined in setup_once.h
2007-02-21 19:03:20 +00:00
Yang Tse
a1d5983991
use macros ERRNO, SET_ERRNO(), SOCKERRNO and SET_SOCKERRNO() for errno handling
2007-02-16 18:19:35 +00:00
Yang Tse
1bcbe89802
Prevent multiple initialization of memdebug configuration variables.
...
This was possible on debug c-ares enabled builds when both CURL_MEMDEBUG
and CARES_MEMDEBUG environment variables were set. Leading to a file handle
leak even when both variables had the same value, and wierd test suite
results when different.
2006-11-05 12:42:50 +00:00
Daniel Stenberg
701de67b79
use %p to printf pointers since %x doesn't work properly on tru64 for this
...
(and besides, we should be using the same %-code for all pointers)
2005-06-30 13:30:23 +00:00
Daniel Stenberg
ab4086bc24
Updated the copyright year since changes have been this year.
2005-03-31 07:02:02 +00:00
Gisle Vanem
9deb76ce3e
Set errno = ENOMEM on faild countcheck().
2004-10-13 19:11:46 +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
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
32a9554c92
Gisle fixed: don't reference 'mem' if it's NULL.
2004-05-05 13:41:54 +00:00
Daniel Stenberg
a331aa0221
make the memlimit final NULL return get written to stderr as wella
2004-05-05 06:57:04 +00:00
Daniel Stenberg
c52c592f4c
store size as size_t
...
use %zd when outputting size_t
2004-03-08 11:33:49 +00:00
Daniel Stenberg
07de0ff0ff
Gisle Vanem's added support calloc()-debugging and outputting mode for
...
fopen() as well.
2004-02-26 14:52:51 +00:00
Daniel Stenberg
44995d6877
Some compilers warn on completely empty source files, we provide a blank
...
one to prevent that.
2004-02-20 16:22:47 +00:00
Daniel Stenberg
de681d3b8f
Made curl_accept() take a 'void *' instead of 'socklen_t *' in the 3rd
...
argument to also not force the casual includer to know about the socklen_t
type.
2004-02-18 12:22:56 +00:00
Daniel Stenberg
f33be3c313
Modified curl_accept() to take a 'void *' in the 2nd argument instead of
...
sockaddr *. This has the added benefit that source files that include
memdebug.h doesn't have to know about "sockaddr".
2004-02-18 12:18:33 +00:00
Daniel Stenberg
f2fbb5f3d5
Make realloc() support NULL as pointer. Made to allow us to use these routines
...
to memdebug the ares stuff as well.
2004-02-16 16:23:19 +00:00
Daniel Stenberg
4d17d6876e
Dan Fandrich's cleanup patch to make pedantic compiler options cause less
...
warnings. Minor edits by me.
2004-01-29 13:56:45 +00:00
Daniel Stenberg
053f6c85ef
updated year in the copyright string
2004-01-07 09:19:33 +00:00
Daniel Stenberg
23a6041698
use the curlassert() instead of custom checks
2003-12-16 14:08:53 +00:00
Daniel Stenberg
776f0bd95e
don't log failed socket() calls
2003-11-13 07:33:51 +00:00
Daniel Stenberg
749f5387c1
Gisle Vanem's IPv6-on-Windows patch applied!
2003-10-14 12:00:45 +00:00
Daniel Stenberg
02c78ecf81
allow out-of-memory testing by setting a limit. That number of memory
...
allocation calls will succeed, the following will return NULL!
2003-08-14 14:19:36 +00:00
Daniel Stenberg
308bc9d919
use CURLDEBUG instead of MALLOCDEBUG for preprocessor conditions
2003-06-26 11:22:12 +00:00
Daniel Stenberg
a7c72b7abf
removed the local variables for emacs and vim, use the new sample.emacs
...
way for emacs, and vim users should provide a similar non-polluting style
2003-01-29 10:14:20 +00:00
Daniel Stenberg
f26a338a54
copyright year update in the source header
2003-01-16 21:08:12 +00:00
Daniel Stenberg
ba4e69bebc
updated source code boilerplate/header
2002-09-03 11:52:59 +00:00
Daniel Stenberg
105ec79b2b
James Cone's efforts to add another netrc parsing "mode"
2002-05-21 22:17:19 +00:00
Daniel Stenberg
974f314f57
copyright string (year) update
2002-03-19 07:54:55 +00:00
Daniel Stenberg
fe3c874001
detect fclose(NULL)
2002-03-08 15:31:44 +00:00
Daniel Stenberg
cb85ca18ab
more fancy alloc, we store the size in each allocated block so that we
...
can destroy the full allocated area just before we free it
2002-02-28 12:37:05 +00:00
Daniel Stenberg
0cacbc892c
always allocates at least 64 bytes for real, and damages them before free
2002-02-28 12:18:15 +00:00
Daniel Stenberg
721b05e343
Nico Baggus' VMS tweaks
2002-02-20 13:46:53 +00:00
Daniel Stenberg
cfdcf5c933
fill memory with junk on malloc()
2001-11-28 23:19:17 +00:00
Daniel Stenberg
010044e03c
the malloc debug system only logs data if the logfile FILE * is set, which
...
makes it easier to disable debug output when built with debug functions
2001-10-17 12:33:35 +00:00
Sterling Hughes
8e91d5de8e
looks nicer and is better compatible with older vim versions
2001-10-11 09:32:19 +00:00
Sterling Hughes
6147879837
Added formatting sections for emacs and vim
2001-09-07 04:01:32 +00:00
Daniel Stenberg
1a7e13e166
curl_memdebug takes a const argument now
2001-08-14 09:24:48 +00:00
Daniel Stenberg
5afc694879
const-ified lots of function arguments
2001-08-14 08:31:27 +00:00
Daniel Stenberg
3e7ebcd051
uses socklen_t now
2001-03-09 15:13:34 +00:00
Daniel Stenberg
b6c5da337a
strdup() takes a const char * now
2001-03-02 07:41:40 +00:00
Daniel Stenberg
4031104404
Internal symbols that aren't static are now prefixed with 'Curl_'
2001-01-05 10:11:41 +00:00
Daniel Stenberg
24dee483e9
dual-license fix
2001-01-03 09:29:33 +00:00
Daniel Stenberg
3d8bb1c27a
include unistd.h if present to prevent compiler warnings on close()
2000-12-19 13:35:23 +00:00
Daniel Stenberg
5594741acb
Added fopen() and fclose() leak tracking
2000-12-19 13:23:54 +00:00
Daniel Stenberg
184ad46a27
fixed accept() for memory debugging
2000-12-18 16:13:37 +00:00
Daniel Stenberg
bf43b49a20
added socket() / sclose() checks to the memdebug system
2000-12-14 15:56:59 +00:00
Daniel Stenberg
50d564b4d4
uses the "internal" mprintf() routines for formatted output
2000-11-21 19:05:26 +00:00
Daniel Stenberg
3e6a354c4c
now exits and alerts on bad uses of strdup() and free()
2000-11-17 15:31:45 +00:00
Daniel Stenberg
57ddd7e928
now includes stdlib.h
2000-11-17 14:05:43 +00:00
Daniel Stenberg
e4a7e18a0c
compiles on Linux now
2000-10-25 07:41:11 +00:00
Daniel Stenberg
d49d05bce6
added for memory leak debugging etc
2000-10-09 11:11:43 +00:00