aboutsummaryrefslogtreecommitdiff
path: root/docs/FAQ
blob: fbdff3eff719d177a09fd40f1e260bb77d8973d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
                                  _   _ ____  _     
                              ___| | | |  _ \| |    
                             / __| | | | |_) | |    
                            | (__| |_| |  _ <| |___ 
                             \___|\___/|_| \_\_____|

FAQ

1. 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.

2. curl: (1) SSL is disabled, https: not supported

  If you get this output when trying to get anything from a https:// server,
  it means that the configure script couldn't find all libs and include files
  it requires for SSL to work. If the configure script fails to find them,
  curl is simply built without SSL support.

  To get the https:// support into a curl that was previously built but that
  reports that https:// is not supported, you should dig through the document
  and logs and check out why the configure script doesn't find the SSL libs
  and/or include files.

  Also, check out the other paragraph in this FAQ labeled "configure doesn't
  find OpenSSL even when it is installed".

3. Does curl support resume?

  Yes. Both ways on FTP, download ways on HTTP.

4. Is libcurl thread safe?

  As version seven is slowly marching in as the libcurl version to use, we
  have made a serious attempt to address all places in the code where we could
  forsee problems for multi-threaded programs. If your system has them, curl
  will attempt to use threadsafe functions instead of non-safe ones.

  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!

5. 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'.

  I have described this in some detail in the README.curl file, and if you
  don't understand it the first time, read it again before you post questions
  about this to the mailing list. I would also suggest that you read through
  the mailing list archives for old postings and questions regarding this.

6. 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.

7. 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!

8. configure doesn't find OpenSSL even when it is installed

  This may be because of several reasons.

  8.1. native linker doesn't find openssl

    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>

  8.2. only the libssl lib is missing

    If all include files and the libcrypto lib is present, with only the
    libssl being missing according to configure, this is mostly likely because
    a few functions are left out from the libssl.

    If the function names missing include RSA or RSAREF you can be certain
    that this is because libssl requires the RSA and RSASEF libs to build.

    See the INSTALL file section that explains how to add those libs to
    configure. Make sure that you remove the config.cache file before you
    rerun configure with the new flags.