Skip to content

Commit ae1912c

Browse files
committed
Initial revision
0 parents  commit ae1912c

File tree

144 files changed

+37273
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+37273
-0
lines changed

CHANGES

Lines changed: 1656 additions & 0 deletions
Large diffs are not rendered by default.

CONTRIBUTE

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
Date: 1999-08-04
2+
3+
To Think About When Contributing Source Code
4+
5+
This document is intended to offer some guidelines that can be useful to
6+
keep in mind when you decide to write a contribution to the project. This
7+
concerns new features as well as corrections to existing flaws or bugs.
8+
9+
Naming
10+
11+
Try using a non-confusing naming scheme for your new functions and variable
12+
names. It doesn't necessarily have to mean that you should use the same as
13+
in other places of the code, just that the names should be logical,
14+
understandable and be named according to what they're used for.
15+
16+
Indenting
17+
18+
Please try using the same indenting levels and bracing method as all the
19+
other code already does. It makes the source code a lot easier to follow if
20+
all of it is written using the same style. I don't ask you to like it, I
21+
just ask you to follow the tradition! ;-)
22+
23+
Commenting
24+
25+
Comment your source code extensively. I don't see myself as a very good
26+
source commenter, but I try to become one. Commented code is quality code
27+
and enables future modifications much more. Uncommented code much more risk
28+
being completely replaced when someone wants to extend things, since other
29+
persons' source code can get quite hard to read.
30+
31+
General Style
32+
33+
Keep your functions small. If they're small you avoid a lot of mistakes and
34+
you don't accidentaly mix up variables.
35+
36+
Non-clobbering All Over
37+
38+
When you write new functionality or fix bugs, it is important that you
39+
don't fiddle all over the source files and functions. Remember that it is
40+
likely that other people have done changes in the same source files as you
41+
have and possibly even in the same functions. If you bring completely new
42+
functionality, try writing it in a new source file. If you fix bugs, try to
43+
fix one bug at a time and send them as separate patches.
44+
45+
Separate Patches Doing Different Things
46+
47+
It is annoying when you get a huge patch from someone that is said to fix 511
48+
odd problems, but discussions and opinions don't agree with 510 of them - or
49+
509 of them were already fixed in a different way. Then the patcher needs to
50+
extract the single interesting patch from somewhere within the huge pile of
51+
source, and that gives a lot of extra work. Preferably, all fixes that
52+
correct different problems should be in their own patch with an attached
53+
description exactly what they correct so that all patches can be selectively
54+
applied by the maintainer or other interested parties.
55+
56+
Document
57+
58+
Writing docs is dead boring and one of the big problems with many open
59+
source projects. Someone's gotta do it. It makes it a lot easier if you
60+
submit a small description of your fix or your new features with every
61+
contribution so that it can be swiftly added to the package documentation.
62+
63+
Write Access to CVS Repository
64+
65+
If you are a frequent contributor, or have another good reason, you can of
66+
course get write access to the CVS repository and then you'll be able to
67+
check-in all your changes straight into the CVS tree instead of sending all
68+
changes by mail as patches. Just ask if this is what you'd want.

FAQ

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Date: 19 November 1999
2+
3+
Frequently Asked Questions about Curl
4+
5+
1. Problems connecting to SSL servers.
6+
7+
It took a very long time before I could sort out why curl had problems
8+
to connect to certain SSL servers when using SSLeay or OpenSSL v0.9+.
9+
The error sometimes showed up similar to:
10+
11+
16570:error:1407D071:SSL routines:SSL2_READ:bad mac decode:s2_pkt.c:233:
12+
13+
It turned out to be because many older SSL servers don't deal with SSLv3
14+
requests properly. To correct this problem, tell curl to select SSLv2 from
15+
the command line (-2/--sslv2).
16+
17+
I have also seen examples where the remote server didn't like the SSLv2
18+
request and instead you had to force curl to use SSLv3 with -3/--sslv3.
19+
20+
2. Does curl support resume?
21+
22+
Yes. Both ways on FTP, download ways on HTTP.
23+
24+
3. Is libcurl thread safe?
25+
26+
Yes, as far as curl's own code goes. It does use system calls that often
27+
aren't thread safe in most environments, such as gethostbyname().
28+
29+
I am very interested in once and for all getting some kind of report or
30+
README file from those who have used libcurl in a threaded environment,
31+
since I haven't and I get this question more and more frequently!

FEATURES

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
Misc
2+
- full URL syntax
3+
- custom maximum download time
4+
- custom least download speed acceptable
5+
- multiple URLs
6+
- guesses protocol from host name unless specified
7+
- uses .netrc
8+
- progress bar/time specs while downloading
9+
- PROXY environment variables support
10+
- config file support
11+
- compiles on win32
12+
13+
HTTP
14+
- GET
15+
- PUT
16+
- HEAD
17+
- POST
18+
- multipart POST
19+
- authentication
20+
- resume
21+
- follow redirects
22+
- custom HTTP request
23+
- cookie get/send
24+
- custom headers (that can replace internally generated headers)
25+
- custom user-agent string
26+
- custom referer string
27+
- range
28+
- proxy authentication
29+
- time conditions
30+
- via http-proxy
31+
32+
HTTPS (*1)
33+
- (all the HTTP features)
34+
- using certificates
35+
- via http-proxy
36+
37+
FTP
38+
- download
39+
- authentication
40+
- PORT or PASV
41+
- single file size information (compare to HTTP HEAD)
42+
- 'type=' URL support
43+
- dir listing
44+
- dir listing names-only
45+
- upload
46+
- upload append
47+
- upload via http-proxy as HTTP PUT
48+
- download resume
49+
- upload resume
50+
- QUOT commands
51+
- simple "range" support
52+
- via http-proxy
53+
54+
TELNET
55+
- connection negotiation
56+
- stdin/stdout I/O
57+
58+
LDAP (*2)
59+
- full LDAP URL support
60+
61+
DICT
62+
- extended DICT URL support
63+
64+
GOPHER
65+
- GET
66+
- via http-proxy
67+
68+
FILE
69+
- URL support
70+
71+
*1 = requires OpenSSL
72+
*2 = requires OpenLDAP

FILES

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
CHANGES
2+
CONTRIBUTE
3+
FEATURES
4+
FAQ
5+
FILES
6+
INSTALL
7+
LEGAL
8+
MPL-1.0.txt
9+
README
10+
README.curl
11+
README.libcurl
12+
curl.1
13+
*spec
14+
RESOURCES
15+
TODO
16+
maketgz
17+
Makefile.in
18+
Makefile.am
19+
acconfig.h
20+
aclocal.m4
21+
config.guess
22+
config.h.in
23+
config.sub
24+
configure
25+
configure.in
26+
install-sh
27+
missing
28+
mkinstalldirs
29+
reconf
30+
stamp-h.in
31+
perl/README
32+
perl/*.pl.in
33+
src/*.[ch]
34+
src/*in
35+
src/*am
36+
src/mkhelp.pl
37+
src/Makefile.vc6
38+
src/*m32
39+
lib/getdate.y
40+
lib/*.[ch]
41+
lib/*in
42+
lib/*am
43+
lib/Makefile.vc6
44+
lib/*m32
45+
include/README
46+
include/curl/*.h
47+

0 commit comments

Comments
 (0)