diff options
-rw-r--r-- | docs/INTERNALS | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/docs/INTERNALS b/docs/INTERNALS index ed79d3853..5fe8b29c9 100644 --- a/docs/INTERNALS +++ b/docs/INTERNALS @@ -12,6 +12,17 @@ INTERNALS Thus, the largest amount of code and complexity is in the library part. +CVS +=== + + All changes to the sources are committed to the CVS repository as soon as + they're somewhat verified to work. Changes shall be commited as independently + as possible so that individual changes can be easier spotted and tracked + afterwards. + + Tagging shall be used extensively, and by the time we release new archives we + should tag the sources with a name similar to the released version number. + Windows vs Unix =============== @@ -47,9 +58,9 @@ Library ======= As described elsewhere, libcurl is meant to get two different "layers" of - interface. At the present point only the high-level, the "easy", interface - has been fully implemented and thus documented. We assume the easy-interface - in this description, the low-level interface will be documented when fully + interfaces. At the present point only the high-level, the "easy", interface + has been fully implemented and documented. We assume the easy-interface in + this description, the low-level interface will be documented when fully implemented. There are plenty of entry points to the library, namely each publicly defined @@ -57,11 +68,14 @@ Library rather small and easy-to-follow. All the ones prefixed with 'curl_easy' are put in the lib/easy.c file. + curl_easy_init() allocates an internal struct and makes some initializations. + The returned handle does not revail internals. + curl_easy_setopt() takes a three arguments, where the option stuff must be passed in pairs, the parameter-ID and the parameter-value. The list of options is documented in the man page. - curl_easy_perform() does a whole lot of things. + curl_easy_perform() does a whole lot of things: The function analyzes the URL, get the different components and connects to the remote host. This may involve using a proxy and/or using SSL. The @@ -131,11 +145,12 @@ Library lib/getenv.c offers curl_getenv() which is for reading environment variables in a neat platform independent way. That's used in the client, but also in - lib/url.c when checking the PROXY variables. + lib/url.c when checking the proxy environment variables. - lib/netrc.c keeps the .netrc parser + lib/netrc.c holds the .netrc parser lib/timeval.c features replacement functions for systems that don't have + gettimeofday(). A function named curl_version() that returns the full curl version string is found in lib/version.c. @@ -143,10 +158,10 @@ Library Client ====== - main() resides in src/main.c together with most of the client - code. src/hugehelp.c is automatically generated by the mkhelp.pl perl script - to display the complete "manual" and the src/urlglob.c file holds the - functions used for the multiple-URL support. + main() resides in src/main.c together with most of the client code. + src/hugehelp.c is automatically generated by the mkhelp.pl perl script to + display the complete "manual" and the src/urlglob.c file holds the functions + used for the multiple-URL support. The client mostly mess around to setup its config struct properly, then it calls the curl_easy_*() functions of the library and when it gets back @@ -158,4 +173,16 @@ Client curl_easy_getinfo() function to extract useful information from the curl session. +Test Suite +========== + + During November 2000, a test suite has evolved. It is placed in its own + subdirectory directly off the root in the curl archive tree, and it contains + a bunch of scripts and a lot of test case data. + + The main test script is runtests.pl that will invoke the two servers + httpserver.pl and ftpserver.pl before all the test cases are performed. The + test suite currently only runs on unix-like platforms. + You'll find a complete description of the test case data files in the README + file in the test directory. |