Mercurial > pidgin.yaz
comparison 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 |
comparison
equal
deleted
inserted
replaced
1564:aa69b15d9403 | 1565:2c66d386be90 |
---|---|
30 | 30 |
31 if (!(sess = g_new0(struct yahoo_session, 1))) | 31 if (!(sess = g_new0(struct yahoo_session, 1))) |
32 return NULL; | 32 return NULL; |
33 | 33 |
34 return sess; | 34 return sess; |
35 } | |
36 | |
37 void yahoo_set_proxy(struct yahoo_session *session, int proxy_type, char *proxy_host, int proxy_port) | |
38 { | |
39 if (!session || !proxy_type || !proxy_host) | |
40 return; | |
41 | |
42 session->proxy_type = proxy_type; | |
43 session->proxy_host = g_strdup(proxy_host); | |
44 session->proxy_port = proxy_port; | |
35 } | 45 } |
36 | 46 |
37 static int yahoo_connect_host(struct yahoo_session *sess, const char *host, int port, int *statusret) | 47 static int yahoo_connect_host(struct yahoo_session *sess, const char *host, int port, int *statusret) |
38 { | 48 { |
39 struct sockaddr_in sa; | 49 struct sockaddr_in sa; |
81 conn = g_new0(struct yahoo_conn, 1); | 91 conn = g_new0(struct yahoo_conn, 1); |
82 conn->type = type; | 92 conn->type = type; |
83 | 93 |
84 if (host) { | 94 if (host) { |
85 conn->socket = yahoo_connect_host(session, host, port, &status); | 95 conn->socket = yahoo_connect_host(session, host, port, &status); |
96 } else if (session->proxy_type) { | |
97 YAHOO_PRINT(session, YAHOO_LOG_DEBUG, "connecting to proxy"); | |
98 conn->socket = yahoo_connect_host(session, session->proxy_host, | |
99 session->proxy_port, &status); | |
100 if (type == YAHOO_CONN_TYPE_MAIN) | |
101 conn->type = YAHOO_CONN_TYPE_PROXY; | |
86 } else { | 102 } else { |
87 switch (type) { | 103 switch (type) { |
88 case YAHOO_CONN_TYPE_AUTH: | 104 case YAHOO_CONN_TYPE_AUTH: |
89 conn->socket = yahoo_connect_host(session, YAHOO_AUTH_HOST, | 105 conn->socket = yahoo_connect_host(session, YAHOO_AUTH_HOST, |
90 YAHOO_AUTH_PORT, &status); | 106 YAHOO_AUTH_PORT, &status); |
228 | 244 |
229 int yahoo_delete(struct yahoo_session *session) | 245 int yahoo_delete(struct yahoo_session *session) |
230 { | 246 { |
231 if (!session) | 247 if (!session) |
232 return 0; | 248 return 0; |
249 if (session->proxy_host) | |
250 g_free(session->proxy_host); | |
233 g_free(session); | 251 g_free(session); |
234 return 0; | 252 return 0; |
235 } | 253 } |