diff options
Diffstat (limited to 'docs/INTERNALS.md')
-rw-r--r-- | docs/INTERNALS.md | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/docs/INTERNALS.md b/docs/INTERNALS.md index 3af760648..9c50b1466 100644 --- a/docs/INTERNALS.md +++ b/docs/INTERNALS.md @@ -62,7 +62,7 @@ git === All changes to the sources are committed to the git repository as soon as - they're somewhat verified to work. Changes shall be committed as independently + they are somewhat verified to work. Changes shall be committed as independently as possible so that individual changes can be easily spotted and tracked afterwards. @@ -74,7 +74,7 @@ Portability =========== We write curl and libcurl to compile with C89 compilers. On 32-bit and up - machines. Most of libcurl assumes more or less POSIX compliance but that's + machines. Most of libcurl assumes more or less POSIX compliance but that is not a requirement. We write libcurl to build and work with lots of third party tools, and we @@ -103,7 +103,7 @@ Operating Systems ----------------- On systems where configure runs, we aim at working on them all - if they have - a suitable C compiler. On systems that don't run configure, we strive to keep + a suitable C compiler. On systems that do not run configure, we strive to keep curl running correctly on: - Windows 98 @@ -143,7 +143,7 @@ Windows vs Unix 2. Windows requires a couple of init calls for the socket stuff. - That's taken care of by the `curl_global_init()` call, but if other libs + That is taken care of by the `curl_global_init()` call, but if other libs also do it etc there might be reasons for applications to alter that behavior. @@ -162,13 +162,13 @@ Windows vs Unix Inside the source code, We make an effort to avoid `#ifdef [Your OS]`. All conditionals that deal with features *should* instead be in the format - `#ifdef HAVE_THAT_WEIRD_FUNCTION`. Since Windows can't run configure scripts, + `#ifdef HAVE_THAT_WEIRD_FUNCTION`. Since Windows cannot run configure scripts, we maintain a `curl_config-win32.h` file in lib directory that is supposed to look exactly like a `curl_config.h` file would have looked like on a Windows machine! Generally speaking: always remember that this will be compiled on dozens of - operating systems. Don't walk on the edge! + operating systems. Do not walk on the edge! <a name="Library"></a> Library @@ -237,7 +237,7 @@ multi_do() The functions are named after the protocols they handle. The protocol-specific functions of course deal with protocol-specific - negotiations and setup. When they're ready to start the actual file + negotiations and setup. When they are ready to start the actual file transfer they call the `Curl_setup_transfer()` function (in `lib/transfer.c`) to setup the transfer and returns. @@ -276,7 +276,7 @@ Curl_disconnect() connections so this is not normally called when `curl_easy_perform()` is used. This function is only used when we are certain that no more transfers are going to be made on the connection. It can be also closed by force, or - it can be called to make sure that libcurl doesn't keep too many + it can be called to make sure that libcurl does not keep too many connections alive at the same time. This function cleans up all resources that are associated with a single @@ -372,14 +372,14 @@ General more). `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 + variables in a neat platform independent way. That is used in the client, but also in `lib/url.c` when checking the proxy environment variables. Note that contrary to the normal unix `getenv()`, this returns an allocated buffer that must be `free()`ed after use. `lib/netrc.c` holds the `.netrc` parser. - `lib/timeval.c` features replacement functions for systems that don't have + `lib/timeval.c` features replacement functions for systems that do not have `gettimeofday()` and a few support functions for timeval conversions. A function named `curl_version()` that returns the full curl version string @@ -408,7 +408,7 @@ Persistent Connections - When the transfer operation is complete, the connection is left open. Particular options may tell libcurl not to, and protocols may signal - closure on connections and then they won't be kept open, of course. + closure on connections and then they will not be kept open, of course. - When `curl_easy_cleanup()` is called, we close all still opened connections, unless of course the multi interface "owns" the connections. @@ -454,7 +454,7 @@ SSL libraries Library Symbols =============== - All symbols used internally in libcurl must use a `Curl_` prefix if they're + All symbols used internally in libcurl must use a `Curl_` prefix if they are used in more than a single file. Single-file symbols must be made static. Public ("exported") symbols must use a `curl_` prefix. (There are exceptions, but they are to be changed to follow this pattern in future versions.) Public @@ -465,7 +465,7 @@ Library Symbols Return Codes and Informationals =============================== - I've made things simple. Almost every function in libcurl returns a CURLcode, + I have made things simple. Almost every function in libcurl returns a CURLcode, that must be `CURLE_OK` if everything is OK or otherwise a suitable error code as the `curl/curl.h` include file defines. The place that detects an error must use the `Curl_failf()` function to set the human-readable error @@ -475,7 +475,7 @@ Return Codes and Informationals must supply a fair number of informational messages by using the `Curl_infof()` function. Those messages are only displayed when the user explicitly asks for them. They are best used when revealing information that - isn't otherwise obvious. + is not otherwise obvious. <a name="abi"></a> API/ABI @@ -553,7 +553,7 @@ Test Suite `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 description of the test suite in the `tests/README` file, and + you will find a description of the test suite in the `tests/README` file, and the test case data files in the `tests/FILEFORMAT` file. The test suite automatically detects if curl was built with the memory @@ -591,7 +591,7 @@ Asynchronous name resolves Lastly, I also changed libcurl to be single-threaded rather than multi-threaded, again this was to prevent some duplicate symbol errors. I'm not sure why I needed to change everything to single-threaded, but when I - didn't I got redefinition errors for several CRT functions (`malloc()`, + did not I got redefinition errors for several CRT functions (`malloc()`, `stricmp()`, etc.) <a name="curl_off_t"></a> @@ -716,8 +716,8 @@ Content Encoding ## `CURLRES_IPV6` this host has `getaddrinfo()` and family, and thus we use that. The host may - not be able to resolve IPv6, but we don't really have to take that into - account. Hosts that aren't IPv6-enabled have `CURLRES_IPV4` defined. + not be able to resolve IPv6, but we do not really have to take that into + account. Hosts that are not IPv6-enabled have `CURLRES_IPV4` defined. ## `CURLRES_ARES` @@ -799,7 +799,7 @@ Track Down Memory Leaks This now outputs a report on what resources that were allocated but never freed etc. This report is fine for posting to the list! - If this doesn't produce any output, no leak was detected in libcurl. Then + If this does not produce any output, no leak was detected in libcurl. Then the leak is mostly likely to be in your code. <a name="multi_socket"></a> @@ -853,7 +853,7 @@ Structs in libcurl ================== This section should cover 7.32.0 pretty accurately, but will make sense even -for older and later versions as things don't change drastically that often. +for older and later versions as things do not change drastically that often. <a name="Curl_easy"></a> ## Curl_easy @@ -899,7 +899,7 @@ for older and later versions as things don't change drastically that often. performance boost. Each `connectdata` identifies a single physical connection to a server. If - the connection can't be kept alive, the connection will be closed after use + the connection cannot be kept alive, the connection will be closed after use and then this struct can be removed from the cache and freed. Thus, the same `Curl_easy` can be used multiple times and each time select @@ -977,7 +977,7 @@ for older and later versions as things don't change drastically that often. The concrete function pointer prototypes can be found in `lib/urldata.h`. - `->scheme` is the URL scheme name, usually spelled out in uppercase. That's + `->scheme` is the URL scheme name, usually spelled out in uppercase. That is "HTTP" or "FTP" etc. SSL versions of the protocol need their own `Curl_handler` setup so HTTPS separate from HTTP. @@ -1007,7 +1007,7 @@ for older and later versions as things don't change drastically that often. `->doing` keeps getting called while issuing the transfer request command(s) - `->done` gets called when the transfer is complete and DONE. That's after the + `->done` gets called when the transfer is complete and DONE. That is after the main data has been transferred. `->do_more` gets called during the `DO_MORE` state. The FTP protocol uses @@ -1048,12 +1048,12 @@ for older and later versions as things don't change drastically that often. limit which "direction" of socket actions that the main engine will concern itself with. - - `PROTOPT_NONETWORK` - a protocol that doesn't use network (read `file:`) + - `PROTOPT_NONETWORK` - a protocol that does not use network (read `file:`) - `PROTOPT_NEEDSPWD` - this protocol needs a password and will use a default one unless one is provided - - `PROTOPT_NOURLQUERY` - this protocol can't handle a query part on the URL + - `PROTOPT_NOURLQUERY` - this protocol cannot handle a query part on the URL (?foo=bar) <a name="conncache"></a> @@ -1075,7 +1075,7 @@ for older and later versions as things don't change drastically that often. holds. Then individual `Curl_easy` structs can be made to share specific things - that they otherwise wouldn't, such as cookies. + that they otherwise would not, such as cookies. The `Curl_share` struct can currently hold cookies, DNS cache and the SSL session cache. |