Changeset 6f7ac17 for lib


Ignore:
Timestamp:
2007-12-28T23:27:45Z (13 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
debc281, f394500
Parents:
fb4ebcc5
Message:

Fixed return value check in proxy_connect(), since on some systems
a non-blocking connect() can return immediately (when connecting to
localhost, for example). Closes bug #233 and #340.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/proxy.c

    rfb4ebcc5 r6f7ac17  
    130130        event_debug("proxy_connect_none( \"%s\", %d ) = %d\n", host, port, fd);
    131131       
    132         if (connect(fd, (struct sockaddr *)sin, sizeof(*sin)) < 0) {
    133                 if (sockerr_again()) {
    134                         phb->inpa = b_input_add(fd, GAIM_INPUT_WRITE, gaim_io_connected, phb);
    135                         phb->fd = fd;
    136                 } else {
    137                         closesocket(fd);
    138                         g_free(phb);
    139                         return -1;
    140                 }
    141         }
    142 
    143         return fd;
     132        if (connect(fd, (struct sockaddr *)sin, sizeof(*sin)) < 0 && !sockerr_again()) {
     133                closesocket(fd);
     134                g_free(phb);
     135               
     136                return -1;
     137        } else {
     138                phb->inpa = b_input_add(fd, GAIM_INPUT_WRITE, gaim_io_connected, phb);
     139                phb->fd = fd;
     140               
     141                return fd;
     142        }
    144143}
    145144
Note: See TracChangeset for help on using the changeset viewer.