Exemple #1
0
// look for app_versions.xml file in project dir.
// If find, get app versions from there,
// and use "anonymous platform" mechanism for this project
//
void CLIENT_STATE::check_anonymous() {
    unsigned int i;
    char path[MAXPATHLEN];
    FILE* f;
    int retval;

    for (i=0; i<projects.size(); i++) {
        PROJECT* p = projects[i];
        sprintf(path, "%s/%s", p->project_dir(), APP_INFO_FILE_NAME);
        f = fopen(path, "r");
        if (!f) continue;
        msg_printf(p, MSG_INFO,
            "Found %s; using anonymous platform", APP_INFO_FILE_NAME
        );

        p->anonymous_platform = true;
            // flag as anonymous even if can't parse file
        retval = parse_app_info(p, f);
        if (retval) {
            msg_printf_notice(p, false,
                "http://boinc.berkeley.edu/manager_links.php?target=notice&controlid=app_info",
                "%s",
                _("Syntax error in app_info.xml")
            );
        }
        fclose(f);
    }
}
void CLIENT_STATE::parse_env_vars() {
    char *p;
    PARSED_URL purl;

    p = getenv("HTTP_PROXY");
    if (p && strlen(p) > 0) {
        parse_url(p, purl);
        switch (purl.protocol) {
        case URL_PROTOCOL_HTTP:
        case URL_PROTOCOL_HTTPS:
            env_var_proxy_info.present = true;
            env_var_proxy_info.use_http_proxy = true;
            strcpy(env_var_proxy_info.http_user_name, purl.user);
            strcpy(env_var_proxy_info.http_user_passwd, purl.passwd);
            strcpy(env_var_proxy_info.http_server_name, purl.host);
            env_var_proxy_info.http_server_port = purl.port;
            break;
        default:
            msg_printf_notice(0, false,
                "http://boinc.berkeley.edu/manager_links.php?target=notice&controlid=proxy_env",
                _("The HTTP_PROXY environment variable must specify an HTTP proxy")
            );
        }
    }
    p = getenv("HTTP_USER_NAME");
    if (p) {
        env_var_proxy_info.use_http_auth = true;
        strcpy(env_var_proxy_info.http_user_name, p);
        p = getenv("HTTP_USER_PASSWD");
        if (p) {
            strcpy(env_var_proxy_info.http_user_passwd, p);
        }
    }

	p = getenv("SOCKS_SERVER");
	if (!p) p = getenv("SOCKS5_SERVER");
    if (p && strlen(p)) {
        parse_url(p, purl);
        env_var_proxy_info.present = true;
        env_var_proxy_info.use_socks_proxy = true;
        strcpy(env_var_proxy_info.socks5_user_name, purl.user);
        strcpy(env_var_proxy_info.socks5_user_passwd, purl.passwd);
        strcpy(env_var_proxy_info.socks_server_name, purl.host);
        env_var_proxy_info.socks_server_port = purl.port;
    }

	p = getenv("SOCKS5_USER");
	if (!p) p = getenv("SOCKS_USER");
    if (p) {
        strcpy(env_var_proxy_info.socks5_user_name, p);
    }

	p = getenv("SOCKS5_PASSWD");
    if (p) {
        strcpy(env_var_proxy_info.socks5_user_passwd, p);
    }
}
static void show_newer_version_msg() {
    msg_printf_notice(0, true,
        "http://boinc.berkeley.edu/manager_links.php?target=notice&controlid=download",
        "%s <a href=%s>%s</a>",
        _("A new version of BOINC is available."),
        config.client_download_url.c_str(),
        _("Download it.")
    );
}