change blinklist.pas to zlib license with bewares permission
[lcore.git] / lcore.pas
index 77bf4f0674db0b63eebc8df4346c44fb19c7be60..727ca1cf16e76b0931eb6540116d33c7522f3113 100755 (executable)
--- a/lcore.pas
+++ b/lcore.pas
@@ -405,6 +405,9 @@ end;
 procedure tlasio.internalclose(error:word);\r
 begin\r
   if (state<>wsclosed) and (state<>wsinvalidstate) then begin\r
 procedure tlasio.internalclose(error:word);\r
 begin\r
   if (state<>wsclosed) and (state<>wsinvalidstate) then begin\r
+    // -2 is a special indication that we should just exist silently\r
+    // (used for connect failure handling when socket creation fails)\r
+    if (fdhandlein = -2) and (fdhandleout = -2) then exit;\r
     if (fdhandlein < 0) or (fdhandleout < 0) then raise exception.create('internalclose called with invalid fd handles');\r
     eventcore.rmasterclr(fdhandlein);//fd_clr(fdhandlein,fdsrmaster);\r
     eventcore.wmasterclr(fdhandleout);//fd_clr(fdhandleout,fdswmaster);\r
     if (fdhandlein < 0) or (fdhandleout < 0) then raise exception.create('internalclose called with invalid fd handles');\r
     eventcore.rmasterclr(fdhandlein);//fd_clr(fdhandlein,fdsrmaster);\r
     eventcore.wmasterclr(fdhandleout);//fd_clr(fdhandleout,fdswmaster);\r
@@ -573,16 +576,16 @@ begin
           internalclose(0);\r
 \r
         end else begin\r
           internalclose(0);\r
 \r
         end else begin\r
-          {$ifdef win32}
-          if getlasterror=WSAEWOULDBLOCK then begin
-            //the asynchronous nature of windows messages means we sometimes
-            //get here with the buffer full
-            //so do nothing in that case
-          end else
-          {$endif}
-          begin
+          {$ifdef win32}\r
+          if getlasterror=WSAEWOULDBLOCK then begin\r
+            //the asynchronous nature of windows messages means we sometimes\r
+            //get here with the buffer full\r
+            //so do nothing in that case\r
+          end else\r
+          {$endif}\r
+          begin\r
             internalclose({$ifdef win32}getlasterror{$else}linuxerror{$endif});\r
             internalclose({$ifdef win32}getlasterror{$else}linuxerror{$endif});\r
-          end  
+          end  \r
         end;\r
       end;\r
 \r
         end;\r
       end;\r
 \r