boinc/lib/proxy_info.h

86 lines
2.6 KiB
C
Raw Normal View History

// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation,
// either version 3 of the License, or (at your option) any later version.
//
// BOINC is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
#ifndef BOINC_PROXY_INFO_H
#define BOINC_PROXY_INFO_H
struct XML_PARSER;
class MIOFILE;
// info on whether HTTP requests need to go through a proxy
//
struct PROXY_INFO {
bool present;
// set if rest of structure is filled in
// the following is populated if user has specified an HTTP proxy
//
bool use_http_proxy;
bool use_http_auth;
char http_server_name[256];
int http_server_port;
char http_user_name[256];
char http_user_passwd[256];
// the following is populated if user has specified a SOCKS proxy.
// Only SOCKS 5 is supported.
//
bool use_socks_proxy;
char socks_server_name[256];
int socks_server_port;
char socks5_user_name[256];
2013-04-03 00:23:37 +00:00
char socks5_user_passwd[256];
bool socks5_remote_dns;
// send DNS requests to the proxy
// a list of hosts for which we should NOT go through a proxy
// (e.g. a company PC attached to both local and remote projects)
//
char noproxy_hosts[256];
// don't autodetect proxy (Win)
//
bool no_autodetect;
// On Windows, if neither HTTP nor SOCKS proxy is specified,
// we try the "autodetect" mechanism.
// If it gets anything, the info is filled in below
//
bool autodetect_proxy_supported;
// if true, some mechanism for detecting proxy servers is
// supported by the client.
int autodetect_protocol;
// URL_PROTOCOL_SOCKS, URL_PROTOCOL_HTTP, or URL_PROTOCOL_HTTPS
char autodetect_server_name[256];
int autodetect_port;
bool need_autodetect_proxy_settings;
// if true, we need to detect proxy settings.
// set to true if ref web site lookup fails
bool have_autodetect_proxy_settings;
// whether above fields are defined
PROXY_INFO() {
clear();
}
int parse(XML_PARSER&);
int parse_config(XML_PARSER&);
int write(MIOFILE&);
void clear();
};
#endif