Skip to content

Commit 0772a65

Browse files
committed
add raw url bindings
1 parent 63f7213 commit 0772a65

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed

curl-sys/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,4 @@ zlib-ng-compat = ["libz-sys/zlib-ng", "static-curl"]
5555
upkeep_7_62_0 = []
5656
poll_7_68_0 = []
5757
ntlm = []
58+
url = []

curl-sys/lib.rs

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,6 +1167,100 @@ extern "C" {
11671167
) -> CURLMcode;
11681168
}
11691169

1170+
#[cfg(feature = "url")]
1171+
mod url {
1172+
use super::*;
1173+
1174+
pub type CURLUCode = __enum_ty;
1175+
pub type CURLUPart = __enum_ty;
1176+
1177+
pub const CURLUE_OK: CURLUCode = 0;
1178+
pub const CURLUE_BAD_HANDLE: CURLUCode = 1;
1179+
pub const CURLUE_BAD_PARTPOINTER: CURLUCode = 2;
1180+
pub const CURLUE_MALFORMED_INPUT: CURLUCode = 3;
1181+
pub const CURLUE_BAD_PORT_NUMBER: CURLUCode = 4;
1182+
pub const CURLUE_UNSUPPORTED_SCHEME: CURLUCode = 5;
1183+
pub const CURLUE_URLDECODE: CURLUCode = 6;
1184+
pub const CURLUE_OUT_OF_MEMORY: CURLUCode = 7;
1185+
pub const CURLUE_USER_NOT_ALLOWED: CURLUCode = 8;
1186+
pub const CURLUE_UNKNOWN_PART: CURLUCode = 9;
1187+
pub const CURLUE_NO_SCHEME: CURLUCode = 10;
1188+
pub const CURLUE_NO_USER: CURLUCode = 11;
1189+
pub const CURLUE_NO_PASSWORD: CURLUCode = 12;
1190+
pub const CURLUE_NO_OPTIONS: CURLUCode = 13;
1191+
pub const CURLUE_NO_HOST: CURLUCode = 14;
1192+
pub const CURLUE_NO_PORT: CURLUCode = 15;
1193+
pub const CURLUE_NO_QUERY: CURLUCode = 16;
1194+
pub const CURLUE_NO_FRAGMENT: CURLUCode = 17;
1195+
pub const CURLUE_NO_ZONEID: CURLUCode = 18;
1196+
pub const CURLUE_BAD_FILE_URL: CURLUCode = 19;
1197+
pub const CURLUE_BAD_FRAGMENT: CURLUCode = 20;
1198+
pub const CURLUE_BAD_HOSTNAME: CURLUCode = 21;
1199+
pub const CURLUE_BAD_IPV6: CURLUCode = 22;
1200+
pub const CURLUE_BAD_LOGIN: CURLUCode = 23;
1201+
pub const CURLUE_BAD_PASSWORD: CURLUCode = 24;
1202+
pub const CURLUE_BAD_PATH: CURLUCode = 25;
1203+
pub const CURLUE_BAD_QUERY: CURLUCode = 26;
1204+
pub const CURLUE_BAD_SCHEME: CURLUCode = 27;
1205+
pub const CURLUE_BAD_SLASHES: CURLUCode = 28;
1206+
pub const CURLUE_BAD_USER: CURLUCode = 29;
1207+
pub const CURLUE_LACKS_IDN: CURLUCode = 30;
1208+
pub const CURLUE_TOO_LARGE: CURLUCode = 31;
1209+
pub const CURLUE_LAST: CURLUCode = 32;
1210+
1211+
pub const CURLUPART_URL: CURLUPart = 0;
1212+
pub const CURLUPART_SCHEME: CURLUPart = 1;
1213+
pub const CURLUPART_USER: CURLUPart = 2;
1214+
pub const CURLUPART_PASSWORD: CURLUPart = 3;
1215+
pub const CURLUPART_OPTIONS: CURLUPart = 4;
1216+
pub const CURLUPART_HOST: CURLUPart = 5;
1217+
pub const CURLUPART_PORT: CURLUPart = 6;
1218+
pub const CURLUPART_PATH: CURLUPart = 7;
1219+
pub const CURLUPART_QUERY: CURLUPart = 8;
1220+
pub const CURLUPART_FRAGMENT: CURLUPart = 9;
1221+
pub const CURLUPART_ZONEID: CURLUPart = 10;
1222+
1223+
pub const CURLU_DEFAULT_PORT: c_uint = 1 << 0;
1224+
pub const CURLU_NO_DEFAULT_PORT: c_uint = 1 << 1;
1225+
pub const CURLU_DEFAULT_SCHEME: c_uint = 1 << 2;
1226+
pub const CURLU_NON_SUPPORT_SCHEME: c_uint = 1 << 3;
1227+
pub const CURLU_PATH_AS_IS: c_uint = 1 << 4;
1228+
pub const CURLU_DISALLOW_USER: c_uint = 1 << 5;
1229+
pub const CURLU_URLDECODE: c_uint = 1 << 6;
1230+
pub const CURLU_URLENCODE: c_uint = 1 << 7;
1231+
pub const CURLU_APPENDQUERY: c_uint = 1 << 8;
1232+
pub const CURLU_GUESS_SCHEME: c_uint = 1 << 9;
1233+
pub const CURLU_NO_AUTHORITY: c_uint = 1 << 10;
1234+
pub const CURLU_ALLOW_SPACE: c_uint = 1 << 11;
1235+
pub const CURLU_PUNYCODE: c_uint = 1 << 12;
1236+
pub const CURLU_PUNY2IDN: c_uint = 1 << 13;
1237+
pub const CURLU_GET_EMPTY: c_uint = 1 << 14;
1238+
pub const CURLU_NO_GUESS_SCHEME: c_uint = 1 << 15;
1239+
1240+
pub enum CURLU {}
1241+
1242+
extern "C" {
1243+
pub fn curl_url() -> *mut CURLU;
1244+
pub fn curl_url_cleanup(handle: *mut CURLU);
1245+
pub fn curl_url_dup(in_: *const CURLU) -> *mut CURLU;
1246+
pub fn curl_url_get(
1247+
handle: *const CURLU,
1248+
what: CURLUPart,
1249+
part: *mut *mut c_char,
1250+
flags: c_uint,
1251+
) -> CURLUCode;
1252+
pub fn curl_url_set(
1253+
handle: *mut CURLU,
1254+
what: CURLUPart,
1255+
part: *const c_char,
1256+
flags: c_uint,
1257+
) -> CURLUCode;
1258+
pub fn curl_url_strerror(code: CURLUCode) -> *const c_char;
1259+
}
1260+
}
1261+
#[cfg(feature = "url")]
1262+
pub use url::*;
1263+
11701264
pub fn rust_crate_version() -> &'static str {
11711265
env!("CARGO_PKG_VERSION")
11721266
}

0 commit comments

Comments
 (0)