mirror of
https://github.com/c-cube/ezcurl.git
synced 2025-12-06 03:05:31 -05:00
add a default user-agent
This commit is contained in:
parent
78aff9928d
commit
7b0c8230ae
1 changed files with 7 additions and 5 deletions
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let opt_iter ~f = function None -> () | Some x -> f x
|
let opt_iter ~f = function None -> () | Some x -> f x
|
||||||
|
|
||||||
module Config = struct
|
module Config = struct
|
||||||
|
|
@ -9,6 +8,7 @@ module Config = struct
|
||||||
follow_location: bool;
|
follow_location: bool;
|
||||||
username: string option;
|
username: string option;
|
||||||
password: string option;
|
password: string option;
|
||||||
|
user_agent: string option;
|
||||||
}
|
}
|
||||||
|
|
||||||
let default : t = {
|
let default : t = {
|
||||||
|
|
@ -18,6 +18,7 @@ module Config = struct
|
||||||
authmethod=None;
|
authmethod=None;
|
||||||
username=None;
|
username=None;
|
||||||
password=None;
|
password=None;
|
||||||
|
user_agent=Some "Ezcurl";
|
||||||
}
|
}
|
||||||
|
|
||||||
let password x self = {self with password=Some x}
|
let password x self = {self with password=Some x}
|
||||||
|
|
@ -42,16 +43,16 @@ module Config = struct
|
||||||
let pp out (self:t) =
|
let pp out (self:t) =
|
||||||
let {
|
let {
|
||||||
verbose; authmethod; max_redirects; follow_location;
|
verbose; authmethod; max_redirects; follow_location;
|
||||||
username; password;
|
username; password; user_agent
|
||||||
} = self in
|
} = self in
|
||||||
Format.fprintf out
|
Format.fprintf out
|
||||||
"{@[verbose=%B;@ max_redirects=%d;@ follow_location=%B;@ \
|
"{@[verbose=%B;@ max_redirects=%d;@ follow_location=%B;@ \
|
||||||
username=%s;@ password=%s;@ authmethod=%s@]}"
|
username=%s;@ password=%s;@ authmethod=%s; user_agent=%s@]}"
|
||||||
verbose max_redirects follow_location
|
verbose max_redirects follow_location
|
||||||
(str_of_str_opt username) (str_of_str_opt password)
|
(str_of_str_opt username) (str_of_str_opt password)
|
||||||
(match authmethod with
|
(match authmethod with
|
||||||
| None -> "none"
|
| None -> "none"
|
||||||
| Some l -> List.map string_of_authmethod l |> String.concat ",")
|
| Some l -> List.map string_of_authmethod l |> String.concat ",") (str_of_str_opt user_agent)
|
||||||
|
|
||||||
let to_string s = Format.asprintf "%a" pp s
|
let to_string s = Format.asprintf "%a" pp s
|
||||||
end
|
end
|
||||||
|
|
@ -76,11 +77,12 @@ let delete = Curl.cleanup
|
||||||
let _apply_config (self:t) (config:Config.t) : unit =
|
let _apply_config (self:t) (config:Config.t) : unit =
|
||||||
let {
|
let {
|
||||||
Config.verbose; max_redirects; follow_location; authmethod;
|
Config.verbose; max_redirects; follow_location; authmethod;
|
||||||
username; password;
|
username; password; user_agent
|
||||||
} = config in
|
} = config in
|
||||||
Curl.set_verbose self verbose;
|
Curl.set_verbose self verbose;
|
||||||
Curl.set_maxredirs self max_redirects;
|
Curl.set_maxredirs self max_redirects;
|
||||||
Curl.set_followlocation self follow_location;
|
Curl.set_followlocation self follow_location;
|
||||||
|
Option.iter (fun user_agent -> Curl.set_useragent self user_agent) user_agent;
|
||||||
opt_iter authmethod ~f:(Curl.set_httpauth self);
|
opt_iter authmethod ~f:(Curl.set_httpauth self);
|
||||||
opt_iter username ~f:(Curl.set_username self);
|
opt_iter username ~f:(Curl.set_username self);
|
||||||
opt_iter password ~f:(Curl.set_password self);
|
opt_iter password ~f:(Curl.set_password self);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue