From 49e73c9a08cb6f4a20a78173a37fa26a0c1d3fa0 Mon Sep 17 00:00:00 2001 From: Ebenezer-group Date: Sat, 17 Aug 2024 19:51:27 -0500 Subject: [PATCH] Tweaks to library --- src/cmwBuffer.hh | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/cmwBuffer.hh b/src/cmwBuffer.hh index a64b6b5..b64927d 100644 --- a/src/cmwBuffer.hh +++ b/src/cmwBuffer.hh @@ -56,21 +56,12 @@ void apps (auto& e,auto t,auto...ts){ throw e; } -inline int getError (){ -#ifdef CMW_WINDOWS - return WSAGetLastError(); -#else - return errno; -#endif -} - inline int fromChars (::std::string_view s){ int n=0; ::std::from_chars(s.data(),s.data()+s.size(),n); return n; } - templateT give (auto& b){return b.template give();} templateclass ReceiveBuffer; @@ -119,7 +110,7 @@ using sockType=SOCKET; #else using sockType=int; inline void setDirectory (char const* d){ - if(::chdir(d)==-1)raise("setDirectory",d,errno); + if(::chdir(d)!=0)raise("setDirectory",d,errno); } inline int Write (int fd,void const* data,int len){ @@ -191,22 +182,21 @@ auto setsockWrapper (sockType s,int opt,auto t){ return ::setsockopt(s,SOL_SOCKET,opt,reinterpret_cast(&t),sizeof t); } -inline void setRcvTimeout (sockType s,int time){ +inline int getError (){ #ifdef CMW_WINDOWS - DWORD t=time*1000; + return WSAGetLastError(); #else - ::timeval t{time,0}; + return errno; #endif - if(setsockWrapper(s,SO_RCVTIMEO,t)!=0)raise("setRcvTimeout",getError()); } -inline void closeSocket (sockType s){ +inline void setRcvTimeout (sockType s,int time){ #ifdef CMW_WINDOWS - if(::closesocket(s)==SOCKET_ERROR) + DWORD t=time*1000; #else - if(::close(s)==-1) + ::timeval t{time,0}; #endif - raise("closeSocket",getError()); + if(setsockWrapper(s,SO_RCVTIMEO,t)!=0)raise("setRcvTimeout",getError()); } inline int sockWrite (sockType s,void const* data,int len @@ -484,6 +474,15 @@ class BufferStack:public SendBuffer,public ReceiveBuffer{ } }; +inline void closeSocket (sockType s){ +#ifdef CMW_WINDOWS + if(::closesocket(s)==SOCKET_ERROR) +#else + if(::close(s)!=0) +#endif + raise("closeSocket",getError()); +} + #ifndef CMW_WINDOWS auto myMin (auto a,auto b){return a>3)+400;}