X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fos_openbsd.c;h=bf02113f38481cdb764df4abe6ca1600bf5206b3;hb=fda30451cac5936729c683d38a700f4928812c6f;hp=805d87f0a52260c0844bbb7a0fc9749f1cb07c45;hpb=73b227d6b3e2c89d655e23aedf9a318bc192212b;p=ircu2.10.12-pk.git diff --git a/ircd/os_openbsd.c b/ircd/os_openbsd.c index 805d87f..bf02113 100644 --- a/ircd/os_openbsd.c +++ b/ircd/os_openbsd.c @@ -367,13 +367,11 @@ IOResult os_sendv_nonb(int fd, struct MsgQ* buf, unsigned int* count_in, return IO_FAILURE; } -int os_connect_nonb(int fd, const struct sockaddr_in* sin) +IOResult os_connect_nonb(int fd, const struct sockaddr_in* sin) { - if (connect(fd, (struct sockaddr*) sin, sizeof(struct sockaddr_in))) { - if (errno != EINPROGRESS) - return 0; - } - return 1; + if (connect(fd, (struct sockaddr*) sin, sizeof(struct sockaddr_in))) + return (errno == EINPROGRESS) ? IO_BLOCKED : IO_FAILURE; + return IO_SUCCESS; } int os_get_sockname(int fd, struct sockaddr_in* sin_out)