/* Generated by Nim Compiler v0.16.0 */ /* (c) 2017 Andreas Rumpf */ /* The generated code is subject to the original license. */ /* Compiled for: Linux, amd64, gcc */ /* Command for C compiler: gcc -c -w -O3 -fno-strict-aliasing -I/afs/athena.mit.edu/software/nim-lang_v0.16.0/nim-0.16.0/lib -o tools/nimsuggest/nimcache/stdlib_net.o tools/nimsuggest/nimcache/stdlib_net.c */ #define NIM_INTBITS 64 #include "nimbase.h" #include #include #include #include #include #include #include #undef linux typedef struct Socketimpl_aIhANOOoETolVz9cccNO9cRQ Socketimpl_aIhANOOoETolVz9cccNO9cRQ; typedef struct TNimType TNimType; typedef struct TNimNode TNimNode; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw; typedef struct Exception Exception; typedef struct TNimObject TNimObject; typedef struct TY_9apztJSmgERYU8fZOjI4pOg TY_9apztJSmgERYU8fZOjI4pOg; typedef struct Valueerror_Gi06FkNeykJn7mrqRZYrkA Valueerror_Gi06FkNeykJn7mrqRZYrkA; typedef struct TSafePoint TSafePoint; typedef struct TY_J0FzjuY02DFObU1sQZLwJA TY_J0FzjuY02DFObU1sQZLwJA; typedef NIM_CHAR TY_QQGLPNVVwLhYjkngqAxXQQ[4001]; typedef NU8 Domain_Q79bEtFARvq0ekDNtvj3Vqg; typedef NU8 Socktype_NQT1bItGG2X9byGdrWX7ujw; typedef NU8 Protocol_dqJ1OqRGclxIMMdSLRzzXg; struct Socketimpl_aIhANOOoETolVz9cccNO9cRQ { int fd; NIM_BOOL isbuffered; union{ struct {TY_QQGLPNVVwLhYjkngqAxXQQ buffer; NI currpos; NI buflen; } S1; } isbufferedU; NI32 lasterror; Domain_Q79bEtFARvq0ekDNtvj3Vqg domain; Socktype_NQT1bItGG2X9byGdrWX7ujw socktype; Protocol_dqJ1OqRGclxIMMdSLRzzXg protocol; }; typedef NU8 Tnimkind_jIBKr1ejBgsfM33Kxw4j7A; typedef NU8 Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set; typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p0, NI op0); typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p0); struct TNimType { NI size; Tnimkind_jIBKr1ejBgsfM33Kxw4j7A kind; Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set flags; TNimType* base; TNimNode* node; void* finalizer; TY_ojoeKfW4VYIm36I9cpDTQIg marker; TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy; }; typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ; struct TNimNode { Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; typedef NU8 Socketflag_4xio0cAXR7XG4pF9bVcpxEg_Set; typedef NU8 Socketflag_4xio0cAXR7XG4pF9bVcpxEg; struct TNimObject { TNimType* m_type; }; struct Exception { TNimObject Sup; Exception* parent; NCSTRING name; NimStringDesc* message; NimStringDesc* trace; }; struct Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw { Exception Sup; }; typedef int TY_hxJupwhxfpZMyjfyvw0J9ag[1]; struct Valueerror_Gi06FkNeykJn7mrqRZYrkA { Exception Sup; }; typedef struct { N_NIMCALL_PTR(NIM_BOOL, ClPrc) (Exception* e0, void* ClEnv); void* ClEnv; } TY_KeeAOYBd84Ofsw6Y7LizaQ; struct TSafePoint { TSafePoint* prev; NI status; jmp_buf context; NIM_BOOL hasRaiseAction; TY_KeeAOYBd84Ofsw6Y7LizaQ raiseAction; }; struct TY_J0FzjuY02DFObU1sQZLwJA { NimStringDesc* Field0; NU16 Field1; }; typedef NIM_CHAR TY_dTlC27m9c9aWd5dvuePYanug[256]; struct TY_9apztJSmgERYU8fZOjI4pOg { TGenericSeq Sup; int data[SEQ_DECL_SIZE]; }; static N_NIMCALL(void, Marker_TY_MkGXUPMSENeRDS7EppfLgA)(void* p, NI op); N_NIMCALL(int, newnativesocket_P59cS8yz3VHsnoN6zylI5Lg)(Domain_Q79bEtFARvq0ekDNtvj3Vqg domain0, Socktype_NQT1bItGG2X9byGdrWX7ujw socktype0, Protocol_dqJ1OqRGclxIMMdSLRzzXg protocol0); N_NOINLINE(void, raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA)(NI32 errorcode0, NimStringDesc* additionalinfo0); N_NIMCALL(NI32, oslasterror_pMOMIZAQaKFp1XoL58mjVg)(void); N_NIMCALL(Socketimpl_aIhANOOoETolVz9cccNO9cRQ*, newsocket_TTP7PU2VgdrTckZ4D68YXQ)(int fd0, Domain_Q79bEtFARvq0ekDNtvj3Vqg domain0, Socktype_NQT1bItGG2X9byGdrWX7ujw socktype0, Protocol_dqJ1OqRGclxIMMdSLRzzXg protocol0, NIM_BOOL buffered0); N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0); N_NIMCALL(int, toint_fU8QVvDL2nY9cu2Lt5eUZeQ)(Domain_Q79bEtFARvq0ekDNtvj3Vqg domain0); N_NIMCALL(NU16, ntohs_hTWZ9cGeQnQNEThS6k8qUKg)(NU16 x0); N_NIMCALL(NU32, ntohl_RStKcIp64i7w9c4KBI2z46w)(NU32 x0); N_NIMCALL(int, bindaddr_zpvqU0KQkzbkoKaehnMX2A)(int socket0, struct sockaddr* name0, socklen_t namelen0); N_NIMCALL(struct addrinfo*, getaddrinfo_fNPnGAYqSzdc2OjHEcTTAw)(NimStringDesc* address0, NU16 port0, Domain_Q79bEtFARvq0ekDNtvj3Vqg domain0, Socktype_NQT1bItGG2X9byGdrWX7ujw socktype0, Protocol_dqJ1OqRGclxIMMdSLRzzXg protocol0); N_NIMCALL(void, dealloc_o4AP9bp2a6Md29bi289aWTZew)(struct addrinfo* ai0); N_NIMCALL(int, listen_BNAD35QpM7R1C7EJRtAZ3Q)(int socket0, int backlog0); N_NIMCALL(NI, send_6eWgn0t3M3qFYl9c4RYk4FA)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, void* data0, NI size0); N_NIMCALL(NIM_BOOL, isdisconnectionerror_tWh5jL9aNOdo3APmHb1OdQA)(Socketflag_4xio0cAXR7XG4pF9bVcpxEg_Set flags0, NI32 lasterror0); N_NIMCALL(void, socketerror_oTrx0acjRhfjmxcTKmlENg)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NI err0, NIM_BOOL async0, NI32 lasterror0); N_NIMCALL(NI32, getsocketerror_nLUFOmuHtUkpwyw49b7klpQ)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0); N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0); N_NIMCALL(void, acceptaddr_BNPMZNX4vRbEgSo5HyvE5w)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* server0, Socketimpl_aIhANOOoETolVz9cccNO9cRQ** client0, NimStringDesc** address0, Socketflag_4xio0cAXR7XG4pF9bVcpxEg_Set flags0); N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str0); N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s0, NI newlen0); N_NIMCALL(NI, waitfor_DLrn8tBaenNwTOV5QMiQhw)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NF* waited0, NI timeout0, NI size0, NimStringDesc* funcname0); N_NIMCALL(void, nimGCvisit)(void* d0, NI op0); static N_NIMCALL(void, Marker_TY_bU6ho49aX9aZ5qCG1X0EzmCw)(void* p, NI op); static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0); static N_INLINE(void, copymem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest0, void* source0, NI size0); N_NIMCALL(NimStringDesc*, rawNewString)(NI space0); N_NIMCALL(void, raiseException)(Exception* e0, NCSTRING ename0); N_NIMCALL(NF, ntepochTime)(void); N_NIMCALL(NI, select_EWIewKQK7bC2BMs0GJHLsA)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* readfd0, NI timeout0); N_NIMCALL(NIM_BOOL, hasdatabuffered_D9aXQ6Vx48ilhfQ09coEZXAw)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* s0); N_NIMCALL(void*, newSeq)(TNimType* typ0, NI len0); N_NIMCALL(NI, select_f1UV2yno269c9cyjR0CwiQwg)(TY_9apztJSmgERYU8fZOjI4pOg** readfds0, NI timeout0); static N_INLINE(void, HEX2BHEX3D_7kHiltrvRlcg6wSYR3CxAwnet)(NF* x0, NF y0); N_NIMCALL(NI, recv_6eWgn0t3M3qFYl9c4RYk4FA_2)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, void* data0, NI size0); N_NIMCALL(NI, readintobuf_a8hnRfVzCAJazP8VYSHoxQ)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NI32 flags0); N_NIMCALL(NI, peekchar_v3zsvCMMzaf8SsqM3bcKOw)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NIM_CHAR* c0); N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest0, NI addlen0); N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s0, NIM_CHAR c0); static N_INLINE(void, pushSafePoint)(TSafePoint* s0); static N_INLINE(void, popSafePoint)(void); N_NIMCALL(void, close_ODRNWwddsp7NVetdw9cXCVg)(int socket0); N_NIMCALL(void, reraiseException)(void); N_NIMCALL(void, getlocaladdr_IA9aPOAIFL0HA7Wl9c0gWEEg)(int socket0, Domain_Q79bEtFARvq0ekDNtvj3Vqg domain0, TY_J0FzjuY02DFObU1sQZLwJA* Result); N_NOINLINE(void, chckNil)(void* p0); N_NIMCALL(void, genericReset)(void* dest0, TNimType* mt0); N_NIMCALL(NI, recv_1QU82KBbPHj9aYPO2uZ0UgA)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, void* data0, NI size0, NI timeout0); TNimType NTI_aIhANOOoETolVz9cccNO9cRQ; extern TNimType NTI_nlCscttRCss70IBTyuBqnA; extern TNimType NTI_VaVACK0bpYmqIQ0mKcHfQQ; extern TNimType NTI_nmiMWKVIe46vacnhAFrQvw; TNimType NTI_QQGLPNVVwLhYjkngqAxXQQ; extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA; extern TNimType NTI_sVg18TP9cLifHyygRe9cro9aA; extern TNimType NTI_Q79bEtFARvq0ekDNtvj3Vqg; extern TNimType NTI_NQT1bItGG2X9byGdrWX7ujw; extern TNimType NTI_dqJ1OqRGclxIMMdSLRzzXg; TNimType NTI_MkGXUPMSENeRDS7EppfLgA; extern int osinvalidsocket_voz9aUXu8jtRbvGZZJHNE8w; extern TNimType NTI_bAvOj2UcojKN87yAQLs0aw; TNimType NTI_FsA9cqNuEA9c2lfCA9bcCRasw; TNimType NTI_bU6ho49aX9aZ5qCG1X0EzmCw; extern TNimType NTI_9apztJSmgERYU8fZOjI4pOg; extern TNimType NTI_yCEN9anxCD6mzBxGjuaRBdg; extern TNimType NTI_Gi06FkNeykJn7mrqRZYrkA; extern TSafePoint* exchandler_rqLlY5bs9atDw2OXYqJEn5g; TNimType NTI_J0FzjuY02DFObU1sQZLwJA; extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg; extern TNimType NTI_M4na42GvebBMnI5wV9cYMxg; TNimNode* NimDT__aIhANOOoETolVz9cccNO9cRQ_isbuffered[3]; STRING_LITERAL(T_XqsrSBxhOTPgLQ9cX4MmV4A_4, "", 0); STRING_LITERAL(T_XqsrSBxhOTPgLQ9cX4MmV4A_5, "No valid socket error code available", 36); STRING_LITERAL(T_XqsrSBxhOTPgLQ9cX4MmV4A_6, "Could not send all data.", 24); STRING_LITERAL(T_XqsrSBxhOTPgLQ9cX4MmV4A_7, "Call to \'", 9); STRING_LITERAL(T_XqsrSBxhOTPgLQ9cX4MmV4A_8, "\' timed out.", 12); STRING_LITERAL(T_XqsrSBxhOTPgLQ9cX4MmV4A_9, "readLine", 8); STRING_LITERAL(T_XqsrSBxhOTPgLQ9cX4MmV4A_10, "\015\012", 2); STRING_LITERAL(T_XqsrSBxhOTPgLQ9cX4MmV4A_11, "recvLine received more than the specified `maxLength` allowed.", 62); STRING_LITERAL(T_XqsrSBxhOTPgLQ9cX4MmV4A_14, "recv", 4); static N_NIMCALL(void, Marker_TY_MkGXUPMSENeRDS7EppfLgA)(void* p, NI op) { Socketimpl_aIhANOOoETolVz9cccNO9cRQ* a; NI LOC1; a = (Socketimpl_aIhANOOoETolVz9cccNO9cRQ*)p; switch ((*a).isbuffered) { case NIM_TRUE: LOC1 = (NI)0; for (LOC1 = 0; LOC1 < 4001; LOC1++) { } break; case NIM_FALSE: break; } } N_NIMCALL(Socketimpl_aIhANOOoETolVz9cccNO9cRQ*, newsocket_TTP7PU2VgdrTckZ4D68YXQ)(int fd0, Domain_Q79bEtFARvq0ekDNtvj3Vqg domain0, Socktype_NQT1bItGG2X9byGdrWX7ujw socktype0, Protocol_dqJ1OqRGclxIMMdSLRzzXg protocol0, NIM_BOOL buffered0) { Socketimpl_aIhANOOoETolVz9cccNO9cRQ* result0; result0 = (Socketimpl_aIhANOOoETolVz9cccNO9cRQ*)0; result0 = (Socketimpl_aIhANOOoETolVz9cccNO9cRQ*) newObj((&NTI_MkGXUPMSENeRDS7EppfLgA), sizeof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ)); (*result0).fd = fd0; (*result0).isbuffered = buffered0; (*result0).domain = domain0; (*result0).socktype = socktype0; (*result0).protocol = protocol0; { if (!buffered0) goto LA3; (*result0).isbufferedU.S1.currpos = ((NI) 0); } LA3: ; return result0; } N_NIMCALL(Socketimpl_aIhANOOoETolVz9cccNO9cRQ*, newsocket_8Lrat9ciQTaGiwISp8ak13A)(Domain_Q79bEtFARvq0ekDNtvj3Vqg domain0, Socktype_NQT1bItGG2X9byGdrWX7ujw socktype0, Protocol_dqJ1OqRGclxIMMdSLRzzXg protocol0, NIM_BOOL buffered0) { Socketimpl_aIhANOOoETolVz9cccNO9cRQ* result0; int fd0; result0 = (Socketimpl_aIhANOOoETolVz9cccNO9cRQ*)0; fd0 = newnativesocket_P59cS8yz3VHsnoN6zylI5Lg(domain0, socktype0, protocol0); { NI32 LOC5; if (!(fd0 == osinvalidsocket_voz9aUXu8jtRbvGZZJHNE8w)) goto LA3; LOC5 = (NI32)0; LOC5 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC5, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_4)); } LA3: ; result0 = newsocket_TTP7PU2VgdrTckZ4D68YXQ(fd0, domain0, socktype0, protocol0, buffered0); return result0; } N_NIMCALL(void, bindaddr_1QV2AFuvaMgMWnPRPZq9bVw)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NU16 port0, NimStringDesc* address0) { { struct sockaddr_in name0; if (!((address0) && (address0)->Sup.len == 0)) goto LA3; memset((void*)(&name0), 0, sizeof(name0)); name0.sin_family = toint_fU8QVvDL2nY9cu2Lt5eUZeQ(((Domain_Q79bEtFARvq0ekDNtvj3Vqg) 2)); name0.sin_port = ntohs_hTWZ9cGeQnQNEThS6k8qUKg(port0); name0.sin_addr.s_addr = ntohl_RStKcIp64i7w9c4KBI2z46w(INADDR_ANY); { int LOC7; NI32 LOC10; LOC7 = (int)0; LOC7 = bindaddr_zpvqU0KQkzbkoKaehnMX2A((*socket0).fd, ((struct sockaddr*) ((&name0))), ((socklen_t) (((NI)sizeof(struct sockaddr_in))))); if (!(LOC7 < ((NI32) 0))) goto LA8; LOC10 = (NI32)0; LOC10 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC10, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_4)); } LA8: ; } goto LA1; LA3: ; { struct addrinfo* ailist0; ailist0 = getaddrinfo_fNPnGAYqSzdc2OjHEcTTAw(address0, port0, (*socket0).domain, ((Socktype_NQT1bItGG2X9byGdrWX7ujw) 1), ((Protocol_dqJ1OqRGclxIMMdSLRzzXg) 6)); { int LOC14; NI32 LOC17; LOC14 = (int)0; LOC14 = bindaddr_zpvqU0KQkzbkoKaehnMX2A((*socket0).fd, (*ailist0).ai_addr, (*ailist0).ai_addrlen); if (!(LOC14 < ((NI32) 0))) goto LA15; dealloc_o4AP9bp2a6Md29bi289aWTZew(ailist0); LOC17 = (NI32)0; LOC17 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC17, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_4)); } LA15: ; dealloc_o4AP9bp2a6Md29bi289aWTZew(ailist0); } LA1: ; } N_NIMCALL(void, listen_AOBVJUkpcJ1PzOE7Ql9b9ckQ)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, int backlog0) { { int LOC3; NI32 LOC6; LOC3 = (int)0; LOC3 = listen_BNAD35QpM7R1C7EJRtAZ3Q((*socket0).fd, backlog0); if (!(LOC3 < ((NI32) 0))) goto LA4; LOC6 = (NI32)0; LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_4)); } LA4: ; } N_NIMCALL(NI, send_6eWgn0t3M3qFYl9c4RYk4FA)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, void* data0, NI size0) { NI result0; result0 = (NI)0; result0 = send((*socket0).fd, data0, size0, MSG_NOSIGNAL); return result0; } N_NIMCALL(NIM_BOOL, isdisconnectionerror_tWh5jL9aNOdo3APmHb1OdQA)(Socketflag_4xio0cAXR7XG4pF9bVcpxEg_Set flags0, NI32 lasterror0) { NIM_BOOL result0; NIM_BOOL LOC1; result0 = (NIM_BOOL)0; LOC1 = (NIM_BOOL)0; LOC1 = ((flags0 &(1U<<((NU)(((Socketflag_4xio0cAXR7XG4pF9bVcpxEg) 1))&7U)))!=0); if (!(LOC1)) goto LA2; LOC1 = (lasterror0 == ((NI) (ECONNRESET)) || lasterror0 == ((NI) (EPIPE)) || lasterror0 == ((NI) (ENETRESET))); LA2: ; result0 = LOC1; return result0; } N_NIMCALL(NI32, getsocketerror_nLUFOmuHtUkpwyw49b7klpQ)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0) { NI32 result0; result0 = (NI32)0; result0 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); { if (!(result0 == ((NI32) 0))) goto LA3; result0 = (*socket0).lasterror; } LA3: ; { if (!(result0 == ((NI32) 0))) goto LA7; raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(result0, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_5)); } LA7: ; return result0; } N_NIMCALL(void, socketerror_oTrx0acjRhfjmxcTKmlENg)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NI err0, NIM_BOOL async0, NI32 lasterror0) { { { NIM_BOOL LOC3; NI32 laste0; LOC3 = (NIM_BOOL)0; LOC3 = (err0 == ((NI) -1)); if (!(LOC3)) goto LA4; LOC3 = NIM_TRUE; LA4: ; if (!LOC3) goto LA5; { if (!(((NI) (lasterror0)) == ((NI) -1))) goto LA9; laste0 = getsocketerror_nLUFOmuHtUkpwyw49b7klpQ(socket0); } goto LA7; LA9: ; { laste0 = lasterror0; } LA7: ; { if (!async0) goto LA14; { NIM_BOOL LOC18; LOC18 = (NIM_BOOL)0; LOC18 = (laste0 == EAGAIN); if (LOC18) goto LA19; LOC18 = (laste0 == EWOULDBLOCK); LA19: ; if (!LOC18) goto LA20; goto BeforeRet; } goto LA16; LA20: ; { raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(laste0, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_4)); } LA16: ; } goto LA12; LA14: ; { raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(laste0, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_4)); } LA12: ; } LA5: ; }BeforeRet: ; } N_NIMCALL(void, send_pLXZNcF79c032efCu7EgyDg)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NimStringDesc* data0, Socketflag_4xio0cAXR7XG4pF9bVcpxEg_Set flags0) { NI sent0; { sent0 = send_6eWgn0t3M3qFYl9c4RYk4FA(socket0, ((void*) (data0->data)), (data0 ? data0->Sup.len : 0)); { NI32 lasterror0; if (!(sent0 < ((NI) 0))) goto LA3; lasterror0 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); { NIM_BOOL LOC7; LOC7 = (NIM_BOOL)0; LOC7 = isdisconnectionerror_tWh5jL9aNOdo3APmHb1OdQA(flags0, lasterror0); if (!LOC7) goto LA8; goto BeforeRet; } LA8: ; socketerror_oTrx0acjRhfjmxcTKmlENg(socket0, ((NI) -1), NIM_FALSE, lasterror0); } LA3: ; { NI32 LOC14; if (!!((sent0 == (data0 ? data0->Sup.len : 0)))) goto LA12; LOC14 = (NI32)0; LOC14 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC14, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_6)); } LA12: ; }BeforeRet: ; } N_NIMCALL(void, acceptaddr_BNPMZNX4vRbEgSo5HyvE5w)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* server0, Socketimpl_aIhANOOoETolVz9cccNO9cRQ** client0, NimStringDesc** address0, Socketflag_4xio0cAXR7XG4pF9bVcpxEg_Set flags0) { struct sockaddr_in sockaddress0; socklen_t addrlen0; int sock0; memset((void*)(&sockaddress0), 0, sizeof(sockaddress0)); addrlen0 = ((socklen_t) (((NI)sizeof(struct sockaddr_in)))); sock0 = accept((*server0).fd, ((struct sockaddr*) ((&sockaddress0))), (&addrlen0)); { NI32 err0; if (!(sock0 == osinvalidsocket_voz9aUXu8jtRbvGZZJHNE8w)) goto LA3; err0 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); { NIM_BOOL LOC7; LOC7 = (NIM_BOOL)0; LOC7 = isdisconnectionerror_tWh5jL9aNOdo3APmHb1OdQA(flags0, err0); if (!LOC7) goto LA8; acceptaddr_BNPMZNX4vRbEgSo5HyvE5w(server0, client0, address0, flags0); } LA8: ; raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(err0, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_4)); } goto LA1; LA3: ; { NCSTRING LOC11; (*(*client0)).fd = sock0; (*(*client0)).isbuffered = (*server0).isbuffered; LOC11 = (NCSTRING)0; LOC11 = inet_ntoa(sockaddress0.sin_addr); (*address0) = cstrToNimstr(LOC11); } LA1: ; } N_NIMCALL(void, accept_4M1L4j8I7pxuuANYLVnzrA)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* server0, Socketimpl_aIhANOOoETolVz9cccNO9cRQ** client0, Socketflag_4xio0cAXR7XG4pF9bVcpxEg_Set flags0) { NimStringDesc* addrdummy0; addrdummy0 = copyString(((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_4)); acceptaddr_BNPMZNX4vRbEgSo5HyvE5w(server0, client0, (&addrdummy0), flags0); } static N_NIMCALL(void, Marker_TY_bU6ho49aX9aZ5qCG1X0EzmCw)(void* p, NI op) { Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw* a; a = (Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw*)p; nimGCvisit((void*)(*a).Sup.parent, op); nimGCvisit((void*)(*a).Sup.message, op); nimGCvisit((void*)(*a).Sup.trace, op); } static N_INLINE(void, copymem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest0, void* source0, NI size0) { void* LOC1; LOC1 = (void*)0; LOC1 = memcpy(dest0, source0, ((size_t) (size0))); } static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) { copymem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1))))); (*dest0).Sup.len += (*src0).Sup.len; } N_NIMCALL(NIM_BOOL, hasdatabuffered_D9aXQ6Vx48ilhfQ09coEZXAw)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* s0) { NIM_BOOL result0; result0 = (NIM_BOOL)0; result0 = NIM_FALSE; { NIM_BOOL LOC5; if (!(*s0).isbuffered) goto LA3; LOC5 = (NIM_BOOL)0; LOC5 = (((NI) 0) < (*s0).isbufferedU.S1.buflen); if (!(LOC5)) goto LA6; LOC5 = !(((*s0).isbufferedU.S1.currpos == (*s0).isbufferedU.S1.buflen)); LA6: ; result0 = LOC5; } LA3: ; return result0; } N_NIMCALL(NI, select_EWIewKQK7bC2BMs0GJHLsA)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* readfd0, NI timeout0) { NI result0; TY_9apztJSmgERYU8fZOjI4pOg* fds0; TY_hxJupwhxfpZMyjfyvw0J9ag LOC6; { result0 = (NI)0; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = hasdatabuffered_D9aXQ6Vx48ilhfQ09coEZXAw(readfd0); if (!LOC3) goto LA4; result0 = ((NI) 1); goto BeforeRet; } LA4: ; fds0 = (TY_9apztJSmgERYU8fZOjI4pOg*) newSeq((&NTI_9apztJSmgERYU8fZOjI4pOg), 1); LOC6[0] = (*readfd0).fd; fds0->data[0] = LOC6[0]; result0 = select_f1UV2yno269c9cyjR0CwiQwg((&fds0), timeout0); }BeforeRet: ; return result0; } static N_INLINE(void, HEX2BHEX3D_7kHiltrvRlcg6wSYR3CxAwnet)(NF* x0, NF y0) { (*x0) = ((NF)((*x0)) + (NF)(y0)); } N_NIMCALL(NI, waitfor_DLrn8tBaenNwTOV5QMiQhw)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NF* waited0, NI timeout0, NI size0, NimStringDesc* funcname0) { NI result0; { result0 = (NI)0; result0 = ((NI) 1); { if (!(size0 <= ((NI) 0))) goto LA3; } LA3: ; { if (!(timeout0 == ((NI) -1))) goto LA7; result0 = size0; goto BeforeRet; } LA7: ; { NIM_BOOL LOC11; NIM_BOOL LOC12; LOC11 = (NIM_BOOL)0; LOC12 = (NIM_BOOL)0; LOC12 = (*socket0).isbuffered; if (!(LOC12)) goto LA13; LOC12 = !(((*socket0).isbufferedU.S1.buflen == ((NI) 0))); LA13: ; LOC11 = LOC12; if (!(LOC11)) goto LA14; LOC11 = !(((*socket0).isbufferedU.S1.buflen == (*socket0).isbufferedU.S1.currpos)); LA14: ; if (!LOC11) goto LA15; result0 = (NI)((*socket0).isbufferedU.S1.buflen - (*socket0).isbufferedU.S1.currpos); result0 = ((result0 <= size0) ? result0 : size0); } goto LA9; LA15: ; { NF starttime0; NI selret0; NF LOC33; { Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw* e_2sdfC4LO3JmCJpC2dAgtmQ; NimStringDesc* LOC22; if (!((NI)(timeout0 - ((NI) (((NF)((*waited0)) * (NF)(1.0000000000000000e+03))))) < ((NI) 1))) goto LA20; e_2sdfC4LO3JmCJpC2dAgtmQ = (Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw*)0; e_2sdfC4LO3JmCJpC2dAgtmQ = (Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw*) newObj((&NTI_bU6ho49aX9aZ5qCG1X0EzmCw), sizeof(Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw)); (*e_2sdfC4LO3JmCJpC2dAgtmQ).Sup.Sup.m_type = (&NTI_FsA9cqNuEA9c2lfCA9bcCRasw); LOC22 = (NimStringDesc*)0; LOC22 = rawNewString(funcname0->Sup.len + 21); appendString(LOC22, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_7)); appendString(LOC22, funcname0); appendString(LOC22, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_8)); (*e_2sdfC4LO3JmCJpC2dAgtmQ).Sup.message = LOC22; raiseException((Exception*)e_2sdfC4LO3JmCJpC2dAgtmQ, "TimeoutError"); } LA20: ; starttime0 = ntepochTime(); selret0 = select_EWIewKQK7bC2BMs0GJHLsA(socket0, (NI)(timeout0 - ((NI) (((NF)((*waited0)) * (NF)(1.0000000000000000e+03)))))); { NI32 LOC27; if (!(selret0 < ((NI) 0))) goto LA25; LOC27 = (NI32)0; LOC27 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC27, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_4)); } LA25: ; { Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw* e_2sdfC4LO3JmCJpC2dAgtmQ_2; NimStringDesc* LOC32; if (!!((selret0 == ((NI) 1)))) goto LA30; e_2sdfC4LO3JmCJpC2dAgtmQ_2 = (Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw*)0; e_2sdfC4LO3JmCJpC2dAgtmQ_2 = (Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw*) newObj((&NTI_bU6ho49aX9aZ5qCG1X0EzmCw), sizeof(Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw)); (*e_2sdfC4LO3JmCJpC2dAgtmQ_2).Sup.Sup.m_type = (&NTI_FsA9cqNuEA9c2lfCA9bcCRasw); LOC32 = (NimStringDesc*)0; LOC32 = rawNewString(funcname0->Sup.len + 21); appendString(LOC32, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_7)); appendString(LOC32, funcname0); appendString(LOC32, ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_8)); (*e_2sdfC4LO3JmCJpC2dAgtmQ_2).Sup.message = LOC32; raiseException((Exception*)e_2sdfC4LO3JmCJpC2dAgtmQ_2, "TimeoutError"); } LA30: ; LOC33 = (NF)0; LOC33 = ntepochTime(); HEX2BHEX3D_7kHiltrvRlcg6wSYR3CxAwnet(waited0, ((NF)(LOC33) - (NF)(starttime0))); } LA9: ; }BeforeRet: ; return result0; } N_NIMCALL(NI, readintobuf_a8hnRfVzCAJazP8VYSHoxQ)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NI32 flags0) { NI result0; { result0 = (NI)0; result0 = ((NI) 0); result0 = recv((*socket0).fd, ((void*) ((*socket0).isbufferedU.S1.buffer)), ((NI) 4000), flags0); { if (!(result0 < ((NI) 0))) goto LA3; (*socket0).lasterror = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); } LA3: ; { if (!(result0 <= ((NI) 0))) goto LA7; (*socket0).isbufferedU.S1.buflen = ((NI) 0); (*socket0).isbufferedU.S1.currpos = ((NI) 0); goto BeforeRet; } LA7: ; (*socket0).isbufferedU.S1.buflen = result0; (*socket0).isbufferedU.S1.currpos = ((NI) 0); }BeforeRet: ; return result0; } N_NIMCALL(NI, recv_6eWgn0t3M3qFYl9c4RYk4FA_2)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, void* data0, NI size0) { NI result0; { result0 = (NI)0; { if (!(size0 == ((NI) 0))) goto LA3; goto BeforeRet; } LA3: ; { NI read0; if (!(*socket0).isbuffered) goto LA7; { NI res0; if (!((*socket0).isbufferedU.S1.buflen == ((NI) 0))) goto LA11; res0 = readintobuf_a8hnRfVzCAJazP8VYSHoxQ(socket0, ((NI32) 0)); { if (!(res0 <= ((NI) 0))) goto LA15; { if (!NIM_FALSE) goto LA19; result0 = ((NI) 0); goto BeforeRet; } goto LA17; LA19: ; { result0 = res0; goto BeforeRet; } LA17: ; } LA15: ; } LA11: ; read0 = ((NI) 0); { while (1) { NI chunk0; NCSTRING d0; if (!(read0 < size0)) goto LA23; { NI res0; if (!((*socket0).isbufferedU.S1.buflen <= (*socket0).isbufferedU.S1.currpos)) goto LA26; res0 = readintobuf_a8hnRfVzCAJazP8VYSHoxQ(socket0, ((NI32) 0)); { if (!(res0 <= ((NI) 0))) goto LA30; { if (!(((NI) 0) < read0)) goto LA34; result0 = read0; goto BeforeRet; } goto LA32; LA34: ; { result0 = res0; goto BeforeRet; } LA32: ; } LA30: ; } LA26: ; chunk0 = (((NI)((*socket0).isbufferedU.S1.buflen - (*socket0).isbufferedU.S1.currpos) <= (NI)(size0 - read0)) ? (NI)((*socket0).isbufferedU.S1.buflen - (*socket0).isbufferedU.S1.currpos) : (NI)(size0 - read0)); d0 = ((NCSTRING) (data0)); copymem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) ((&d0[read0]))), ((void*) ((&(*socket0).isbufferedU.S1.buffer[((*socket0).isbufferedU.S1.currpos)- 0]))), ((NI) (chunk0))); read0 += chunk0; (*socket0).isbufferedU.S1.currpos += chunk0; } LA23: ; } result0 = read0; } goto LA5; LA7: ; { result0 = recv((*socket0).fd, data0, ((NI) (((int) (size0)))), ((NI32) 0)); { if (!(result0 < ((NI) 0))) goto LA40; (*socket0).lasterror = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); } LA40: ; } LA5: ; }BeforeRet: ; return result0; } N_NIMCALL(NI, peekchar_v3zsvCMMzaf8SsqM3bcKOw)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NIM_CHAR* c0) { NI result0; result0 = (NI)0; { if (!(*socket0).isbuffered) goto LA3; result0 = ((NI) 1); { NIM_BOOL LOC7; NI res0; LOC7 = (NIM_BOOL)0; LOC7 = ((*socket0).isbufferedU.S1.buflen == ((NI) 0)); if (LOC7) goto LA8; LOC7 = ((NI)((*socket0).isbufferedU.S1.buflen - ((NI) 1)) < (*socket0).isbufferedU.S1.currpos); LA8: ; if (!LOC7) goto LA9; res0 = readintobuf_a8hnRfVzCAJazP8VYSHoxQ(socket0, ((NI32) 0)); { if (!(res0 <= ((NI) 0))) goto LA13; result0 = res0; } LA13: ; } LA9: ; (*c0) = (*socket0).isbufferedU.S1.buffer[((*socket0).isbufferedU.S1.currpos)- 0]; } goto LA1; LA3: ; { result0 = recv((*socket0).fd, ((void*) (c0)), ((NI) 1), MSG_PEEK); } LA1: ; return result0; } N_NIMCALL(void, readline_l59cCpx09aQpLQbXCndaaGew)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NimStringDesc** line0, NI timeout0, Socketflag_4xio0cAXR7XG4pF9bVcpxEg_Set flags0, NI maxlength0) { NF waited0; { waited0 = 0.0; (*line0) = setLengthStr((*line0), ((NI) 0)); { while (1) { NIM_CHAR c0; NI LOC3; NI n0; c0 = (NIM_CHAR)0; LOC3 = (NI)0; LOC3 = waitfor_DLrn8tBaenNwTOV5QMiQhw(socket0, (&waited0), timeout0, ((NI) 1), ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_9)); n0 = recv_6eWgn0t3M3qFYl9c4RYk4FA_2(socket0, ((void*) ((&c0))), ((NI) 1)); { NI32 lasterror0; if (!(n0 < ((NI) 0))) goto LA6; lasterror0 = getsocketerror_nLUFOmuHtUkpwyw49b7klpQ(socket0); { NIM_BOOL LOC10; LOC10 = (NIM_BOOL)0; LOC10 = isdisconnectionerror_tWh5jL9aNOdo3APmHb1OdQA(flags0, lasterror0); if (!LOC10) goto LA11; (*line0) = setLengthStr((*line0), ((NI) 0)); goto BeforeRet; } LA11: ; socketerror_oTrx0acjRhfjmxcTKmlENg(socket0, n0, NIM_FALSE, lasterror0); } goto LA4; LA6: ; { if (!(n0 == ((NI) 0))) goto LA14; (*line0) = setLengthStr((*line0), ((NI) 0)); goto BeforeRet; } goto LA4; LA14: ; LA4: ; { NI LOC20; if (!((NU8)(c0) == (NU8)(13))) goto LA18; LOC20 = (NI)0; LOC20 = waitfor_DLrn8tBaenNwTOV5QMiQhw(socket0, (&waited0), timeout0, ((NI) 1), ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_9)); n0 = peekchar_v3zsvCMMzaf8SsqM3bcKOw(socket0, (&c0)); { NIM_BOOL LOC23; NI LOC27; LOC23 = (NIM_BOOL)0; LOC23 = (((NI) 0) < n0); if (!(LOC23)) goto LA24; LOC23 = ((NU8)(c0) == (NU8)(10)); LA24: ; if (!LOC23) goto LA25; LOC27 = (NI)0; LOC27 = recv_6eWgn0t3M3qFYl9c4RYk4FA_2(socket0, ((void*) ((&c0))), ((NI) 1)); } goto LA21; LA25: ; { NI32 lasterror0; if (!(n0 <= ((NI) 0))) goto LA29; lasterror0 = getsocketerror_nLUFOmuHtUkpwyw49b7klpQ(socket0); { NIM_BOOL LOC33; LOC33 = (NIM_BOOL)0; LOC33 = isdisconnectionerror_tWh5jL9aNOdo3APmHb1OdQA(flags0, lasterror0); if (!LOC33) goto LA34; (*line0) = setLengthStr((*line0), ((NI) 0)); goto BeforeRet; } LA34: ; socketerror_oTrx0acjRhfjmxcTKmlENg(socket0, n0, NIM_FALSE, lasterror0); } goto LA21; LA29: ; LA21: ; { if (!(((*line0) ? (*line0)->Sup.len : 0) == ((NI) 0))) goto LA38; (*line0) = resizeString((*line0), 2); appendString((*line0), ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_10)); } LA38: ; goto BeforeRet; } goto LA16; LA18: ; { if (!((NU8)(c0) == (NU8)(10))) goto LA41; { if (!(((*line0) ? (*line0)->Sup.len : 0) == ((NI) 0))) goto LA45; (*line0) = resizeString((*line0), 2); appendString((*line0), ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_10)); } LA45: ; goto BeforeRet; } goto LA16; LA41: ; LA16: ; (*line0) = addChar((*line0), c0); { NimStringDesc* msg0; Valueerror_Gi06FkNeykJn7mrqRZYrkA* e_w2wVSHODrcOIrF8L1AVl4w; if (!(maxlength0 < ((*line0) ? (*line0)->Sup.len : 0))) goto LA49; msg0 = copyString(((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_11)); e_w2wVSHODrcOIrF8L1AVl4w = (Valueerror_Gi06FkNeykJn7mrqRZYrkA*)0; e_w2wVSHODrcOIrF8L1AVl4w = (Valueerror_Gi06FkNeykJn7mrqRZYrkA*) newObj((&NTI_yCEN9anxCD6mzBxGjuaRBdg), sizeof(Valueerror_Gi06FkNeykJn7mrqRZYrkA)); (*e_w2wVSHODrcOIrF8L1AVl4w).Sup.Sup.m_type = (&NTI_Gi06FkNeykJn7mrqRZYrkA); (*e_w2wVSHODrcOIrF8L1AVl4w).Sup.message = copyString(msg0); raiseException((Exception*)e_w2wVSHODrcOIrF8L1AVl4w, "ValueError"); } LA49: ; } } }BeforeRet: ; } static N_INLINE(void, pushSafePoint)(TSafePoint* s0) { (*s0).hasRaiseAction = NIM_FALSE; (*s0).prev = exchandler_rqLlY5bs9atDw2OXYqJEn5g; exchandler_rqLlY5bs9atDw2OXYqJEn5g = s0; } static N_INLINE(void, popSafePoint)(void) { exchandler_rqLlY5bs9atDw2OXYqJEn5g = (*exchandler_rqLlY5bs9atDw2OXYqJEn5g).prev; } N_NIMCALL(void, close_m8ZGsx59b0Zg6YRPSokkGzA)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0) { TSafePoint T_XqsrSBxhOTPgLQ9cX4MmV4A_12; pushSafePoint(&T_XqsrSBxhOTPgLQ9cX4MmV4A_12); T_XqsrSBxhOTPgLQ9cX4MmV4A_12.status = setjmp(T_XqsrSBxhOTPgLQ9cX4MmV4A_12.context); if (T_XqsrSBxhOTPgLQ9cX4MmV4A_12.status == 0) { popSafePoint(); } else { popSafePoint(); } { close_ODRNWwddsp7NVetdw9cXCVg((*socket0).fd); } if (T_XqsrSBxhOTPgLQ9cX4MmV4A_12.status != 0) reraiseException(); } N_NIMCALL(void, getlocaladdr_Tl0XJzWVikW06KnIceSomQ)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, TY_J0FzjuY02DFObU1sQZLwJA* Result) { chckNil((void*)Result); genericReset((void*)Result, (&NTI_J0FzjuY02DFObU1sQZLwJA)); getlocaladdr_IA9aPOAIFL0HA7Wl9c0gWEEg((*socket0).fd, (*socket0).domain, Result); } N_NIMCALL(NI, recv_1QU82KBbPHj9aYPO2uZ0UgA)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, void* data0, NI size0, NI timeout0) { NI result0; NF waited0; NI read0; { result0 = (NI)0; waited0 = 0.0; read0 = ((NI) 0); { while (1) { NI avail0; NCSTRING d0; if (!(read0 < size0)) goto LA2; avail0 = waitfor_DLrn8tBaenNwTOV5QMiQhw(socket0, (&waited0), timeout0, (NI)(size0 - read0), ((NimStringDesc*) &T_XqsrSBxhOTPgLQ9cX4MmV4A_14)); d0 = ((NCSTRING) (data0)); result0 = recv_6eWgn0t3M3qFYl9c4RYk4FA_2(socket0, ((void*) ((&d0[read0]))), avail0); { if (!(result0 == ((NI) 0))) goto LA5; goto LA1; } LA5: ; { if (!(result0 < ((NI) 0))) goto LA9; goto BeforeRet; } LA9: ; read0 += result0; } LA2: ; } LA1: ; result0 = read0; }BeforeRet: ; return result0; } N_NIMCALL(NI, recv_hb6z1vAnNzXvhmRvLAv9byA)(Socketimpl_aIhANOOoETolVz9cccNO9cRQ* socket0, NimStringDesc** data0, NI size0, NI timeout0, Socketflag_4xio0cAXR7XG4pF9bVcpxEg_Set flags0) { NI result0; { result0 = (NI)0; (*data0) = setLengthStr((*data0), ((NI) (size0))); result0 = recv_1QU82KBbPHj9aYPO2uZ0UgA(socket0, ((void*) ((*data0)->data)), size0, timeout0); { NI32 lasterror0; if (!(result0 < ((NI) 0))) goto LA3; (*data0) = setLengthStr((*data0), ((NI) 0)); lasterror0 = getsocketerror_nLUFOmuHtUkpwyw49b7klpQ(socket0); { NIM_BOOL LOC7; LOC7 = (NIM_BOOL)0; LOC7 = isdisconnectionerror_tWh5jL9aNOdo3APmHb1OdQA(flags0, lasterror0); if (!LOC7) goto LA8; goto BeforeRet; } LA8: ; socketerror_oTrx0acjRhfjmxcTKmlENg(socket0, result0, NIM_FALSE, lasterror0); } LA3: ; (*data0) = setLengthStr((*data0), ((NI) (result0))); }BeforeRet: ; return result0; } NIM_EXTERNC N_NOINLINE(void, stdlib_netInit000)(void) { } NIM_EXTERNC N_NOINLINE(void, stdlib_netDatInit000)(void) { static TNimNode* T_XqsrSBxhOTPgLQ9cX4MmV4A_2[6]; static TNimNode* T_XqsrSBxhOTPgLQ9cX4MmV4A_3[3]; static TNimNode* T_XqsrSBxhOTPgLQ9cX4MmV4A_13[2]; static TNimNode T_XqsrSBxhOTPgLQ9cX4MmV4A_0[16]; NTI_aIhANOOoETolVz9cccNO9cRQ.size = sizeof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ); NTI_aIhANOOoETolVz9cccNO9cRQ.kind = 18; NTI_aIhANOOoETolVz9cccNO9cRQ.base = 0; NTI_aIhANOOoETolVz9cccNO9cRQ.flags = 3; T_XqsrSBxhOTPgLQ9cX4MmV4A_2[0] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[1]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[1].kind = 1; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[1].offset = offsetof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ, fd); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[1].typ = (&NTI_nlCscttRCss70IBTyuBqnA); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[1].name = "fd"; T_XqsrSBxhOTPgLQ9cX4MmV4A_2[1] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[2]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[2].kind = 3; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[2].offset = offsetof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ, isbuffered); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[2].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[2].name = "isBuffered"; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[2].sons = &NimDT__aIhANOOoETolVz9cccNO9cRQ_isbuffered[0]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[2].len = 2; T_XqsrSBxhOTPgLQ9cX4MmV4A_3[0] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[4]; NTI_QQGLPNVVwLhYjkngqAxXQQ.size = sizeof(TY_QQGLPNVVwLhYjkngqAxXQQ); NTI_QQGLPNVVwLhYjkngqAxXQQ.kind = 16; NTI_QQGLPNVVwLhYjkngqAxXQQ.base = (&NTI_nmiMWKVIe46vacnhAFrQvw); NTI_QQGLPNVVwLhYjkngqAxXQQ.flags = 3; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[4].kind = 1; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[4].offset = offsetof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ, isbufferedU.S1.buffer); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[4].typ = (&NTI_QQGLPNVVwLhYjkngqAxXQQ); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[4].name = "buffer"; T_XqsrSBxhOTPgLQ9cX4MmV4A_3[1] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[5]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[5].kind = 1; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[5].offset = offsetof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ, isbufferedU.S1.currpos); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[5].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[5].name = "currPos"; T_XqsrSBxhOTPgLQ9cX4MmV4A_3[2] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[6]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[6].kind = 1; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[6].offset = offsetof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ, isbufferedU.S1.buflen); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[6].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[6].name = "bufLen"; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[3].len = 3; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[3].kind = 2; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[3].sons = &T_XqsrSBxhOTPgLQ9cX4MmV4A_3[0]; NimDT__aIhANOOoETolVz9cccNO9cRQ_isbuffered[1] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[3]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[7].len = 0; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[7].kind = 2; NimDT__aIhANOOoETolVz9cccNO9cRQ_isbuffered[0] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[7]; T_XqsrSBxhOTPgLQ9cX4MmV4A_2[2] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[8]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[8].kind = 1; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[8].offset = offsetof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ, lasterror); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[8].typ = (&NTI_sVg18TP9cLifHyygRe9cro9aA); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[8].name = "lastError"; T_XqsrSBxhOTPgLQ9cX4MmV4A_2[3] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[9]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[9].kind = 1; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[9].offset = offsetof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ, domain); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[9].typ = (&NTI_Q79bEtFARvq0ekDNtvj3Vqg); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[9].name = "domain"; T_XqsrSBxhOTPgLQ9cX4MmV4A_2[4] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[10]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[10].kind = 1; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[10].offset = offsetof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ, socktype); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[10].typ = (&NTI_NQT1bItGG2X9byGdrWX7ujw); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[10].name = "sockType"; T_XqsrSBxhOTPgLQ9cX4MmV4A_2[5] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[11]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[11].kind = 1; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[11].offset = offsetof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ, protocol); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[11].typ = (&NTI_dqJ1OqRGclxIMMdSLRzzXg); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[11].name = "protocol"; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[0].len = 6; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[0].kind = 2; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[0].sons = &T_XqsrSBxhOTPgLQ9cX4MmV4A_2[0]; NTI_aIhANOOoETolVz9cccNO9cRQ.node = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[0]; NTI_MkGXUPMSENeRDS7EppfLgA.size = sizeof(Socketimpl_aIhANOOoETolVz9cccNO9cRQ*); NTI_MkGXUPMSENeRDS7EppfLgA.kind = 22; NTI_MkGXUPMSENeRDS7EppfLgA.base = (&NTI_aIhANOOoETolVz9cccNO9cRQ); NTI_MkGXUPMSENeRDS7EppfLgA.flags = 2; NTI_MkGXUPMSENeRDS7EppfLgA.marker = Marker_TY_MkGXUPMSENeRDS7EppfLgA; NTI_FsA9cqNuEA9c2lfCA9bcCRasw.size = sizeof(Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw); NTI_FsA9cqNuEA9c2lfCA9bcCRasw.kind = 17; NTI_FsA9cqNuEA9c2lfCA9bcCRasw.base = (&NTI_bAvOj2UcojKN87yAQLs0aw); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[12].len = 0; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[12].kind = 2; NTI_FsA9cqNuEA9c2lfCA9bcCRasw.node = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[12]; NTI_bU6ho49aX9aZ5qCG1X0EzmCw.size = sizeof(Timeouterror_FsA9cqNuEA9c2lfCA9bcCRasw*); NTI_bU6ho49aX9aZ5qCG1X0EzmCw.kind = 22; NTI_bU6ho49aX9aZ5qCG1X0EzmCw.base = (&NTI_FsA9cqNuEA9c2lfCA9bcCRasw); NTI_bU6ho49aX9aZ5qCG1X0EzmCw.marker = Marker_TY_bU6ho49aX9aZ5qCG1X0EzmCw; NTI_J0FzjuY02DFObU1sQZLwJA.size = sizeof(TY_J0FzjuY02DFObU1sQZLwJA); NTI_J0FzjuY02DFObU1sQZLwJA.kind = 18; NTI_J0FzjuY02DFObU1sQZLwJA.base = 0; NTI_J0FzjuY02DFObU1sQZLwJA.flags = 2; T_XqsrSBxhOTPgLQ9cX4MmV4A_13[0] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[14]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[14].kind = 1; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[14].offset = offsetof(TY_J0FzjuY02DFObU1sQZLwJA, Field0); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[14].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[14].name = "Field0"; T_XqsrSBxhOTPgLQ9cX4MmV4A_13[1] = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[15]; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[15].kind = 1; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[15].offset = offsetof(TY_J0FzjuY02DFObU1sQZLwJA, Field1); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[15].typ = (&NTI_M4na42GvebBMnI5wV9cYMxg); T_XqsrSBxhOTPgLQ9cX4MmV4A_0[15].name = "Field1"; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[13].len = 2; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[13].kind = 2; T_XqsrSBxhOTPgLQ9cX4MmV4A_0[13].sons = &T_XqsrSBxhOTPgLQ9cX4MmV4A_13[0]; NTI_J0FzjuY02DFObU1sQZLwJA.node = &T_XqsrSBxhOTPgLQ9cX4MmV4A_0[13]; }