OSSP CVS Repository

ossp - Check-in [1661]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 1661
Date: 2002-Jan-27 13:39:10 (local)
2002-Jan-27 12:39:10 (UTC)
User:rse
Branch:
Comment: Correctly support PTH_FDMODE_NONBLOCK in pth_connect and pth_accept.

Submitted by: Archie Cobbs <archie@packetdesign.com>

Tickets:
Inspections:
Files:
ossp-pkg/pth/ChangeLog      1.555 -> 1.556     3 inserted, 0 deleted
ossp-pkg/pth/THANKS      1.82 -> 1.83     2 inserted, 1 deleted
ossp-pkg/pth/pth_high.c      1.81 -> 1.82     3 inserted, 2 deleted

ossp-pkg/pth/ChangeLog 1.555 -> 1.556

--- ChangeLog    2002/01/27 12:34:29     1.555
+++ ChangeLog    2002/01/27 12:39:10     1.556
@@ -21,6 +21,9 @@
     
   Changes between 1.4.0 and 1.4.1 (24-Mar-2001 to 27-Jan-2002)
 
+   *) Correctly support PTH_FDMODE_NONBLOCK in pth_connect and pth_accept. 
+      [Archie Cobbs <archie@packetdesign.com>]
+
    *) Fixed typos in manual page.
       [Michael Schloh v. Bennewitz <michael.schloh@de.cw.net>, 
        Takashi Ishihara <tishihara@ucdavis.edu>]


ossp-pkg/pth/THANKS 1.82 -> 1.83

--- THANKS       2001/11/30 12:40:31     1.82
+++ THANKS       2002/01/27 12:39:10     1.83
@@ -1,4 +1,4 @@
-   ____  _   _
+
   |  _ \| |_| |__                      ``There is enough for the need of
   | |_) | __| '_ \                       everyone in this world, but not
   |  __/| |_| | | |                      for the greed of everyone.'' 
@@ -22,6 +22,7 @@
     o  Edwin Brown                 <Edwin.Brown@sdrc.com>
     o  Dan Buckler                 <buckler@sco.com>
     o  Mark Burton                 <markb@ordern.com>
+    o  Archie Cobbs                <archie@packetdesign.com>
     o  Jon Cook                    <cookj@cs.man.ac.uk>
     o  Philippe Defert             <Philippe.Defert@cern.ch>
     o  David Dureau                <david.dureau@cea.fr>


ossp-pkg/pth/pth_high.c 1.81 -> 1.82

--- pth_high.c   2002/01/27 11:03:40     1.81
+++ pth_high.c   2002/01/27 12:39:10     1.82
@@ -496,7 +496,7 @@
     errno_shield { pth_fdmode(s, fdmode); }
 
     /* if it is still on progress wait until socket is really writeable */
-    if (rv == -1 && errno == EINPROGRESS) {
+    if (rv == -1 && errno == EINPROGRESS && fdmode != PTH_FDMODE_NONBLOCK) {
         ev = pth_event(PTH_EVENT_FD|PTH_UNTIL_FD_WRITEABLE|PTH_MODE_STATIC, &ev_key, s);
         if (ev_extra != NULL)
             pth_event_concat(ev, ev_extra, NULL);
@@ -541,7 +541,8 @@
     /* poll socket via accept */
     ev = NULL;
     while ((rv = pth_sc(accept)(s, addr, addrlen)) == -1
-           && (errno == EAGAIN || errno == EWOULDBLOCK)) {
+           && (errno == EAGAIN || errno == EWOULDBLOCK)
+           && fdmode != PTH_FDMODE_NONBLOCK) {
         /* do lazy event allocation */
         if (ev == NULL) {
             ev = pth_event(PTH_EVENT_FD|PTH_UNTIL_FD_READABLE|PTH_MODE_STATIC, &ev_key, s);

CVSTrac 2.0.1