url.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #ifndef HEADER_CURL_URL_H
  2. #define HEADER_CURL_URL_H
  3. /***************************************************************************
  4. * _ _ ____ _
  5. * Project ___| | | | _ \| |
  6. * / __| | | | |_) | |
  7. * | (__| |_| | _ <| |___
  8. * \___|\___/|_| \_\_____|
  9. *
  10. * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
  11. *
  12. * This software is licensed as described in the file COPYING, which
  13. * you should have received as part of this distribution. The terms
  14. * are also available at https://curl.haxx.se/docs/copyright.html.
  15. *
  16. * You may opt to use, copy, modify, merge, publish, distribute and/or sell
  17. * copies of the Software, and permit persons to whom the Software is
  18. * furnished to do so, under the terms of the COPYING file.
  19. *
  20. * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
  21. * KIND, either express or implied.
  22. *
  23. ***************************************************************************/
  24. #include "curl_setup.h"
  25. #define READBUFFER_SIZE CURL_MAX_WRITE_SIZE
  26. #define READBUFFER_MAX CURL_MAX_READ_SIZE
  27. #define READBUFFER_MIN 1024
  28. /* The default upload buffer size, should not be smaller than
  29. CURL_MAX_WRITE_SIZE, as it needs to hold a full buffer as could be sent in
  30. a write callback.
  31. The size was 16KB for many years but was bumped to 64KB because it makes
  32. libcurl able to do significantly faster uploads in some circumstances. Even
  33. larger buffers can help further, but this is deemed a fair memory/speed
  34. compromise. */
  35. #define UPLOADBUFFER_DEFAULT 65536
  36. #define UPLOADBUFFER_MAX (2*1024*1024)
  37. #define UPLOADBUFFER_MIN CURL_MAX_WRITE_SIZE
  38. /*
  39. * Prototypes for library-wide functions provided by url.c
  40. */
  41. CURLcode Curl_init_do(struct Curl_easy *data, struct connectdata *conn);
  42. CURLcode Curl_open(struct Curl_easy **curl);
  43. CURLcode Curl_init_userdefined(struct Curl_easy *data);
  44. void Curl_freeset(struct Curl_easy * data);
  45. /* free the URL pieces */
  46. void Curl_up_free(struct Curl_easy *data);
  47. CURLcode Curl_uc_to_curlcode(CURLUcode uc);
  48. CURLcode Curl_close(struct Curl_easy *data); /* opposite of curl_open() */
  49. CURLcode Curl_connect(struct Curl_easy *, bool *async, bool *protocol_connect);
  50. CURLcode Curl_disconnect(struct Curl_easy *data,
  51. struct connectdata *, bool dead_connection);
  52. CURLcode Curl_protocol_connect(struct connectdata *conn, bool *done);
  53. CURLcode Curl_protocol_connecting(struct connectdata *conn, bool *done);
  54. CURLcode Curl_protocol_doing(struct connectdata *conn, bool *done);
  55. CURLcode Curl_setup_conn(struct connectdata *conn,
  56. bool *protocol_done);
  57. void Curl_free_request_state(struct Curl_easy *data);
  58. int Curl_protocol_getsock(struct connectdata *conn,
  59. curl_socket_t *socks,
  60. int numsocks);
  61. int Curl_doing_getsock(struct connectdata *conn,
  62. curl_socket_t *socks,
  63. int numsocks);
  64. CURLcode Curl_parse_login_details(const char *login, const size_t len,
  65. char **userptr, char **passwdptr,
  66. char **optionsptr);
  67. void Curl_close_connections(struct Curl_easy *data);
  68. CURLcode Curl_upkeep(struct conncache *conn_cache, void *data);
  69. const struct Curl_handler *Curl_builtin_scheme(const char *scheme);
  70. #define CURL_DEFAULT_PROXY_PORT 1080 /* default proxy port unless specified */
  71. #define CURL_DEFAULT_HTTPS_PROXY_PORT 443 /* default https proxy port unless
  72. specified */
  73. CURLcode Curl_connected_proxy(struct connectdata *conn, int sockindex);
  74. #ifdef CURL_DISABLE_VERBOSE_STRINGS
  75. #define Curl_verboseconnect(x) Curl_nop_stmt
  76. #else
  77. void Curl_verboseconnect(struct connectdata *conn);
  78. #endif
  79. #define CONNECT_PROXY_SSL()\
  80. (conn->http_proxy.proxytype == CURLPROXY_HTTPS &&\
  81. !conn->bits.proxy_ssl_connected[sockindex])
  82. #define CONNECT_FIRSTSOCKET_PROXY_SSL()\
  83. (conn->http_proxy.proxytype == CURLPROXY_HTTPS &&\
  84. !conn->bits.proxy_ssl_connected[FIRSTSOCKET])
  85. #define CONNECT_SECONDARYSOCKET_PROXY_SSL()\
  86. (conn->http_proxy.proxytype == CURLPROXY_HTTPS &&\
  87. !conn->bits.proxy_ssl_connected[SECONDARYSOCKET])
  88. #endif /* HEADER_CURL_URL_H */