big last-beta (?) cleanup commit
This commit is contained in:
@@ -8,31 +8,41 @@ CONTRIBUTE
|
||||
|
||||
To Think About When Contributing Source Code
|
||||
|
||||
This document is intended to offer some guidelines that can be useful to
|
||||
keep in mind when you decide to write a contribution to the project. This
|
||||
concerns new features as well as corrections to existing flaws or bugs.
|
||||
This document is intended to offer some guidelines that can be useful to keep
|
||||
in mind when you decide to write a contribution to the project. This concerns
|
||||
new features as well as corrections to existing flaws or bugs.
|
||||
|
||||
The License Issue
|
||||
|
||||
When contributing with code, you agree to put your changes and new code under
|
||||
the same license curl and libcurl is already using. Curl uses the MozPL, the
|
||||
Mozilla Public License, which is *NOT* compatible with the well known GPL,
|
||||
GNU Public License. We can never re-use sources from a GPL program in curl.
|
||||
If you add a larger piece of code, you can opt to make that file or set of
|
||||
files to use a different license as long as they don't enfore any changes to
|
||||
the rest of the package. Such "separate parts" can not be GPL either.
|
||||
|
||||
Naming
|
||||
|
||||
Try using a non-confusing naming scheme for your new functions and variable
|
||||
names. It doesn't necessarily have to mean that you should use the same as
|
||||
in other places of the code, just that the names should be logical,
|
||||
names. It doesn't necessarily have to mean that you should use the same as in
|
||||
other places of the code, just that the names should be logical,
|
||||
understandable and be named according to what they're used for.
|
||||
|
||||
Indenting
|
||||
|
||||
Please try using the same indenting levels and bracing method as all the
|
||||
other code already does. It makes the source code a lot easier to follow if
|
||||
all of it is written using the same style. I don't ask you to like it, I
|
||||
just ask you to follow the tradition! ;-)
|
||||
all of it is written using the same style. I don't ask you to like it, I just
|
||||
ask you to follow the tradition! ;-)
|
||||
|
||||
Commenting
|
||||
|
||||
Comment your source code extensively. I don't see myself as a very good
|
||||
source commenter, but I try to become one. Commented code is quality code
|
||||
and enables future modifications much more. Uncommented code much more risk
|
||||
being completely replaced when someone wants to extend things, since other
|
||||
persons' source code can get quite hard to read.
|
||||
source commenter, but I try to become one. Commented code is quality code and
|
||||
enables future modifications much more. Uncommented code much more risk being
|
||||
completely replaced when someone wants to extend things, since other persons'
|
||||
source code can get quite hard to read.
|
||||
|
||||
General Style
|
||||
|
||||
@@ -41,10 +51,10 @@ General Style
|
||||
|
||||
Non-clobbering All Over
|
||||
|
||||
When you write new functionality or fix bugs, it is important that you
|
||||
don't fiddle all over the source files and functions. Remember that it is
|
||||
likely that other people have done changes in the same source files as you
|
||||
have and possibly even in the same functions. If you bring completely new
|
||||
When you write new functionality or fix bugs, it is important that you don't
|
||||
fiddle all over the source files and functions. Remember that it is likely
|
||||
that other people have done changes in the same source files as you have and
|
||||
possibly even in the same functions. If you bring completely new
|
||||
functionality, try writing it in a new source file. If you fix bugs, try to
|
||||
fix one bug at a time and send them as separate patches.
|
||||
|
||||
@@ -61,10 +71,10 @@ Separate Patches Doing Different Things
|
||||
|
||||
Document
|
||||
|
||||
Writing docs is dead boring and one of the big problems with many open
|
||||
source projects. Someone's gotta do it. It makes it a lot easier if you
|
||||
submit a small description of your fix or your new features with every
|
||||
contribution so that it can be swiftly added to the package documentation.
|
||||
Writing docs is dead boring and one of the big problems with many open source
|
||||
projects. Someone's gotta do it. It makes it a lot easier if you submit a
|
||||
small description of your fix or your new features with every contribution so
|
||||
that it can be swiftly added to the package documentation.
|
||||
|
||||
Write Access to CVS Repository
|
||||
|
||||
|
||||
145
docs/FAQ
145
docs/FAQ
@@ -121,106 +121,139 @@ FAQ
|
||||
|
||||
9. Why do I get problems when I use & in the URL?
|
||||
|
||||
In general unix shells, the & letter is treated special and when used it
|
||||
runs the specified command in the background. To safely send the & as a
|
||||
part of a URL, you should qoute the entire URL by using single (') or
|
||||
double (") quotes around it.
|
||||
In general unix shells, the & letter is treated special and when used it
|
||||
runs the specified command in the background. To safely send the & as a part
|
||||
of a URL, you should qoute the entire URL by using single (') or double (")
|
||||
quotes around it.
|
||||
|
||||
An example that would invoke a remote CGI that uses &-letters could be:
|
||||
An example that would invoke a remote CGI that uses &-letters could be:
|
||||
|
||||
curl 'http://www.altavista.com/cgi-bin/query?text=yes&q=curl'
|
||||
|
||||
10. How can I use {, }, [ or ] to specify multiple URLs?
|
||||
|
||||
Because those letters have a special meaning to the shell, and to be used
|
||||
in a URL specified to curl you must quote them.
|
||||
Because those letters have a special meaning to the shell, and to be used in
|
||||
a URL specified to curl you must quote them.
|
||||
|
||||
An example that downloads two URLs (sequentially) would do:
|
||||
An example that downloads two URLs (sequentially) would do:
|
||||
|
||||
curl '{curl,www}.haxx.se'
|
||||
|
||||
11. Where can I find a copy of LIBEAY32.DLL?
|
||||
|
||||
That is an OpenSSL binary built for Windows.
|
||||
That is an OpenSSL binary built for Windows.
|
||||
|
||||
Curl uses OpenSSL to do the SSL stuff. The LIBEAY32.DLL is what curl needs
|
||||
on a windows machine to do https://. Check out the curl web page to find
|
||||
accurate and up-to-date pointers to recent OpenSSL DDLs and other binary
|
||||
packages.
|
||||
Curl uses OpenSSL to do the SSL stuff. The LIBEAY32.DLL is what curl needs
|
||||
on a windows machine to do https://. Check out the curl web page to find
|
||||
accurate and up-to-date pointers to recent OpenSSL DDLs and other binary
|
||||
packages.
|
||||
|
||||
12. Why do I get downloaded data even though the web page doesn't exist?
|
||||
|
||||
Curl asks remote servers for the page you specify. If the page doesn't
|
||||
exist at the server, the HTTP protocol defines how the server should
|
||||
respond and that means that headers and a "page" will be returned. That's
|
||||
simply how HTTP works.
|
||||
Curl asks remote servers for the page you specify. If the page doesn't exist
|
||||
at the server, the HTTP protocol defines how the server should respond and
|
||||
that means that headers and a "page" will be returned. That's simply how
|
||||
HTTP works.
|
||||
|
||||
By using the --fail option you can tell curl explicitly to not get any data
|
||||
if the HTTP return code doesn't say success.
|
||||
By using the --fail option you can tell curl explicitly to not get any data
|
||||
if the HTTP return code doesn't say success.
|
||||
|
||||
13. Why do I get "HTTP/1.1 403 Forbidden" from a http server?
|
||||
|
||||
RFC2616 clearly explains this return code:
|
||||
RFC2616 clearly explains this return code:
|
||||
|
||||
10.4.4 403 Forbidden
|
||||
10.4.4 403 Forbidden
|
||||
|
||||
The server understood the request, but is refusing to fulfill it.
|
||||
Authorization will not help and the request SHOULD NOT be repeated.
|
||||
If the request method was not HEAD and the server wishes to make
|
||||
public why the request has not been fulfilled, it SHOULD describe the
|
||||
reason for the refusal in the entity. If the server does not wish to
|
||||
make this information available to the client, the status code 404
|
||||
(Not Found) can be used instead.
|
||||
The server understood the request, but is refusing to fulfill it.
|
||||
Authorization will not help and the request SHOULD NOT be repeated. If the
|
||||
request method was not HEAD and the server wishes to make public why the
|
||||
request has not been fulfilled, it SHOULD describe the reason for the
|
||||
refusal in the entity. If the server does not wish to make this information
|
||||
available to the client, the status code 404 (Not Found) can be used
|
||||
instead.
|
||||
|
||||
14. How can I disable the Pragma: nocache header?
|
||||
|
||||
You can change all internally generated headers by adding a replacement
|
||||
with the -H/--header option. By adding a header with empty contents you
|
||||
safelt disables the headers. Use -H "Pragma:" to disable that specific
|
||||
header.
|
||||
You can change all internally generated headers by adding a replacement with
|
||||
the -H/--header option. By adding a header with empty contents you safelt
|
||||
disables the headers. Use -H "Pragma:" to disable that specific header.
|
||||
|
||||
15. Can you tell me what error code 142 means?
|
||||
|
||||
All error codes that are larger than the highest documented error code
|
||||
means that curl has existed due to a timeout. There is currentl no nice way
|
||||
for curl to abort from such a condition and that's why it gets this
|
||||
undocumented error. This is planned to change in a future release.
|
||||
All error codes that are larger than the highest documented error code means
|
||||
that curl has existed due to a timeout. There is currentl no nice way for
|
||||
curl to abort from such a condition and that's why it gets this undocumented
|
||||
error. This is planned to change in a future release.
|
||||
|
||||
16. How do I keep usernames and passwords secret in Curl command lines?
|
||||
|
||||
I see this problem as two parts:
|
||||
I see this problem as two parts:
|
||||
|
||||
The first part is to avoid having clear-text passwords in the command line
|
||||
so that they don't appear in 'ps' outputs and similar. That is easily
|
||||
avoided by using the "-K" option that tells curl to read parameters from a
|
||||
file or stdin to which you can pass the secret info.
|
||||
The first part is to avoid having clear-text passwords in the command line
|
||||
so that they don't appear in 'ps' outputs and similar. That is easily
|
||||
avoided by using the "-K" option tho tell curl to read parameters from a
|
||||
file or stdin to which you can pass the secret info.
|
||||
|
||||
To keep the passwords in your account secret from the rest of the world is
|
||||
not a task that curl addresses. You could of course encrypt them somehow to
|
||||
at least hide them from being read by human eyes, but that is not what
|
||||
anyone would call security.
|
||||
To keep the passwords in your account secret from the rest of the world is
|
||||
not a task that curl addresses. You could of course encrypt them somehow to
|
||||
at least hide them from being read by human eyes, but that is not what
|
||||
anyone would call security.
|
||||
|
||||
17. Does curl support javascript, ASP, XML, XHTML or HTML version Y?
|
||||
|
||||
To curl, all contents are alike. It doesn't matter how the page was
|
||||
generated. It may be ASP, PHP, perl, shell-script, SSI or plain
|
||||
HTML-files. There's no difference to curl and it doesn't even know what
|
||||
kind of language that generated the page.
|
||||
To curl, all contents are alike. It doesn't matter how the page was
|
||||
generated. It may be ASP, PHP, perl, shell-script, SSI or plain
|
||||
HTML-files. There's no difference to curl and it doesn't even know what kind
|
||||
of language that generated the page.
|
||||
|
||||
Javascript is slightly different since that is code embedded in the HTML
|
||||
that is sent for the client to interpret and curl has no javascript
|
||||
interpreter.
|
||||
Javascript is slightly different since that is code embedded in the HTML
|
||||
that is sent for the client to interpret and curl has no javascript
|
||||
interpreter.
|
||||
|
||||
18. Does cURL support Socks (RFC 1928) ?
|
||||
|
||||
No. Nobody has wanted it that badly yet. I would appriciate patches that
|
||||
brings this functionality.
|
||||
No. Nobody has wanted it that badly yet. I would appriciate patches that
|
||||
brings this functionality.
|
||||
|
||||
19. Can I use curl to delete/rename a file through FTP?
|
||||
|
||||
Yes. You specify custom ftp commands with -Q/--quote.
|
||||
Yes. You specify custom ftp commands with -Q/--quote.
|
||||
|
||||
One example would be to delete a file after you have downloaded it:
|
||||
One example would be to delete a file after you have downloaded it:
|
||||
|
||||
curl -O ftp://download.com/coolfile -Q '-DELE coolfile'
|
||||
|
||||
20. Can I use curl/libcurl in my program licensed under XXX?
|
||||
|
||||
Curl and libcurl are released under the MPL, the Mozilla Public License. To
|
||||
get a really good answer to this or other licensing questions, you should
|
||||
study the MPL license and the license you are about to use and check for
|
||||
clashes yourself. This is a brief summary for a few cases for which we get
|
||||
questions:
|
||||
|
||||
I have a GPL program, can I use the libcurl library?
|
||||
|
||||
No. GPL'd software requires all parts of the final executable to be
|
||||
licensed under GPL.
|
||||
|
||||
I have a closed-source program, can I use the libcurl library?
|
||||
|
||||
Yes, libcurl does not put any restrictions on the program that uses the
|
||||
library. If you end up doing changes to the library, only those changes
|
||||
must be made available, not the ones to your program.
|
||||
|
||||
I have a program that uses LGPL libraries, can I use libcurl?
|
||||
|
||||
Yes you can. LGPL libraries don't spread to other libraries the same way
|
||||
GPL ones do.
|
||||
|
||||
Can I modify curl/libcurl for my own program and keep the changes secret?
|
||||
|
||||
No, you're not allowed to do that.
|
||||
|
||||
Can you please change the curl/libcurl license to XXXX?
|
||||
|
||||
No. We carefully picked this license years ago and a large amount of
|
||||
people have contributed with source code knowing that this is the license
|
||||
we use. This license puts the restrictions we want on curl/libcurl and it
|
||||
does not spread to other programs or libraries.
|
||||
|
||||
@@ -31,7 +31,7 @@ HTTP
|
||||
- custom HTTP request
|
||||
- cookie get/send
|
||||
- understands the netscape cookie file
|
||||
- custom headers (that can replace internally generated headers)
|
||||
- custom headers (that can replace/remove internally generated headers)
|
||||
- custom user-agent string
|
||||
- custom referer string
|
||||
- range
|
||||
@@ -57,7 +57,7 @@ FTP
|
||||
- upload via http-proxy as HTTP PUT
|
||||
- download resume
|
||||
- upload resume
|
||||
- QUOT commands (before and/or after the transfer)
|
||||
- custom ftp commands (before and/or after the transfer)
|
||||
- simple "range" support
|
||||
- via http-proxy
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ Software
|
||||
|
||||
Similar Tools
|
||||
-------------
|
||||
wget - ftp://prep.ai.mit.edu/pub/gnu/
|
||||
wget - http://www.gnu.org/software/wget/wget.html
|
||||
|
||||
snarf - http://www.xach.com/snarf/
|
||||
|
||||
@@ -90,8 +90,6 @@ Similar Tools
|
||||
|
||||
swebget - http://www.uni-hildesheim.de/~smol0075/swebget/
|
||||
|
||||
fetch - ?
|
||||
|
||||
Related Software
|
||||
----------------
|
||||
ftpparse - http://cr.yp.to/ftpparse.html parses FTP LIST responses
|
||||
@@ -105,3 +103,5 @@ Related Software
|
||||
gzip - http://www.gnu.org/software/gzip/gzip.html
|
||||
|
||||
tar - http://www.gnu.org/software/tar/tar.html
|
||||
|
||||
libtool - http://www.gnu.org/software/libtool/libtool.html
|
||||
|
||||
Reference in New Issue
Block a user