+  tempsrc:TInetSockAddrV;\r
+  tempsrclen:integer;\r
+  srcx : {$ifdef mswindows}winsock.TSockAddr{$else}TInetSockAddrV{$endif} absolute tempsrc;\r
+  biniptemp:tbinip;\r
+begin\r
+  {$ifdef secondlistener}\r
+  if assigned(secondlistener) then if lastsessionfromsecond then begin\r
+    lastsessionfromsecond := false;\r
+    result := secondlistener.receivefrom(data,len,src,srclen);\r
+    exit;\r
+  end;\r
+  {$endif}\r
+  tempsrclen := sizeof(tempsrc);\r
+  result := recvfrom(self.fdhandlein,data^,len,0,srcx,tempsrclen);\r
+\r
+  {$ifdef ipv6}\r
+  biniptemp := inaddrvtobinip(tempsrc);\r
+  if needconverttov4(biniptemp) then begin\r
+    converttov4(biniptemp);\r
+    tempsrclen := makeinaddrv(biniptemp,inttostr(ntohs(tempsrc.InAddr.port)),tempsrc);\r
+  end;\r
+  {$endif}\r
+\r
+  move(tempsrc,src,srclen);\r
+  srclen := tempsrclen;\r
+end;\r
+\r
+procedure tlsocket.taskcallconnectionfailedhandler(wparam,lparam : longint);\r