Skip to content
Snippets Groups Projects
  1. Aug 03, 2016
    • Serj Kalichev's avatar
      TFTP: Fix upload problem with piped input · edeabf74
      Serj Kalichev authored
      When input stream for curl is stdin and input stream is not a file but
      generated by a script then curl can truncate data transfer to arbitrary
      size since a partial packet is treated as end of transfer by TFTP.
      
      Fixes #857
      edeabf74
  2. Jun 22, 2016
  3. Apr 29, 2016
    • Daniel Stenberg's avatar
      lib: include curl_printf.h as one of the last headers · 4f45240b
      Daniel Stenberg authored
      curl_printf.h defines printf to curl_mprintf, etc. This can cause
      problems with external headers which may use
      __attribute__((format(printf, ...))) markers etc.
      
      To avoid that they cause problems with system includes, we include
      curl_printf.h after any system headers. That makes the three last
      headers to always be, and we keep them in this order:
      
       curl_printf.h
       curl_memory.h
       memdebug.h
      
      None of them include system headers, they all do funny #defines.
      
      Reported-by: David Benjamin
      
      Fixes #743
      4f45240b
  4. Apr 03, 2016
  5. Feb 23, 2016
  6. Feb 02, 2016
  7. Mar 24, 2015
  8. Mar 17, 2015
  9. Mar 16, 2015
    • Daniel Stenberg's avatar
      free: instead of Curl_safefree() · 0f4a03cb
      Daniel Stenberg authored
      Since we just started make use of free(NULL) in order to simplify code,
      this change takes it a step further and:
      
      - converts lots of Curl_safefree() calls to good old free()
      - makes Curl_safefree() not check the pointer before free()
      
      The (new) rule of thumb is: if you really want a function call that
      frees a pointer and then assigns it to NULL, then use Curl_safefree().
      But we will prefer just using free() from now on.
      0f4a03cb
  10. Mar 03, 2015
  11. Feb 05, 2015
  12. Oct 24, 2014
    • Daniel Stenberg's avatar
      code cleanup: we prefer 'CURLcode result' · 0eb3d15c
      Daniel Stenberg authored
      ... for the local variable name in functions holding the return
      code. Using the same name universally makes code easier to read and
      follow.
      
      Also, unify code for checking for CURLcode errors with:
      
       if(result) or if(!result)
      
      instead of
      
       if(result == CURLE_OK), if(CURLE_OK == result) or if(result != CURLE_OK)
      0eb3d15c
  13. May 21, 2014
    • Daniel Stenberg's avatar
      bits.close: introduce connection close tracking · df13f8e8
      Daniel Stenberg authored
      Make all code use connclose() and connkeep() when changing the "close
      state" for a connection. These two macros take a string argument with an
      explanation, and debug builds of curl will include that in the debug
      output. Helps tracking connection re-use/close issues.
      df13f8e8
  14. Apr 26, 2014
  15. Apr 18, 2014
  16. Jan 28, 2014
  17. Dec 31, 2013
  18. Dec 07, 2013
  19. Aug 22, 2013
  20. Aug 12, 2013
  21. Jan 17, 2013
    • Daniel Stenberg's avatar
      always-multi: always use non-blocking internals · c4312741
      Daniel Stenberg authored
      Remove internal separated behavior of the easy vs multi intercace.
      curl_easy_perform() is now using the multi interface itself.
      
      Several minor multi interface quirks and bugs have been fixed in the
      process.
      
      Much help with debugging this has been provided by: Yang Tse
      c4312741
  22. Jan 08, 2013
    • Yang Tse's avatar
      build: fix circular header inclusion with other packages · 5a053ffe
      Yang Tse authored
      This commit renames lib/setup.h to lib/curl_setup.h and
      renames lib/setup_once.h to lib/curl_setup_once.h.
      
      Removes the need and usage of a header inclusion guard foreign
      to libcurl. [1]
      
      Removes the need and presence of an alarming notice we carried
      in old setup_once.h [2]
      
      ----------------------------------------
      
      1 - lib/setup_once.h used __SETUP_ONCE_H macro as header inclusion guard
          up to commit ec691ca3 which changed this to HEADER_CURL_SETUP_ONCE_H,
          this single inclusion guard is enough to ensure that inclusion of
          lib/setup_once.h done from lib/setup.h is only done once.
      
          Additionally lib/setup.h has always used __SETUP_ONCE_H macro to
          protect inclusion of setup_once.h even after commit ec691ca3, this
          was to avoid a circular header inclusion triggered when building a
          c-ares enabled version with c-ares sources available which also has
          a setup_once.h header. Commit ec691ca3 exposes the real nature of
          __SETUP_ONCE_H usage in lib/setup.h, it is a header inclusion guard
          foreign to libcurl belonging to c-ares's setup_once.h
      
          The renaming this commit does, fixes the circular header inclusion,
          and as such removes the need and usage of a header inclusion guard
          foreign to libcurl. Macro __SETUP_ONCE_H no longer used in libcurl.
      
      2 - Due to the circular interdependency of old lib/setup_once.h and the
          c-ares setup_once.h header, old file lib/setup_once.h has carried
          back from 2006 up to now days an alarming and prominent notice about
          the need of keeping libcurl's and c-ares's setup_once.h in sync.
      
          Given that this commit fixes the circular interdependency, the need
          and presence of mentioned notice is removed.
      
          All mentioned interdependencies come back from now old days when
          the c-ares project lived inside a curl subdirectory. This commit
          removes last traces of such fact.
      5a053ffe
  23. Jan 06, 2013
    • Yang Tse's avatar
      Revert changes relative to lib/*.[ch] recent renaming · 4a5aa668
      Yang Tse authored
      This reverts renaming and usage of lib/*.h header files done
      28-12-2012, reverting 2 commits:
      
        f871de00... build: make use of 76 lib/*.h renamed files
        ffd8e127... build: rename 76 lib/*.h files
      
      This also reverts removal of redundant include guard (redundant thanks
      to changes in above commits) done 2-12-2013, reverting 1 commit:
      
        c087374c... curl_setup.h: remove redundant include guard
      
      This also reverts renaming and usage of lib/*.c source files done
      3-12-2013, reverting 3 commits:
      
        13606bbf... build: make use of 93 lib/*.c renamed files
        5b6e7927... build: rename 93 lib/*.c files
        7d83dfff... build: commit 13606bbf follow-up 1
      
      Start of related discussion thread:
      
        http://curl.haxx.se/mail/lib-2013-01/0012.html
      
      Asking for confirmation on pushing this revertion commit:
      
        http://curl.haxx.se/mail/lib-2013-01/0048.html
      
      Confirmation summary:
      
        http://curl.haxx.se/mail/lib-2013-01/0079.html
      
      NOTICE: The list of 2 files that have been modified by other
      intermixed commits, while renamed, and also by at least one
      of the 6 commits this one reverts follows below. These 2 files
      will exhibit a hole in history unless git's '--follow' option
      is used when viewing logs.
      
        lib/curl_imap.h
        lib/curl_smtp.h
      4a5aa668
  24. Jan 03, 2013
    • Yang Tse's avatar
      build: rename 93 lib/*.c files · 5b6e7927
      Yang Tse authored
      93 lib/*.c source files renamed to use our standard naming scheme.
      
      This commit only does the file renaming.
      
      ----------------------------------------
      
        renamed:    lib/amigaos.c -> lib/curl_amigaos.c
        renamed:    lib/asyn-ares.c -> lib/curl_asyn_ares.c
        renamed:    lib/asyn-thread.c -> lib/curl_asyn_thread.c
        renamed:    lib/axtls.c -> lib/curl_axtls.c
        renamed:    lib/base64.c -> lib/curl_base64.c
        renamed:    lib/bundles.c -> lib/curl_bundles.c
        renamed:    lib/conncache.c -> lib/curl_conncache.c
        renamed:    lib/connect.c -> lib/curl_connect.c
        renamed:    lib/content_encoding.c -> lib/curl_content_encoding.c
        renamed:    lib/cookie.c -> lib/curl_cookie.c
        renamed:    lib/cyassl.c -> lib/curl_cyassl.c
        renamed:    lib/dict.c -> lib/curl_dict.c
        renamed:    lib/easy.c -> lib/curl_easy.c
        renamed:    lib/escape.c -> lib/curl_escape.c
        renamed:    lib/file.c -> lib/curl_file.c
        renamed:    lib/fileinfo.c -> lib/curl_fileinfo.c
        renamed:    lib/formdata.c -> lib/curl_formdata.c
        renamed:    lib/ftp.c -> lib/curl_ftp.c
        renamed:    lib/ftplistparser.c -> lib/curl_ftplistparser.c
        renamed:    lib/getenv.c -> lib/curl_getenv.c
        renamed:    lib/getinfo.c -> lib/curl_getinfo.c
        renamed:    lib/gopher.c -> lib/curl_gopher.c
        renamed:    lib/gtls.c -> lib/curl_gtls.c
        renamed:    lib/hash.c -> lib/curl_hash.c
        renamed:    lib/hmac.c -> lib/curl_hmac.c
        renamed:    lib/hostasyn.c -> lib/curl_hostasyn.c
        renamed:    lib/hostcheck.c -> lib/curl_hostcheck.c
        renamed:    lib/hostip.c -> lib/curl_hostip.c
        renamed:    lib/hostip4.c -> lib/curl_hostip4.c
        renamed:    lib/hostip6.c -> lib/curl_hostip6.c
        renamed:    lib/hostsyn.c -> lib/curl_hostsyn.c
        renamed:    lib/http.c -> lib/curl_http.c
        renamed:    lib/http_chunks.c -> lib/curl_http_chunks.c
        renamed:    lib/http_digest.c -> lib/curl_http_digest.c
        renamed:    lib/http_negotiate.c -> lib/curl_http_negotiate.c
        renamed:    lib/http_negotiate_sspi.c -> lib/curl_http_negotiate_sspi.c
        renamed:    lib/http_proxy.c -> lib/curl_http_proxy.c
        renamed:    lib/idn_win32.c -> lib/curl_idn_win32.c
        renamed:    lib/if2ip.c -> lib/curl_if2ip.c
        renamed:    lib/imap.c -> lib/curl_imap.c
        renamed:    lib/inet_ntop.c -> lib/curl_inet_ntop.c
        renamed:    lib/inet_pton.c -> lib/curl_inet_pton.c
        renamed:    lib/krb4.c -> lib/curl_krb4.c
        renamed:    lib/krb5.c -> lib/curl_krb5.c
        renamed:    lib/ldap.c -> lib/curl_ldap.c
        renamed:    lib/llist.c -> lib/curl_llist.c
        renamed:    lib/md4.c -> lib/curl_md4.c
        renamed:    lib/md5.c -> lib/curl_md5.c
        renamed:    lib/memdebug.c -> lib/curl_memdebug.c
        renamed:    lib/mprintf.c -> lib/curl_mprintf.c
        renamed:    lib/multi.c -> lib/curl_multi.c
        renamed:    lib/netrc.c -> lib/curl_netrc.c
        renamed:    lib/non-ascii.c -> lib/curl_non_ascii.c
        renamed:    lib/curl_non-ascii.h -> lib/curl_non_ascii.h
        renamed:    lib/nonblock.c -> lib/curl_nonblock.c
        renamed:    lib/nss.c -> lib/curl_nss.c
        renamed:    lib/nwlib.c -> lib/curl_nwlib.c
        renamed:    lib/nwos.c -> lib/curl_nwos.c
        renamed:    lib/openldap.c -> lib/curl_openldap.c
        renamed:    lib/parsedate.c -> lib/curl_parsedate.c
        renamed:    lib/pingpong.c -> lib/curl_pingpong.c
        renamed:    lib/polarssl.c -> lib/curl_polarssl.c
        renamed:    lib/pop3.c -> lib/curl_pop3.c
        renamed:    lib/progress.c -> lib/curl_progress.c
        renamed:    lib/qssl.c -> lib/curl_qssl.c
        renamed:    lib/rawstr.c -> lib/curl_rawstr.c
        renamed:    lib/rtsp.c -> lib/curl_rtsp.c
        renamed:    lib/security.c -> lib/curl_security.c
        renamed:    lib/select.c -> lib/curl_select.c
        renamed:    lib/sendf.c -> lib/curl_sendf.c
        renamed:    lib/share.c -> lib/curl_share.c
        renamed:    lib/slist.c -> lib/curl_slist.c
        renamed:    lib/smtp.c -> lib/curl_smtp.c
        renamed:    lib/socks.c -> lib/curl_socks.c
        renamed:    lib/socks_gssapi.c -> lib/curl_socks_gssapi.c
        renamed:    lib/socks_sspi.c -> lib/curl_socks_sspi.c
        renamed:    lib/speedcheck.c -> lib/curl_speedcheck.c
        renamed:    lib/splay.c -> lib/curl_splay.c
        renamed:    lib/ssh.c -> lib/curl_ssh.c
        renamed:    lib/sslgen.c -> lib/curl_sslgen.c
        renamed:    lib/ssluse.c -> lib/curl_ssluse.c
        renamed:    lib/strdup.c -> lib/curl_strdup.c
        renamed:    lib/strequal.c -> lib/curl_strequal.c
        renamed:    lib/strerror.c -> lib/curl_strerror.c
        renamed:    lib/strtok.c -> lib/curl_strtok.c
        renamed:    lib/strtoofft.c -> lib/curl_strtoofft.c
        renamed:    lib/telnet.c -> lib/curl_telnet.c
        renamed:    lib/tftp.c -> lib/curl_tftp.c
        renamed:    lib/timeval.c -> lib/curl_timeval.c
        renamed:    lib/transfer.c -> lib/curl_transfer.c
        renamed:    lib/url.c -> lib/curl_url.c
        renamed:    lib/version.c -> lib/curl_version.c
        renamed:    lib/warnless.c -> lib/curl_warnless.c
        renamed:    lib/wildcard.c -> lib/curl_wildcard.c
      
      ----------------------------------------
      5b6e7927
    • Yang Tse's avatar
      build: make use of 93 lib/*.c renamed files · 13606bbf
      Yang Tse authored
      93 *.c source files renamed to use our standard naming scheme.
      
      This change affects 77 files in libcurl's source tree.
      13606bbf
  25. Dec 28, 2012
  26. Dec 14, 2012
  27. Nov 16, 2012
  28. Jun 10, 2012
    • Daniel Stenberg's avatar
      Curl_pgrsDone: return int and acknowledge return code · 6cd084a3
      Daniel Stenberg authored
      Since Curl_pgrsDone() itself calls Curl_pgrsUpdate() which may return an
      abort instruction or similar we need to return that info back and
      subsequently properly handle return codes from Curl_pgrsDone() where
      used.
      
      (Spotted by a Coverity scan)
      6cd084a3
  29. Jan 12, 2012
  30. Nov 24, 2011
    • Jonas Schnelli's avatar
      query-part: ignore the URI part for given protocols · 2c905fd1
      Jonas Schnelli authored
      By setting PROTOPT_NOURLQUERY in the protocol handler struct, the
      protocol will get the "query part" of the URL cut off before the data is
      handled by the protocol-specific code. This makes libcurl adhere to
      RFC3986 section 2.2.
      
      Test 1220 is added to verify a file:// URL with query-part.
      2c905fd1
  31. Oct 21, 2011
    • Daniel Stenberg's avatar
      curl_multi_fdset: correct fdset with FTP PORT use · d7934b8b
      Daniel Stenberg authored
      After a PORT has been issued, and the multi handle would switch to the
      CURLM_STATE_DO_MORE state (which is unique for FTP), libcurl would
      return the wrong fdset to wait for when curl_multi_fdset() is
      called. The code would blindly assume that it was waiting for a connect
      of the second connection, while that isn't true immediately after the
      PORT command.
      
      Also, the function multi.c:domore_getsock() was highly FTP-centric and
      therefore ugly to keep in protocol-agnostic code. I solved this problem
      by introducing a new function pointer in the Curl_handler struct called
      domore_getsock() which is only called during the DOMORE state for
      protocols that set that pointer.
      
      The new ftp.c:ftp_domore_getsock() function now returns fdset info about
      the control connection's command/response handling while such a state is
      in use, and goes over to waiting for a writable second connection first
      once the commands are done.
      
      The original problem could be seen by running test 525 and checking the
      time stamps in the FTP server log. I can verify that this fix at least
      fixes this problem.
      
      Bug: http://curl.haxx.se/mail/lib-2011-10/0250.html
      Reported by: Gokhan Sengun
      d7934b8b
  32. Oct 13, 2011
    • Marcin Adamski's avatar
      tftp.c: TFTP timeout and unexpected block adjustments · 03adff1e
      Marcin Adamski authored
      Set ACK timeout to 5 seconds.
      
      If we are waiting for block X and receive block Y that is the expected one, we
      should send ACK and increase X (which is already implemented). Otherwise drop
      the packet and don't increase retry counter.
      03adff1e
  33. Sep 05, 2011
  34. Jul 26, 2011
  35. Jul 25, 2011
Loading