Mercurial > pidgin
diff src/gaimrc.c @ 5681:46d7ad0dfa26
[gaim-migrate @ 6100]
Rewrote the proxy code. It should now work with the new prefs, and it has a
namespace and API too!
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Tue, 03 Jun 2003 02:00:33 +0000 |
parents | 5c5678c7b900 |
children | b61520e71679 |
line wrap: on
line diff
--- a/src/gaimrc.c Mon Jun 02 22:30:25 2003 +0000 +++ b/src/gaimrc.c Tue Jun 03 02:00:33 2003 +0000 @@ -660,16 +660,15 @@ if (strcmp(p->option, "proxy_opts")) return account; - if(atoi(p->value[0]) != PROXY_USE_GLOBAL) { - account->gpi = g_new0(struct gaim_proxy_info, 1); - account->gpi->proxytype = atoi(p->value[0]); - g_snprintf(account->gpi->proxyhost, sizeof(account->gpi->proxyhost), - "%s", p->value[1]); - account->gpi->proxyport = atoi(p->value[2]); - g_snprintf(account->gpi->proxyuser, sizeof(account->gpi->proxyuser), - "%s", p->value[3]); - g_snprintf(account->gpi->proxypass, sizeof(account->gpi->proxypass), - "%s", p->value[4]); + if(atoi(p->value[0]) != GAIM_PROXY_USE_GLOBAL) { + GaimProxyInfo *info; + + info = gaim_proxy_info_new(); + gaim_proxy_info_set_type(info, atoi(p->value[0])); + gaim_proxy_info_set_host(info, p->value[1]); + gaim_proxy_info_set_port(info, atoi(p->value[2])); + gaim_proxy_info_set_username(info, p->value[3]); + gaim_proxy_info_set_password(info, p->value[4]); } return account; @@ -1143,6 +1142,8 @@ static gboolean gaimrc_parse_proxy_uri(const char *proxy) { + GaimProxyInfo *info; + char *c, *d; char buffer[2048]; @@ -1221,27 +1222,20 @@ } /* NOTE: HTTP_PROXY takes precendence. */ - if (host[0]) - strcpy(global_proxy_info.proxyhost, host); - else - *global_proxy_info.proxyhost = '\0'; + info = gaim_global_proxy_get_info(); - if (user[0]) - strcpy(global_proxy_info.proxyuser, user); - else - *global_proxy_info.proxyuser = '\0'; + if (*host) gaim_proxy_info_set_host(info, host); + if (*user) gaim_proxy_info_set_username(info, user); + if (*pass) gaim_proxy_info_set_password(info, pass); - if (pass[0]) - strcpy(global_proxy_info.proxypass, pass); - else - *global_proxy_info.proxypass = '\0'; - - global_proxy_info.proxyport = port; + gaim_proxy_info_set_port(info, port); gaim_debug(GAIM_DEBUG_MISC, "gaimrc", "Host: '%s', User: '%s', Password: '%s', Port: %d\n", - global_proxy_info.proxyhost, global_proxy_info.proxyuser, - global_proxy_info.proxypass, global_proxy_info.proxyport); + gaim_proxy_info_get_host(info), + gaim_proxy_info_get_username(info), + gaim_proxy_info_get_password(info), + gaim_proxy_info_get_port(info)); return TRUE; } @@ -1251,9 +1245,11 @@ char buf[2048]; struct parse parse_buffer; struct parse *p; + GaimProxyInfo *info; + + info = gaim_global_proxy_get_info(); buf[0] = 0; - global_proxy_info.proxyhost[0] = 0; gaim_debug(GAIM_DEBUG_MISC, "gaimrc", "gaimrc_read_proxy\n"); while (buf[0] != '}') { @@ -1266,78 +1262,60 @@ p = parse_line(buf, &parse_buffer); if (!strcmp(p->option, "host")) { - g_snprintf(global_proxy_info.proxyhost, - sizeof(global_proxy_info.proxyhost), "%s", p->value[0]); + gaim_proxy_info_set_host(info, p->value[0]); gaim_debug(GAIM_DEBUG_MISC, "gaimrc", - "Set proxyhost %s\n", global_proxy_info.proxyhost); + "Set proxyhost %s\n", p->value[0]); } else if (!strcmp(p->option, "port")) { - global_proxy_info.proxyport = atoi(p->value[0]); + gaim_proxy_info_set_port(info, atoi(p->value[0])); } else if (!strcmp(p->option, "type")) { - global_proxy_info.proxytype = atoi(p->value[0]); + gaim_proxy_info_set_type(info, atoi(p->value[0])); } else if (!strcmp(p->option, "user")) { - g_snprintf(global_proxy_info.proxyuser, - sizeof(global_proxy_info.proxyuser), "%s", p->value[0]); + gaim_proxy_info_set_username(info, p->value[0]); } else if (!strcmp(p->option, "pass")) { - g_snprintf(global_proxy_info.proxypass, - sizeof(global_proxy_info.proxypass), "%s", p->value[0]); + gaim_proxy_info_set_password(info, p->value[0]); } } - if (global_proxy_info.proxyhost[0]) - proxy_info_is_from_gaimrc = 1; + + if (gaim_proxy_info_get_host(info) != NULL) + gaim_global_proxy_set_from_prefs(TRUE); else { + const char *host; gboolean getVars = TRUE; - proxy_info_is_from_gaimrc = 0; - if (g_getenv("HTTP_PROXY")) - g_snprintf(global_proxy_info.proxyhost, - sizeof(global_proxy_info.proxyhost), "%s", - g_getenv("HTTP_PROXY")); - else if (g_getenv("http_proxy")) - g_snprintf(global_proxy_info.proxyhost, - sizeof(global_proxy_info.proxyhost), "%s", - g_getenv("http_proxy")); - else if (g_getenv("HTTPPROXY")) - g_snprintf(global_proxy_info.proxyhost, - sizeof(global_proxy_info.proxyhost), "%s", - g_getenv("HTTPPROXY")); + if ((host = g_getenv("HTTP_PROXY")) != NULL || + (host = g_getenv("http_proxy")) != NULL || + (host = g_getenv("HTTPPROXY")) != NULL) { - if (*global_proxy_info.proxyhost != '\0') - getVars = !gaimrc_parse_proxy_uri(global_proxy_info.proxyhost); + gaim_proxy_info_set_host(info, host); + } + + if (gaim_proxy_info_get_host(info) != NULL) + getVars = !gaimrc_parse_proxy_uri(gaim_proxy_info_get_host(info)); if (getVars) { - if (g_getenv("HTTP_PROXY_PORT")) - global_proxy_info.proxyport = atoi(g_getenv("HTTP_PROXY_PORT")); - else if (g_getenv("http_proxy_port")) - global_proxy_info.proxyport = atoi(g_getenv("http_proxy_port")); - else if (g_getenv("HTTPPROXYPORT")) - global_proxy_info.proxyport = atoi(g_getenv("HTTPPROXYPORT")); + const char *port_str, *user, *pass; + + if ((port_str = g_getenv("HTTP_PROXY_PORT")) != NULL || + (port_str = g_getenv("http_proxy_port")) != NULL || + (port_str = g_getenv("HTTPPROXYPORT")) != NULL) { + + gaim_proxy_info_set_port(info, atoi(port_str)); + } - if (g_getenv("HTTP_PROXY_USER")) - g_snprintf(global_proxy_info.proxyuser, - sizeof(global_proxy_info.proxyuser), "%s", - g_getenv("HTTP_PROXY_USER")); - else if (g_getenv("http_proxy_user")) - g_snprintf(global_proxy_info.proxyuser, - sizeof(global_proxy_info.proxyuser), "%s", - g_getenv("http_proxy_user")); - else if (g_getenv("HTTPPROXYUSER")) - g_snprintf(global_proxy_info.proxyuser, - sizeof(global_proxy_info.proxyuser), "%s", - g_getenv("HTTPPROXYUSER")); + if ((user = g_getenv("HTTP_PROXY_USER")) != NULL || + (user = g_getenv("http_proxy_user")) != NULL || + (user = g_getenv("HTTPPROXYUSER")) != NULL) { + + gaim_proxy_info_set_username(info, user); + } - if (g_getenv("HTTP_PROXY_PASS")) - g_snprintf(global_proxy_info.proxypass, - sizeof(global_proxy_info.proxypass), "%s", - g_getenv("HTTP_PROXY_PASS")); - else if (g_getenv("http_proxy_pass")) - g_snprintf(global_proxy_info.proxypass, - sizeof(global_proxy_info.proxypass), "%s", - g_getenv("http_proxy_pass")); - else if (g_getenv("HTTPPROXYPASS")) - g_snprintf(global_proxy_info.proxypass, - sizeof(global_proxy_info.proxypass), "%s", - g_getenv("HTTPPROXYPASS")); + if ((pass = g_getenv("HTTP_PROXY_PASS")) != NULL || + (pass = g_getenv("http_proxy_pass")) != NULL || + (pass = g_getenv("HTTPPROXYPASS")) != NULL) { + + gaim_proxy_info_set_password(info, pass); + } } } }