1*6236dae4SAndroid Build Coastguard Worker #ifndef HEADER_CURL_URL_H 2*6236dae4SAndroid Build Coastguard Worker #define HEADER_CURL_URL_H 3*6236dae4SAndroid Build Coastguard Worker /*************************************************************************** 4*6236dae4SAndroid Build Coastguard Worker * _ _ ____ _ 5*6236dae4SAndroid Build Coastguard Worker * Project ___| | | | _ \| | 6*6236dae4SAndroid Build Coastguard Worker * / __| | | | |_) | | 7*6236dae4SAndroid Build Coastguard Worker * | (__| |_| | _ <| |___ 8*6236dae4SAndroid Build Coastguard Worker * \___|\___/|_| \_\_____| 9*6236dae4SAndroid Build Coastguard Worker * 10*6236dae4SAndroid Build Coastguard Worker * Copyright (C) Daniel Stenberg, <[email protected]>, et al. 11*6236dae4SAndroid Build Coastguard Worker * 12*6236dae4SAndroid Build Coastguard Worker * This software is licensed as described in the file COPYING, which 13*6236dae4SAndroid Build Coastguard Worker * you should have received as part of this distribution. The terms 14*6236dae4SAndroid Build Coastguard Worker * are also available at https://curl.se/docs/copyright.html. 15*6236dae4SAndroid Build Coastguard Worker * 16*6236dae4SAndroid Build Coastguard Worker * You may opt to use, copy, modify, merge, publish, distribute and/or sell 17*6236dae4SAndroid Build Coastguard Worker * copies of the Software, and permit persons to whom the Software is 18*6236dae4SAndroid Build Coastguard Worker * furnished to do so, under the terms of the COPYING file. 19*6236dae4SAndroid Build Coastguard Worker * 20*6236dae4SAndroid Build Coastguard Worker * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 21*6236dae4SAndroid Build Coastguard Worker * KIND, either express or implied. 22*6236dae4SAndroid Build Coastguard Worker * 23*6236dae4SAndroid Build Coastguard Worker * SPDX-License-Identifier: curl 24*6236dae4SAndroid Build Coastguard Worker * 25*6236dae4SAndroid Build Coastguard Worker ***************************************************************************/ 26*6236dae4SAndroid Build Coastguard Worker #include "curl_setup.h" 27*6236dae4SAndroid Build Coastguard Worker 28*6236dae4SAndroid Build Coastguard Worker /* 29*6236dae4SAndroid Build Coastguard Worker * Prototypes for library-wide functions provided by url.c 30*6236dae4SAndroid Build Coastguard Worker */ 31*6236dae4SAndroid Build Coastguard Worker 32*6236dae4SAndroid Build Coastguard Worker CURLcode Curl_init_do(struct Curl_easy *data, struct connectdata *conn); 33*6236dae4SAndroid Build Coastguard Worker CURLcode Curl_open(struct Curl_easy **curl); 34*6236dae4SAndroid Build Coastguard Worker CURLcode Curl_init_userdefined(struct Curl_easy *data); 35*6236dae4SAndroid Build Coastguard Worker 36*6236dae4SAndroid Build Coastguard Worker void Curl_freeset(struct Curl_easy *data); 37*6236dae4SAndroid Build Coastguard Worker CURLcode Curl_uc_to_curlcode(CURLUcode uc); 38*6236dae4SAndroid Build Coastguard Worker CURLcode Curl_close(struct Curl_easy **datap); /* opposite of curl_open() */ 39*6236dae4SAndroid Build Coastguard Worker CURLcode Curl_connect(struct Curl_easy *, bool *async, bool *protocol_connect); 40*6236dae4SAndroid Build Coastguard Worker bool Curl_on_disconnect(struct Curl_easy *data, 41*6236dae4SAndroid Build Coastguard Worker struct connectdata *, bool aborted); 42*6236dae4SAndroid Build Coastguard Worker CURLcode Curl_setup_conn(struct Curl_easy *data, 43*6236dae4SAndroid Build Coastguard Worker bool *protocol_done); 44*6236dae4SAndroid Build Coastguard Worker void Curl_conn_free(struct Curl_easy *data, struct connectdata *conn); 45*6236dae4SAndroid Build Coastguard Worker CURLcode Curl_parse_login_details(const char *login, const size_t len, 46*6236dae4SAndroid Build Coastguard Worker char **userptr, char **passwdptr, 47*6236dae4SAndroid Build Coastguard Worker char **optionsptr); 48*6236dae4SAndroid Build Coastguard Worker 49*6236dae4SAndroid Build Coastguard Worker /* Get protocol handler for a URI scheme 50*6236dae4SAndroid Build Coastguard Worker * @param scheme URI scheme, case-insensitive 51*6236dae4SAndroid Build Coastguard Worker * @return NULL of handler not found 52*6236dae4SAndroid Build Coastguard Worker */ 53*6236dae4SAndroid Build Coastguard Worker const struct Curl_handler *Curl_get_scheme_handler(const char *scheme); 54*6236dae4SAndroid Build Coastguard Worker const struct Curl_handler *Curl_getn_scheme_handler(const char *scheme, 55*6236dae4SAndroid Build Coastguard Worker size_t len); 56*6236dae4SAndroid Build Coastguard Worker 57*6236dae4SAndroid Build Coastguard Worker #define CURL_DEFAULT_PROXY_PORT 1080 /* default proxy port unless specified */ 58*6236dae4SAndroid Build Coastguard Worker #define CURL_DEFAULT_HTTPS_PROXY_PORT 443 /* default https proxy port unless 59*6236dae4SAndroid Build Coastguard Worker specified */ 60*6236dae4SAndroid Build Coastguard Worker 61*6236dae4SAndroid Build Coastguard Worker #ifdef CURL_DISABLE_VERBOSE_STRINGS 62*6236dae4SAndroid Build Coastguard Worker #define Curl_verboseconnect(x,y,z) Curl_nop_stmt 63*6236dae4SAndroid Build Coastguard Worker #else 64*6236dae4SAndroid Build Coastguard Worker void Curl_verboseconnect(struct Curl_easy *data, struct connectdata *conn, 65*6236dae4SAndroid Build Coastguard Worker int sockindex); 66*6236dae4SAndroid Build Coastguard Worker #endif 67*6236dae4SAndroid Build Coastguard Worker 68*6236dae4SAndroid Build Coastguard Worker /** 69*6236dae4SAndroid Build Coastguard Worker * Return TRUE iff the given connection is considered dead. 70*6236dae4SAndroid Build Coastguard Worker * @param nowp NULL or pointer to time being checked against. 71*6236dae4SAndroid Build Coastguard Worker */ 72*6236dae4SAndroid Build Coastguard Worker bool Curl_conn_seems_dead(struct connectdata *conn, 73*6236dae4SAndroid Build Coastguard Worker struct Curl_easy *data, 74*6236dae4SAndroid Build Coastguard Worker struct curltime *nowp); 75*6236dae4SAndroid Build Coastguard Worker 76*6236dae4SAndroid Build Coastguard Worker /** 77*6236dae4SAndroid Build Coastguard Worker * Perform upkeep operations on the connection. 78*6236dae4SAndroid Build Coastguard Worker */ 79*6236dae4SAndroid Build Coastguard Worker CURLcode Curl_conn_upkeep(struct Curl_easy *data, 80*6236dae4SAndroid Build Coastguard Worker struct connectdata *conn, 81*6236dae4SAndroid Build Coastguard Worker struct curltime *now); 82*6236dae4SAndroid Build Coastguard Worker 83*6236dae4SAndroid Build Coastguard Worker #if defined(USE_HTTP2) || defined(USE_HTTP3) 84*6236dae4SAndroid Build Coastguard Worker void Curl_data_priority_clear_state(struct Curl_easy *data); 85*6236dae4SAndroid Build Coastguard Worker #else 86*6236dae4SAndroid Build Coastguard Worker #define Curl_data_priority_clear_state(x) 87*6236dae4SAndroid Build Coastguard Worker #endif /* !(defined(USE_HTTP2) || defined(USE_HTTP3)) */ 88*6236dae4SAndroid Build Coastguard Worker 89*6236dae4SAndroid Build Coastguard Worker #ifdef USE_NGHTTP2 90*6236dae4SAndroid Build Coastguard Worker CURLcode Curl_data_priority_add_child(struct Curl_easy *parent, 91*6236dae4SAndroid Build Coastguard Worker struct Curl_easy *child, 92*6236dae4SAndroid Build Coastguard Worker bool exclusive); 93*6236dae4SAndroid Build Coastguard Worker #else 94*6236dae4SAndroid Build Coastguard Worker #define Curl_data_priority_add_child(x, y, z) CURLE_NOT_BUILT_IN 95*6236dae4SAndroid Build Coastguard Worker #endif 96*6236dae4SAndroid Build Coastguard Worker 97*6236dae4SAndroid Build Coastguard Worker #endif /* HEADER_CURL_URL_H */ 98