aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--protocols/yahoo/libyahoo2.c11
-rw-r--r--protocols/yahoo/yahoo.c4
2 files changed, 4 insertions, 11 deletions
diff --git a/protocols/yahoo/libyahoo2.c b/protocols/yahoo/libyahoo2.c
index 80d88a85..897ba27b 100644
--- a/protocols/yahoo/libyahoo2.c
+++ b/protocols/yahoo/libyahoo2.c
@@ -380,7 +380,6 @@ static void del_from_list(struct yahoo_data *yd)
}
/* call repeatedly to get the next one */
-/*
static struct yahoo_input_data * find_input_by_id(int id)
{
YList *l;
@@ -391,7 +390,6 @@ static struct yahoo_input_data * find_input_by_id(int id)
}
return NULL;
}
-*/
static struct yahoo_input_data * find_input_by_id_and_webcam_user(int id, const char * who)
{
@@ -796,6 +794,7 @@ static int yahoo_send_data(int fd, void *data, int len)
void yahoo_close(int id)
{
struct yahoo_data *yd = find_conn_by_id(id);
+
if(!yd)
return;
@@ -3165,7 +3164,7 @@ int yahoo_write_ready(int id, int fd, void *data)
struct data_queue *tx;
LOG(("write callback: id=%d fd=%d data=%p", id, fd, data));
- if(!yid || !yid->txqueues)
+ if(!yid || !yid->txqueues || !find_conn_by_id(id))
return -2;
tx = yid->txqueues->data;
@@ -3841,11 +3840,9 @@ void yahoo_logoff(int id)
}
}
-
-/* do {
+ do {
yahoo_input_close(yid);
- } while((yid = find_input_by_id(id)));*/
-
+ } while((yid = find_input_by_id(id)));
}
void yahoo_get_list(int id)
diff --git a/protocols/yahoo/yahoo.c b/protocols/yahoo/yahoo.c
index ab30df4d..c84685e9 100644
--- a/protocols/yahoo/yahoo.c
+++ b/protocols/yahoo/yahoo.c
@@ -453,10 +453,6 @@ gboolean byahoo_write_ready_callback( gpointer data, gint source, b_input_condit
{
struct byahoo_write_ready_data *d = data;
- if( !byahoo_get_ic_by_id( d->id ) )
- /* WTF doesn't libyahoo clean this up? */
- return FALSE;
-
yahoo_write_ready( d->id, d->fd, d->data );
return FALSE;