Mercurial > pidgin
comparison src/util.c @ 14089:10e8eb6a4910
[gaim-migrate @ 16712]
Pretty large commit here. Basically I got sick of having to verify
that gc is still valid on all the callback functions for
gaim_proxy_connect(). The fix for this for gaim_proxy_connect() to
return something that allows the connection attempt to be canceled.
It's not quite there yet, but this is a good first step. I changed
gaim_proxy_connect() to return a reference to a new
GaimProxyConnectInfo (this used to be called PHB). Eventually this
can be passed to a function that'll cancel the connection attempt.
I also decided to add an error_cb instead of using connect_cb and
passing a file descriptor of -1. And proxy.c will also pass an
error message to callers which should explain the reason that the
connection attempt failed.
Oh, and proxy.c now never calls gaim_connection_error()
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 12 Aug 2006 10:12:43 +0000 |
parents | 426a98fa4527 |
children | 7a205b430d19 |
comparison
equal
deleted
inserted
replaced
14088:223570831b0b | 14089:10e8eb6a4910 |
---|---|
3365 gfud->inpa = gaim_input_add(source, GAIM_INPUT_READ, url_fetch_recv_cb, | 3365 gfud->inpa = gaim_input_add(source, GAIM_INPUT_READ, url_fetch_recv_cb, |
3366 gfud); | 3366 gfud); |
3367 } | 3367 } |
3368 | 3368 |
3369 static void | 3369 static void |
3370 url_fetch_connect_cb(gpointer url_data, gint source, GaimInputCondition cond) | 3370 url_fetch_connect_cb(gpointer url_data, gint source) |
3371 { | 3371 { |
3372 GaimFetchUrlData *gfud; | 3372 GaimFetchUrlData *gfud; |
3373 | 3373 |
3374 gfud = url_data; | 3374 gfud = url_data; |
3375 | 3375 |
3446 | 3446 |
3447 gaim_url_parse(url, &gfud->website.address, &gfud->website.port, | 3447 gaim_url_parse(url, &gfud->website.address, &gfud->website.port, |
3448 &gfud->website.page, &gfud->website.user, &gfud->website.passwd); | 3448 &gfud->website.page, &gfud->website.user, &gfud->website.passwd); |
3449 | 3449 |
3450 if (gaim_proxy_connect(NULL, gfud->website.address, | 3450 if (gaim_proxy_connect(NULL, gfud->website.address, |
3451 gfud->website.port, url_fetch_connect_cb, gfud) != 0) { | 3451 gfud->website.port, url_fetch_connect_cb, NULL, gfud) == NULL) |
3452 { | |
3452 destroy_fetch_url_data(gfud); | 3453 destroy_fetch_url_data(gfud); |
3453 | 3454 |
3454 cb(user_data, g_strdup(_("g003: Error opening connection.\n")), 0); | 3455 cb(user_data, g_strdup(_("g003: Error opening connection.\n")), 0); |
3455 } | 3456 } |
3456 } | 3457 } |