Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
T
TLMSP curl
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
CYBER - Cyber Security
TS 103 523 MSP
TLMSP
TLMSP curl
Commits
ff681f7b
Commit
ff681f7b
authored
24 years ago
by
Daniel Stenberg
Browse files
Options
Downloads
Patches
Plain Diff
7.7 beta 2 fixes
parent
60bbb64a
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
docs/INTERNALS
+37
-19
37 additions, 19 deletions
docs/INTERNALS
docs/TODO
+4
-0
4 additions, 0 deletions
docs/TODO
include/curl/curl.h
+1
-1
1 addition, 1 deletion
include/curl/curl.h
src/version.h
+1
-1
1 addition, 1 deletion
src/version.h
with
43 additions
and
21 deletions
docs/INTERNALS
+
37
−
19
View file @
ff681f7b
...
...
@@ -7,11 +7,11 @@
INTERNALS
The project is
kind of
split in two. The library and the client. The client
part uses
the library, but the library is
meant to be
designed to allow other
applications to use
it.
The project is split in two. The library and the client. The client
part uses
the library, but the library is designed to allow other
applications to use
it.
Th
us, th
e largest amount of code and complexity is in the library part.
The largest amount of code and complexity is in the library part.
CVS
===
...
...
@@ -35,13 +35,13 @@ Windows vs Unix
the same at all places except for the header file that defines them. The
macros in use are sclose(), sread() and swrite().
2. Windows requires a couple of init calls for the socket stuff
2. Windows requires a couple of init calls for the socket stuff
.
Those must be made by the application that uses libcurl, in curl that means
src/main.c has some code #ifdef'ed to do just that.
3. The file descriptors for network communication and file operations are
not easily interchangable as in unix
not easily interchangable as in unix
.
We avoid this by not trying any funny tricks on file descriptors.
...
...
@@ -51,10 +51,10 @@ Windows vs Unix
We set stdout to binary under windows
Inside the source code,
I do
make an effort to avoid '#ifdef
WIN32
'. All
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,
I
maintain two config-win32.h files (one in / and one in src/) that are
we
maintain two config-win32.h files (one in / and one in src/) that are
supposed to look exactly as a config.h file would have looked like on a
Windows machine!
...
...
@@ -64,12 +64,6 @@ Windows vs Unix
Library
=======
As described elsewhere, libcurl is meant to get two different "layers" of
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
function that libcurl offers to applications. All of those functions are
rather small and easy-to-follow. All the ones prefixed with 'curl_easy' are
...
...
@@ -115,6 +109,22 @@ Library
When completed, the curl_easy_cleanup() should be called to free up used
resources.
A quick roundup on internal function sequences (many of these call
protocol-specific function-pointers):
curl_connect - connects to a remote site and does initial connect fluff
This also checks for an existing connection to the requested site and uses
that one if it is possible.
curl_do - starts a transfer
curl_transfer() - transfers data
curl_done - ends a transfer
curl_disconnect - disconnects from a remote site. This is called when the
disconnect is really requested, which doesn't necessarily have to be
exactly after curl_done in case we want to keep the connection open for
a while.
HTTP(S)
HTTP offers a lot and is the protocol in curl that uses the most lines of
...
...
@@ -130,6 +140,14 @@ Library
the source by the use of curl_read() for reading and curl_write() for writing
data to the remote server.
http_chunks.c contains functions that understands HTTP 1.1 chunked transfer
encoding.
An interesting detail with the HTTP(S) request, is the add_buffer() series of
functions we use. They append data to one single buffer, and when the
building is done the entire request is sent off in one single write. This is
done this way to overcome problems with flawed firewalls and lame servers.
FTP
The Curl_if2ip() function can be used for getting the IP number of a
...
...
@@ -265,12 +283,12 @@ Memory Debugging
deal with resources that might give us problems if we "leak" them. The
functions in the memdebug system do nothing fancy, they do their normal
function and then log information about what they just did. The logged data
is
then analyzed after a complete session,
can
then
be
analyzed after a complete session,
memanalyze.pl is a perl script present only in CVS (not part of the
release
archives) that analyzes a log file generated by the memdebug
system. It
detects if resources are allocated but never freed and other kinds
of errors
related to resource management.
memanalyze.pl is a perl script present only
present
in CVS (not part of the
release
archives) that analyzes a log file generated by the memdebug
system. It
detects if resources are allocated but never freed and other kinds
of errors
related to resource management.
Use -DMALLOCDEBUG when compiling to enable memory debugging.
...
...
This diff is collapsed.
Click to expand it.
docs/TODO
+
4
−
0
View file @
ff681f7b
...
...
@@ -25,6 +25,10 @@ To do for the 7.8 release:
To do in a future release:
* Add configure options that disables certain protocols in libcurl to
decrease footprint. '--disable-[protocol]' where protocol is http, ftp,
telnet, ldap, dict or file.
* Extend the test suite to include telnet and https. The telnet could just do
ftp or http operations (for which we have test servers) and the https would
probably work against/with some of the openssl tools.
...
...
This diff is collapsed.
Click to expand it.
include/curl/curl.h
+
1
−
1
View file @
ff681f7b
...
...
@@ -471,7 +471,7 @@ char *curl_getenv(char *variable);
char
*
curl_version
(
void
);
/* This is the version number */
#define LIBCURL_VERSION "7.7-beta
1
"
#define LIBCURL_VERSION "7.7-beta
2
"
#define LIBCURL_VERSION_NUM 0x070700
/* linked-list structure for the CURLOPT_QUOTE option (and other) */
...
...
This diff is collapsed.
Click to expand it.
src/version.h
+
1
−
1
View file @
ff681f7b
#define CURL_NAME "curl"
#define CURL_VERSION "7.7-beta
1
"
#define CURL_VERSION "7.7-beta
2
"
#define CURL_ID CURL_NAME " " CURL_VERSION " (" OS ") "
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment