diff --git a/rtl/freebsd/unixsock.inc b/rtl/freebsd/unixsock.inc index e2443c210e..345f47b2a5 100644 --- a/rtl/freebsd/unixsock.inc +++ b/rtl/freebsd/unixsock.inc @@ -20,91 +20,76 @@ function fpsocket (domain:cint; xtype:cint; protocol: cint):cint; Begin fpSocket:=Do_Syscall(syscall_nr_socket,Domain,xtype,Protocol); - socketerror:=fpgeterrno; End; function fpsend (s:cint; msg:pointer; len:size_t; flags:cint):ssize_t; begin fpSend:=do_syscall(syscall_nr_sendto,S,TSysParam(msg),Len,Flags,0,0); - socketerror:=fpgeterrno; end; function fpsendto (s:cint; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t; begin fpSendto:=do_syscall(syscall_nr_sendto,S,TSysParam(msg),Len,Flags,TSysParam(tox),tolen); - socketerror:=fpgeterrno; end; function fprecv (s:cint; buf: pointer; len: size_t; flags:cint):ssize_t; begin fpRecv:=do_syscall(syscall_nr_Recvfrom,S,tsysparam(buf),len,flags,0,0); - socketerror:=fpgeterrno; end; function fprecvfrom (s:cint; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t; begin fpRecvFrom:=do_syscall(syscall_nr_Recvfrom,S,TSysParam(buf),len,flags,TSysParam(from),TSysParam(fromlen)); - socketerror:=fpgeterrno; end; function fpbind (s:cint; addrx : psockaddr; addrlen : tsocklen):cint; begin fpBind:=do_syscall(syscall_nr_Bind,S,TSysParam(addrx),addrlen); - socketerror:=fpgeterrno; end; function fplisten (s:cint; backlog : cint):cint; begin fpListen:=do_syscall(syscall_nr_Listen,S,backlog); - socketerror:=fpgeterrno; end; function fpaccept (s:cint; addrx : psockaddr; addrlen : psocklen):cint; begin fpAccept:=do_syscall(syscall_nr_accept,S,TSysParam(addrx),TSysParam(addrlen)); - socketerror:=fpgeterrno; end; function fpconnect (s:cint; name : psockaddr; namelen : tsocklen):cint; begin fpConnect:=do_syscall(syscall_nr_connect,S,TSysParam(name),namelen); - socketerror:=fpgeterrno; end; function fpshutdown (s:cint; how:cint):cint; begin fpShutDown:=do_syscall(syscall_nr_shutdown,S,how); - socketerror:=fpgeterrno; end; function fpgetsockname (s:cint; name : psockaddr; namelen : psocklen):cint; begin fpGetSockName:=do_syscall(syscall_nr_GetSockName,S,TSysParam(name),TSysParam(namelen)); - socketerror:=fpgeterrno; end; function fpgetpeername (s:cint; name : psockaddr; namelen : psocklen):cint; begin fpGetPeerName:=do_syscall(syscall_nr_GetPeerName,S,TSysParam(name),TSysParam(namelen)); - socketerror:=fpgeterrno; end; function fpsetsockopt (s:cint; level:cint; optname:cint; optval:pointer; optlen : tsocklen):cint; begin fpSetSockOpt:=do_syscall(syscall_nr_SetSockOpt,S,level,optname,TSysParam(optval),optlen); - socketerror:=fpgeterrno; end; function fpgetsockopt (s:cint; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint; begin fpGetSockOpt:=do_syscall(syscall_nr_GetSockOpt,S,level,TSysParam(optname),TSysParam(optval),TSysParam(optlen)); - socketerror:=fpgeterrno; end; function fpsocketpair (d:cint; xtype:cint; protocol:cint; sv:pcint):cint; begin fpSocketPair:=do_syscall(syscall_nr_SocketPair,d,xtype,protocol,TSysParam(sv)); - socketerror:=fpgeterrno; end; diff --git a/rtl/inc/socketsh.inc b/rtl/inc/socketsh.inc index 6cee907626..c690a6f2ec 100644 --- a/rtl/inc/socketsh.inc +++ b/rtl/inc/socketsh.inc @@ -159,8 +159,17 @@ type Tsocket=longint; {To easy porting code from Kylix libc unit to sockets unit.} + +{$ifdef Unix} + {$define socketerror_defined} + + property socketerror : cint read fpgeterrno; +{$endif} + +{$ifndef socketerror_defined} Var SocketError:cint; +{$endif} function fpsocket (domain:cint; xtype:cint; protocol: cint):cint; function fprecv (s:cint; buf: pointer; len: size_t; flags: cint):ssize_t; diff --git a/rtl/inc/stdsock.inc b/rtl/inc/stdsock.inc index 2848857684..2148d99422 100644 --- a/rtl/inc/stdsock.inc +++ b/rtl/inc/stdsock.inc @@ -39,90 +39,75 @@ function fpaccept (s:cint; addrx : psockaddr; addrlen : psocklen):cint; begin fpaccept:=cfpaccept(s,addrx,addrlen); - socketerror:=fpgeterrno; end; function fpbind (s:cint; addrx : psockaddr; addrlen : tsocklen):cint; begin fpbind:=cfpbind (s,addrx,addrlen); - socketerror:=fpgeterrno; end; function fpconnect (s:cint; name : psockaddr; namelen : tsocklen):cint; begin fpconnect:=cfpconnect (s,name,namelen); - socketerror:=fpgeterrno; end; function fpgetpeername (s:cint; name : psockaddr; namelen : psocklen):cint; begin fpgetpeername:=cfpgetpeername (s,name,namelen); - socketerror:=fpgeterrno; end; function fpgetsockname (s:cint; name : psockaddr; namelen : psocklen):cint; begin fpgetsockname:=cfpgetsockname(s,name,namelen); - socketerror:=fpgeterrno; end; function fpgetsockopt (s:cint; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint; begin fpgetsockopt:=cfpgetsockopt(s,level,optname,optval,optlen); - socketerror:=fpgeterrno; end; function fplisten (s:cint; backlog : cint):cint; begin fplisten:=cfplisten(s,backlog); - socketerror:=fpgeterrno; end; function fprecv (s:cint; buf: pointer; len: size_t; flags:cint):ssize_t; begin fprecv:= cfprecv (s,buf,len,flags); - socketerror:=fpgeterrno; end; function fprecvfrom (s:cint; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t; begin fprecvfrom:= cfprecvfrom (s,buf,len,flags,from,fromlen); - socketerror:=fpgeterrno; end; function fpsend (s:cint; msg:pointer; len:size_t; flags:cint):ssize_t; begin fpsend:=cfpsend (s,msg,len,flags); - socketerror:=fpgeterrno; end; function fpsendto (s:cint; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t; begin fpsendto:=cfpsendto (s,msg,len,flags,tox,tolen); - socketerror:=fpgeterrno; end; function fpsetsockopt (s:cint; level:cint; optname:cint; optval:pointer; optlen :tsocklen):cint; begin fpsetsockopt:=cfpsetsockopt(s,level,optname,optval,optlen); - socketerror:=fpgeterrno; end; function fpshutdown (s:cint; how:cint):cint; begin fpshutdown:=cfpshutdown(s,how); - socketerror:=fpgeterrno; end; function fpsocket (domain:cint; xtype:cint; protocol: cint):cint; begin fpsocket:=cfpsocket(domain,xtype,protocol); - socketerror:=fpgeterrno; end; function fpsocketpair (d:cint; xtype:cint; protocol:cint; sv:pcint):cint; begin fpsocketpair:=cfpsocketpair(d,xtype,protocol,sv); - socketerror:=fpgeterrno; end; diff --git a/rtl/linux/unixsock.inc b/rtl/linux/unixsock.inc index bf99d1fc44..d597875c66 100644 --- a/rtl/linux/unixsock.inc +++ b/rtl/linux/unixsock.inc @@ -59,10 +59,6 @@ begin args[5]:=a5; args[6]:=a6; SocketCall:=do_Syscall(syscall_nr_socketcall,sockcallnr,TSysParam(@args)); - If SocketCall<0 then - SocketError:=fpgetErrno - else - SocketError:=0; end;