本文整理汇总了C++中Proxy::set_type方法的典型用法代码示例。如果您正苦于以下问题:C++ Proxy::set_type方法的具体用法?C++ Proxy::set_type怎么用?C++ Proxy::set_type使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Proxy
的用法示例。
在下文中一共展示了Proxy::set_type方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv) {
int ret;
URL url;
Downloader downloader;
Task task;
Proxy proxy;
char *ptr = NULL;
// init_config
// parse arguments
// parse url
// ftp or http ?
// new download thread
signal(SIGPIPE, SIG_IGN);
#ifdef HAVE_SSL
SSL_load_error_strings();
SSLeay_add_ssl_algorithms();
#endif
while (1) {
int option_index = 0;
ret = getopt_long(argc, argv, short_options,
long_options, &option_index);
if (ret == -1) break;
switch (ret) {
case 'b':
global_debug = true;
break;
case 'c':
task.tryCount = atoi(optarg);
break;
case 'd':
task.set_local_dir(optarg);
break;
case 'f':
task.set_local_file(optarg);
break;
case 'h':
print_help();
return 0;
break;
case 'i':
task.retryInterval = atoi(optarg);
break;
case 'n':
task.threadNum = atoi(optarg);
break;
case 'r':
task.set_referer(optarg);
break;
case 't':
task.timeout = atoi(optarg);
break;
case 'v':
cout << "Mytget " VERSION << endl;
return 0;
case 'x':
ptr = StrDup(optarg);
break;
case 'H':
task.set_host(optarg);
break;
case '?':
default:
print_help();
return -1;
}
}
if (ptr == NULL) {
ptr = StrDup(getenv("proxy"));
}
if (ptr) {
if (url.set_url(ptr) < 0) {
delete[] ptr;
cerr << "!!!Please check your http_proxy set" << endl;
print_help();
return -1;
}
delete[] ptr;
if (url.get_protocol() != HTTP) {
cerr << "!!!The proxy type is not supported" << endl;
return -1;
}
proxy.set_type(HTTP_PROXY);
proxy.set_host(url.get_host());
proxy.set_port(url.get_port());
proxy.set_user(url.get_user());
proxy.set_password(url.get_password());
task.proxy = proxy;
}
if (optind >= argc) {
print_help();
return -1;
}
while (optind < argc) {
//.........这里部分代码省略.........