home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   alt.bbs.mystic      Mystic Sysops are mystical nerds...      11,842 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 10,001 of 11,842   
   g00r00 to All   
   Re: Door32.sys development   
   12 Jun 21 09:47:11   
   
   From: nospam.g00r00@f215.n129.z1.fidonet.org   
      
    LW> 1) Does Mystic pass a blocking or non-blocking socket handle?   
      
   Blocking   
      
    LW> 2) With regard to point 1, is there an established standard which all BBS   
    LW> systems adhere to (i.e. blocking or non-blocking)?   
      
   The only standard that I know of that ever attempted to define anything was   
   Mystic's DOOR32 and that uses blocking sockets.  I assume you'd probably get   
   blocking from most BBSes then by default, but I can't say for sure what other   
   software does.   
      
    LW> 3) If the door changes socket mode, should this be undone prior to exit?   
      
   I think it'd be a good practice to do this.   
      
   The original intention was that the socket should be duplicated before being   
   passed to the door, but I think in practice that didn't end up being guarenteed   
   or even done at all because of variations in operating systems (and if I am not   
   mistaken some OSes specifically said that sockets should not be duplicated).   
      
   I didn't have the foresight back in the 1990s to specifically call this stuff   
   out in the DOOR32 docs unfortunately and now I forget most of the details like   
   this.  It was all pretty new back then and I was inexperienced.   
      
    LW> 4) Is the door expected to perform winsock clean-up if the client   
    LW> performs an impromptu disconnect?   
      
   It *might* be safe to call only when it drops but I can't say for sure without   
   experimentation.   
      
   If I remember correctly calling WSACleanup is a Windows specific thing and it   
   invalidates any socket handles used by the process. For that reason I think it   
   was not called in any case within D32 doors.  Instead it let the BBS detect the   
   connection loss and do what it does.   
      
   Things may behave differently depending of if/when the socket was duplicated by   
   the BBS before being passed, but I would   
   operate on the assumption that the socket is not duplicated.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca