Mercurial > pidgin.yaz
comparison src/proxy.c @ 4648:4bb99cdfd837
[gaim-migrate @ 4959]
Wrong value was being checked for socket error after call to getsockopt
committer: Tailor Script <tailor@pidgin.im>
author | Herman Bloggs <hermanator12002@yahoo.com> |
---|---|
date | Tue, 04 Mar 2003 17:45:21 +0000 |
parents | d19872836812 |
children | 9ce3c698ff5e |
comparison
equal
deleted
inserted
replaced
4647:ba87412b1a57 | 4648:4bb99cdfd837 |
---|---|
567 | 567 |
568 static void no_one_calls(gpointer data, gint source, GaimInputCondition cond) | 568 static void no_one_calls(gpointer data, gint source, GaimInputCondition cond) |
569 { | 569 { |
570 struct PHB *phb = data; | 570 struct PHB *phb = data; |
571 unsigned int len; | 571 unsigned int len; |
572 int error = ETIMEDOUT; | 572 int error=0; |
573 int ret=0; | |
573 | 574 |
574 debug_printf("Connected\n"); | 575 debug_printf("Connected\n"); |
575 | 576 |
576 len = sizeof(error); | 577 len = sizeof(error); |
577 if (getsockopt(source, SOL_SOCKET, SO_ERROR, &error, &len) < 0) { | 578 |
579 ret = getsockopt(source, SOL_SOCKET, SO_ERROR, &error, &len); | |
580 if (ret < 0 || error != 0) { | |
578 close(source); | 581 close(source); |
579 gaim_input_remove(phb->inpa); | 582 gaim_input_remove(phb->inpa); |
580 phb->func(phb->data, -1, GAIM_INPUT_READ); | 583 phb->func(phb->data, -1, GAIM_INPUT_READ); |
581 g_free(phb->host); | 584 g_free(phb->host); |
582 g_free(phb); | 585 g_free(phb); |
586 debug_printf("getsockopt SO_ERROR check: %s\n", | |
587 strerror(((ret<0) ? errno : error))); | |
583 return; | 588 return; |
584 } | 589 } |
585 fcntl(source, F_SETFL, 0); | 590 fcntl(source, F_SETFL, 0); |
586 gaim_input_remove(phb->inpa); | 591 gaim_input_remove(phb->inpa); |
587 phb->func(phb->data, source, GAIM_INPUT_READ); | 592 phb->func(phb->data, source, GAIM_INPUT_READ); |