Skip to content

Commit

Permalink
updates and fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
bagder committed Mar 16, 2000
1 parent 90030a4 commit 5992252
Show file tree
Hide file tree
Showing 8 changed files with 138 additions and 34 deletions.
8 changes: 7 additions & 1 deletion CONTRIBUTE
@@ -1,4 +1,10 @@
Date: 1999-08-04
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|

CONTRIBUTE

To Think About When Contributing Source Code

Expand Down
11 changes: 10 additions & 1 deletion FAQ
@@ -1,4 +1,4 @@
Date: 19 November 1999
Date: 15 March 2000

Frequently Asked Questions about Curl

Expand Down Expand Up @@ -29,3 +29,12 @@ Date: 19 November 1999
I am very interested in once and for all getting some kind of report or
README file from those who have used libcurl in a threaded environment,
since I haven't and I get this question more and more frequently!

4. Why doesn't my posting using -F work?

You can't simply use -F or -d at your choice. The web server that will
receive your post assumes one of the formats. If the form you're trying to
"fake" sets the type to 'multipart/form-data', than and only then you must
use the -F type. In all the most common cases, you should use -d which then
causes a posting with the type 'application/x-www-form-urlencoded'.

10 changes: 10 additions & 0 deletions FEATURES
@@ -1,7 +1,16 @@
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|

FEATURES

Misc
- full URL syntax
- custom maximum download time
- custom least download speed acceptable
- custom output result after completion
- multiple URLs
- guesses protocol from host name unless specified
- uses .netrc
Expand All @@ -21,6 +30,7 @@ HTTP
- follow redirects
- custom HTTP request
- cookie get/send
- understands the netscape cookie file
- custom headers (that can replace internally generated headers)
- custom user-agent string
- custom referer string
Expand Down
1 change: 1 addition & 0 deletions FILES
@@ -1,3 +1,4 @@
BUGS
CHANGES
CONTRIBUTE
FEATURES
Expand Down
26 changes: 26 additions & 0 deletions INSTALL
Expand Up @@ -6,6 +6,32 @@

How To Compile

Curl has been compiled and built on numerous different operating systems. The
way to proceed is mainly devided in two different ways: the unix way or the
windows way.

If you're using Windows (95, 98, NT) or OS/2, you should continue reading from
the Win32 header below. All other systems should be capable of being installed
as described un the the UNIX header.

PORTS
=====
Just to show off, this is a probably incomplete list of known hardware and
operating systems that curl has been compiled for:

Sparc Solaris 2.4, 2.5, 2.5.1, 2.6, 7
Sparc SunOS 4.1.*
i386 Linux 1.3, 2.0, 2.2
MIPS IRIX
HP-PA HP-UX
PowerPC Mac OS X
- Ultrix
i386 OpenBSD
m68k OpenBSD
i386 Windows 95, 98, NT
i386 OS/2
m68k AmigaOS 3

UNIX
====

Expand Down
16 changes: 16 additions & 0 deletions README
Expand Up @@ -26,3 +26,19 @@ README
Sweden -- ftp://ftp.sunet.se/pub/www/utilities/curl/
Germany -- ftp://ftp.fu-berlin.de/pub/unix/network/curl/
China -- http://www.pshowing.com/curl/

To download the very latest source off the CVS server do this:

cvs -d :pserver:cvs@curl.sourceforge.net/curl login

(just press enter when asked for password)

cvs -d :pserver:cvs@curl.sourceforge.net/curl co .

(now, you'll get all the latest sources downloaded into your current
directory. Note that this does not create a directory named curl or
anything)

cvs -d :pserver:cvs@curl.sourceforge.net/curl logout

(you're off the hook!)
67 changes: 50 additions & 17 deletions README.curl
Expand Up @@ -122,33 +122,37 @@ UPLOADING

FTP

Upload all data on stdin to a specified ftp site:
Upload all data on stdin to a specified ftp site:

curl -t ftp://ftp.upload.com/myfile

Upload data from a specified file, login with user and password:
Upload data from a specified file, login with user and password:

curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile

Upload a local file to the remote site, and use the local file name remote
too:
Upload a local file to the remote site, and use the local file name remote
too:

curl -T uploadfile -u user:passwd ftp://ftp.upload.com/

NOTE: Curl is not currently supporing ftp upload through a proxy! The reason
for this is simply that proxies are seldomly configured to allow this and
that no author has supplied code that makes it possible!
Upload a local file to get appended to the remote file using ftp:

curl -T localfile -a ftp://ftp.upload.com/remotefile

NOTE: Curl does not support ftp upload through a proxy! The reason for this
is simply that proxies are seldomly configured to allow this and that no
author has supplied code that makes it possible!

HTTP

Upload all data on stdin to a specified http site:
Upload all data on stdin to a specified http site:

curl -t http://www.upload.com/myfile

Note that the http server must've been configured to accept PUT before this
can be done successfully.
Note that the http server must've been configured to accept PUT before this
can be done successfully.

For other ways to do http data upload, see the POST section below.
For other ways to do http data upload, see the POST section below.

VERBOSE / DEBUG

Expand Down Expand Up @@ -457,9 +461,9 @@ FTP and firewalls

HTTPS

Secure HTTP requires SSLeay to be installed and used when curl is built. If
that is done, curl is capable of retrieving and posting documents using the
HTTPS procotol.
Secure HTTP requires SSL libraries to be installed and used when curl is
built. If that is done, curl is capable of retrieving and posting documents
using the HTTPS procotol.

Example:

Expand All @@ -472,9 +476,10 @@ HTTPS
browsers (Netscape and MSEI both use the so called PKCS#12 format). If you
want curl to use the certificates you use with your (favourite) browser, you
may need to download/compile a converter that can convert your browser's
formatted certificates to PEM formatted ones. Dr Stephen N. Henson has
written a patch for SSLeay that adds this functionality. You can get his
patch (that requires an SSLeay installation) from his site at:
formatted certificates to PEM formatted ones. This kind of converter is
included in recent versions of OpenSSL, and for older versions Dr Stephen
N. Henson has written a patch for SSLeay that adds this functionality. You
can get his patch (that requires an SSLeay installation) from his site at:
http://www.drh-consultancy.demon.co.uk/

Example on how to automatically retrieve a document using a certificate with
Expand Down Expand Up @@ -601,6 +606,34 @@ ENVIRONMENT VARIABLES

The usage of the -x/--proxy flag overrides the environment variables.

NETRC

Unix introduced the .netrc concept a long time ago. It is a way for a user
to specify name and password for commonly visited ftp sites in a file so
that you don't have to type them in each time you visit those sites. You
realize this is a big security risk if someone else gets hold of your
passwords, so therefor most unix programs won't read this file unless it is
only readable by yourself (curl doesn't care though).

Curl supports .netrc files if told so (using the -n/--netrc option). This is
not restricted to only ftp, but curl can use it for all protocols where
authentication is used.

A very simple .netrc file could look something like:

machine curl.haxx.nu login iamdaniel password mysecret

CUSTOM OUTPUT

To better allow script programmers to get to know about the progress of
curl, the -w/--write-out option was introduced. Using this, you can specify
what information from the previous transfer you want to extract.

To display the amount of bytes downloaded together with some text and an
ending newline:

curl -w 'We downloaded %{size_download} bytes\n' www.download.com

MAILING LIST

We have an open mailing list to discuss curl, its development and things
Expand Down
33 changes: 18 additions & 15 deletions TODO
Expand Up @@ -24,18 +24,17 @@ TODO

* HTTP Pipelining/persistant connections

- I'm gonna introduce HTTP "pipelining". Curl should be able
to request for several HTTP documents in one connect. It is the beginning
for supporing more advanced functions in the future, like web site
- We should introduce HTTP "pipelining". Curl could be able to request for
several HTTP documents in one connect. It would be the beginning for
supporing more advanced functions in the future, like web site
mirroring. This will require that the urlget() function supports several
documents from a single HTTP server, which it doesn't today.

- When curl supports fetching several documents from the same
server using pipelining, I'd like to offer that function to the command
line. Anyone has a good idea how? The current way of specifying one URL
with the output sent to the stdout or a file gets in the way. Imagine a
syntax that supports "additional documents from the same server" in a way
similar to:
- When curl supports fetching several documents from the same server using
pipelining, I'd like to offer that function to the command line. Anyone has
a good idea how? The current way of specifying one URL with the output sent
to the stdout or a file gets in the way. Imagine a syntax that supports
"additional documents from the same server" in a way similar to:

curl <main URL> --more-doc <path> --more-doc <path>

Expand All @@ -52,12 +51,11 @@ TODO
And some friendly person's server source code is available at
http://hopf.math.nwu.edu/digestauth/index.html

Then there's the Apache mod_digest source code too of course.
It seems as if Netscape doesn't support this, and not many servers
do. Although this is a lot better authentication method than the more
common "Basic". Basic sends the password in cleartext over the network,
this "Digest" method uses a challange-response protocol which increases
security quite a lot.
Then there's the Apache mod_digest source code too of course. It seems as
if Netscape doesn't support this, and not many servers do. Although this is
a lot better authentication method than the more common "Basic". Basic
sends the password in cleartext over the network, this "Digest" method uses
a challange-response protocol which increases security quite a lot.

* Different FTP Upload Through Web Proxy
I don't know any web proxies that allow CONNECT through on port 21, but
Expand Down Expand Up @@ -88,3 +86,8 @@ TODO
(http://search.ietf.org/internet-drafts/draft-murray-auth-ftp-ssl-05.txt)

* HTTP POST resume using Range:

* Make curl capable of verifying the server's certificate when connecting
with HTTPS://.

* Make the timeout work as expected!

0 comments on commit 5992252

Please sign in to comment.