Permalink
Browse files

moved here from the root directory

  • Loading branch information...
1 parent 4341671 commit 7c37c6a8e9b7185fe7c7a607fe12931a226faa06 @bagder bagder committed May 22, 2000
Showing with 2,258 additions and 0 deletions.
  1. +56 −0 docs/BUGS
  2. +74 −0 docs/CONTRIBUTE
  3. +85 −0 docs/FAQ
  4. +82 −0 docs/FEATURES
  5. +259 −0 docs/INSTALL
  6. +140 −0 docs/INTERNALS
  7. +684 −0 docs/README.curl
  8. +108 −0 docs/README.libcurl
  9. +79 −0 docs/RESOURCES
  10. +93 −0 docs/TODO
  11. +598 −0 docs/curl.1
View
@@ -0,0 +1,56 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+BUGS
+
+ Curl has grown substantially from that day, several years ago, when I
+ started fiddling with it. When I write this, there are 16500 lines of source
+ code, and by the time you read this it has probably grown even more.
+
+ Of course there are lots of bugs left. And lots of misfeatures.
+
+ To help us make curl the stable and solid product we want it to be, we need
+ bug reports and bug fixes. If you can't fix a bug yourself and submit a fix
+ for it, try to report an as detailed report as possible to the curl mailing
+ list to allow one of us to have a go at a solution. You should also post
+ your bug/problem at curl's bug tracking system over at
+
+ http://sourceforge.net/bugs/?group_id=976
+
+ When reporting a bug, you should include information that will help us
+ understand what's wrong, what's expected and how to repeat it. You therefore
+ need to supply your operating system's name and version number (uname -a
+ under a unix is fine), what version of curl you're using (curl -v is fine),
+ what URL you were working with and anything else you think matters.
+
+ If curl crashed, causing a core dump (in unix), there is hardly any use to
+ send that huge file to anyone of us. Unless we have an exact same system
+ setup as you, we can't do much with it. What we instead ask of you is to get
+ a stack trace and send that (much smaller) output to us instead!
+
+ The address and how to subscribe to the mailing list is detailed in the
+ README.curl file.
+
+ HOW TO GET A STACK TRACE with a common unix debugger
+ ====================================================
+
+ First, you must make sure that you compile all sources with -g and that you
+ don't 'strip' the final executable.
+
+ Run the program until it bangs.
+
+ Run your debugger on the core file, like '<debugger> curl core'. <debugger>
+ should be replaced with the name of your debugger, in most cases that will
+ be 'gdb', but 'dbx' and others also occur.
+
+ When the debugger has finished loading the core file and presents you a
+ prompt, you can give the compiler instructions. Enter 'where' (without the
+ quotes) and press return.
+
+ The list that is presented is the stack trace. If everything worked, it is
+ supposed to contain the chain of functions that were called when curl
+ crashed.
+
View
@@ -0,0 +1,74 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+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.
+
+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,
+ 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! ;-)
+
+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.
+
+General Style
+
+ Keep your functions small. If they're small you avoid a lot of mistakes and
+ you don't accidentally mix up variables.
+
+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
+ 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.
+
+Separate Patches Doing Different Things
+
+ It is annoying when you get a huge patch from someone that is said to fix 511
+ odd problems, but discussions and opinions don't agree with 510 of them - or
+ 509 of them were already fixed in a different way. Then the patcher needs to
+ extract the single interesting patch from somewhere within the huge pile of
+ source, and that gives a lot of extra work. Preferably, all fixes that
+ correct different problems should be in their own patch with an attached
+ description exactly what they correct so that all patches can be selectively
+ applied by the maintainer or other interested parties.
+
+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.
+
+Write Access to CVS Repository
+
+ If you are a frequent contributor, or have another good reason, you can of
+ course get write access to the CVS repository and then you'll be able to
+ check-in all your changes straight into the CVS tree instead of sending all
+ changes by mail as patches. Just ask if this is what you'd want.
View
@@ -0,0 +1,85 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+FAQ
+
+Problems connecting to SSL servers.
+===================================
+
+ It took a very long time before I could sort out why curl had problems
+ to connect to certain SSL servers when using SSLeay or OpenSSL v0.9+.
+ The error sometimes showed up similar to:
+
+ 16570:error:1407D071:SSL routines:SSL2_READ:bad mac decode:s2_pkt.c:233:
+
+ It turned out to be because many older SSL servers don't deal with SSLv3
+ requests properly. To correct this problem, tell curl to select SSLv2 from
+ the command line (-2/--sslv2).
+
+ I have also seen examples where the remote server didn't like the SSLv2
+ request and instead you had to force curl to use SSLv3 with -3/--sslv3.
+
+Does curl support resume?
+=========================
+
+ Yes. Both ways on FTP, download ways on HTTP.
+
+Is libcurl thread safe?
+=======================
+
+ Yes, as far as curl's own code goes. It does use system calls that often
+ aren't thread safe in most environments, such as gethostbyname().
+
+ 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!
+
+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'.
+
+Does curl support custom FTP commands?
+======================================
+
+ Yes it does, you can tell curl to perform optional commands both before
+ and/or after a file transfer. Study the -Q/--quote option.
+
+ Since curl is used for file transfers, you don't use curl to just perform
+ ftp commands without transfering anything. Therefore you must always specify
+ a URL to transfer to/from even when doing custom FTP commands.
+
+Does curl work with other SSL libraries?
+========================================
+
+ Curl has been written to use OpenSSL, although I doubt there would be much
+ problems using a different library. I just don't know any other free one and
+ that has limited my possibilities to develop against anything else.
+
+ If anyone does "port" curl to use a commercial SSL library, I am of course
+ very interested in getting the patch!
+
+configre doesn't find OpenSSL even when it is installed
+=======================================================
+
+ Platforms: Solaris (native cc compiler) and HPUX (native cc compiler)
+
+ When configuring curl, I specify --with-ssl. OpenSSL is installed in
+ /usr/local/ssl Configure reports SSL in /usr/local/ssl, but fails to find
+ CRYPTO_lock in -lcrypto
+
+ Cause: The cc for this test places the -L/usr/local/ssl/lib AFTER -lcrypto,
+ so ld can't find the library. This is due to a bug in the GNU autoconf tool.
+
+ Workaround: Specifying "LDFLAGS=-L/usr/local/ssl/lib" in front of ./configure
+ places the -L/usr/local/ssl/lib early enough in the command line to make
+ things work
+
+ Submitted by: Bob Allison <allisonb@users.sourceforge.net>
View
@@ -0,0 +1,82 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+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
+ - progress bar/time specs while downloading
+ - PROXY environment variables support
+ - config file support
+ - compiles on win32
+
+HTTP
+ - GET
+ - PUT
+ - HEAD
+ - POST
+ - multipart POST
+ - authentication
+ - resume
+ - 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
+ - range
+ - proxy authentication
+ - time conditions
+ - via http-proxy
+
+HTTPS (*1)
+ - (all the HTTP features)
+ - using certificates
+ - via http-proxy
+
+FTP
+ - download
+ - authentication
+ - PORT or PASV
+ - single file size information (compare to HTTP HEAD)
+ - 'type=' URL support
+ - dir listing
+ - dir listing names-only
+ - upload
+ - upload append
+ - upload via http-proxy as HTTP PUT
+ - download resume
+ - upload resume
+ - QUOT commands (before and/or after the transfer)
+ - simple "range" support
+ - via http-proxy
+
+TELNET
+ - connection negotiation
+ - stdin/stdout I/O
+
+LDAP (*2)
+ - full LDAP URL support
+
+DICT
+ - extended DICT URL support
+
+GOPHER
+ - GET
+ - via http-proxy
+
+FILE
+ - URL support
+
+ *1 = requires OpenSSL
+ *2 = requires OpenLDAP
Oops, something went wrong.

0 comments on commit 7c37c6a

Please sign in to comment.