X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Fld-acess_src%2Frequest.c;h=7d80a45bd0064edb93f52509decbc25ad5d2eb70;hb=c1f0f7a89e019bfb3c0dc908820118e10b83790b;hp=75565f15830cc3f27f96847d5381671db2b4a14a;hpb=7f80ab30017689efe0aaaab18abc7ceda689d859;p=tpg%2Facess2.git diff --git a/AcessNative/ld-acess_src/request.c b/AcessNative/ld-acess_src/request.c index 75565f15..7d80a45b 100644 --- a/AcessNative/ld-acess_src/request.c +++ b/AcessNative/ld-acess_src/request.c @@ -1,5 +1,15 @@ /* */ +#define DEBUG 0 + + +#if DEBUG +# define DEBUG_S printf +#else +# define DEBUG_S(...) +# define DONT_INCLUDE_SYSCALL_NAMES +#endif + #include #include #include @@ -79,7 +89,8 @@ int _InitSyscalls() #if USE_TCP if( connect(gSocket, (struct sockaddr *)&gSyscall_ServerAddr, sizeof(struct sockaddr_in)) < 0 ) { - fprintf(stderr, "Cannot connect to server (localhost:%i)\n", SERVER_PORT); + fprintf(stderr, "[ERROR -] Cannot connect to server (localhost:%i)\n", SERVER_PORT); + fprintf(stderr, "[ERROR -] ", giSyscall_ClientID); perror("_InitSyscalls"); #if __WIN32__ closesocket(gSocket); @@ -109,6 +120,7 @@ int _InitSyscalls() #if !USE_TCP // Ask server for a client ID + if( !giSyscall_ClientID ) { tRequestHeader req; int len; @@ -154,36 +166,38 @@ int SendRequest(tRequestHeader *Request, int RequestSize, int ResponseSize) { int i; char *data = (char*)&Request->Params[Request->NParams]; - printf("Request #%i (%s) -", Request->CallID, casSYSCALL_NAMES[Request->CallID]); + DEBUG_S("Request #%i (%s) -", Request->CallID, casSYSCALL_NAMES[Request->CallID]); for( i = 0; i < Request->NParams; i ++ ) { switch(Request->Params[i].Type) { case ARG_TYPE_INT32: - printf(" 0x%08x", *(uint32_t*)data); + DEBUG_S(" 0x%08x", *(uint32_t*)data); data += sizeof(uint32_t); break; case ARG_TYPE_INT64: - printf(" 0x%016llx", *(uint64_t*)data); + DEBUG_S(" 0x%016llx", *(uint64_t*)data); data += sizeof(uint64_t); break; case ARG_TYPE_STRING: - printf(" '%s'", (char*)data); + DEBUG_S(" '%s'", (char*)data); data += Request->Params[i].Length; break; case ARG_TYPE_DATA: - printf(" %p:0x%x", (char*)data, Request->Params[i].Length); + DEBUG_S(" %p:0x%x", (char*)data, Request->Params[i].Length); if( !(Request->Params[i].Flags & ARG_FLAG_ZEROED) ) data += Request->Params[i].Length; break; } } - printf("\n"); + DEBUG_S("\n"); } // Send it off SendData(Request, RequestSize); - + + if( Request->CallID == SYS_EXIT ) return 0; + // Wait for a response (no timeout) return ReadData(Request, ResponseSize, 0); } @@ -200,6 +214,7 @@ void SendData(void *Data, int Length) #endif if( len != Length ) { + fprintf(stderr, "[ERROR %i] ", giSyscall_ClientID); perror("SendData"); exit(-1); } @@ -226,12 +241,13 @@ int ReadData(void *Dest, int MaxLength, int Timeout) ret = select(gSocket+1, &fds, NULL, NULL, timeoutPtr); if( ret == -1 ) { + fprintf(stderr, "[ERROR %i] ", giSyscall_ClientID); perror("ReadData - select"); exit(-1); } if( !ret ) { - printf("Timeout reading from socket\n"); + printf("[ERROR %i] Timeout reading from socket\n", giSyscall_ClientID); return 0; // Timeout } @@ -242,11 +258,12 @@ int ReadData(void *Dest, int MaxLength, int Timeout) #endif if( ret < 0 ) { + fprintf(stderr, "[ERROR %i] ", giSyscall_ClientID); perror("ReadData"); exit(-1); } - printf("%i bytes read from socket\n", ret); + DEBUG_S("%i bytes read from socket\n", ret); return ret; }