Mercurial > pidgin.yaz
diff plugins/yay/conn.c @ 1565:2c66d386be90
[gaim-migrate @ 1575]
http proxy for libyay. yay.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 13 Mar 2001 10:05:45 +0000 |
parents | 92b3dd1e4129 |
children | e9faf5dfdba0 |
line wrap: on
line diff
--- a/plugins/yay/conn.c Sun Mar 11 12:38:59 2001 +0000 +++ b/plugins/yay/conn.c Tue Mar 13 10:05:45 2001 +0000 @@ -34,6 +34,16 @@ return sess; } +void yahoo_set_proxy(struct yahoo_session *session, int proxy_type, char *proxy_host, int proxy_port) +{ + if (!session || !proxy_type || !proxy_host) + return; + + session->proxy_type = proxy_type; + session->proxy_host = g_strdup(proxy_host); + session->proxy_port = proxy_port; +} + static int yahoo_connect_host(struct yahoo_session *sess, const char *host, int port, int *statusret) { struct sockaddr_in sa; @@ -83,6 +93,12 @@ if (host) { conn->socket = yahoo_connect_host(session, host, port, &status); + } else if (session->proxy_type) { + YAHOO_PRINT(session, YAHOO_LOG_DEBUG, "connecting to proxy"); + conn->socket = yahoo_connect_host(session, session->proxy_host, + session->proxy_port, &status); + if (type == YAHOO_CONN_TYPE_MAIN) + conn->type = YAHOO_CONN_TYPE_PROXY; } else { switch (type) { case YAHOO_CONN_TYPE_AUTH: @@ -230,6 +246,8 @@ { if (!session) return 0; + if (session->proxy_host) + g_free(session->proxy_host); g_free(session); return 0; }