X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2Flibaxwin3.so_src%2Fmsg.c;h=a9a79a30a72170d88a357820695a815aee4e44f3;hb=edb8fa42cff3758a25e985f4fdd7119b6206ce0a;hp=e9003e139dfba9a24e8cb1164dfdd506d243347f;hpb=80500b39aaa9b9131fb4fe56cae670ffefcd19fb;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/libaxwin3.so_src/msg.c b/Usermode/Applications/axwin3_src/libaxwin3.so_src/msg.c index e9003e13..a9a79a30 100644 --- a/Usermode/Applications/axwin3_src/libaxwin3.so_src/msg.c +++ b/Usermode/Applications/axwin3_src/libaxwin3.so_src/msg.c @@ -33,9 +33,8 @@ tAxWin3_MessageCallback gAxWin3_MessageCallback; // === CODE === void AxWin3_Connect(const char *ServerDesc) { - _SysDebug("ServerDesc = %s", ServerDesc); - if( !ServerDesc ) - { + _SysDebug("ServerDesc (argument) = %s", ServerDesc); + if( !ServerDesc ) { ServerDesc = gsAxWin3_int_ServerDesc; } _SysDebug("ServerDesc = %s", ServerDesc); @@ -50,6 +49,10 @@ void AxWin3_Connect(const char *ServerDesc) case '6': case '7': case '8': case '9': case '0': giConnectionType = CONNTYPE_SENDMESSAGE; giConnectionNum = atoi(ServerDesc); + if( giConnectionNum == 0 ) { + _SysDebug("Invalid server PID"); + exit(-1); + } break; case 'u': while(*ServerDesc && *ServerDesc != ':') ServerDesc ++; @@ -97,18 +100,18 @@ void AxWin3_int_SendIPCMessage(tAxWin_IPCMessage *Msg) switch(giConnectionType) { case CONNTYPE_SENDMESSAGE: - SysSendMessage(giConnectionNum, size, Msg); + _SysSendMessage(giConnectionNum, size, Msg); break; case CONNTYPE_UDP: { // Create UDP header char tmpbuf[giAxWin3_int_UDPHeaderLen + size]; memcpy(tmpbuf, gaAxWin3_int_UDPHeader, giAxWin3_int_UDPHeaderLen); memcpy(tmpbuf + giAxWin3_int_UDPHeaderLen, Msg, size); - write(giConnectionNum, tmpbuf, sizeof(tmpbuf)); + _SysWrite(giConnectionNum, tmpbuf, sizeof(tmpbuf)); } break; case CONNTYPE_TCP: - write(giConnectionNum, Msg, size); + _SysWrite(giConnectionNum, Msg, size); break; default: break; @@ -119,12 +122,12 @@ tAxWin_IPCMessage *AxWin3_int_GetIPCMessage(int nFD, fd_set *fds) { int len; tAxWin_IPCMessage *ret = NULL; - pid_t tid; + int tid; _SysSelect(nFD, fds, NULL, NULL, NULL, THREAD_EVENT_IPCMSG); // Clear out IPC messages - while( (len = SysGetMessage(&tid, 0, NULL)) ) + while( (len = _SysGetMessage(&tid, 0, NULL)) ) { if( giConnectionType != CONNTYPE_SENDMESSAGE || tid != giConnectionNum ) { @@ -133,7 +136,7 @@ tAxWin_IPCMessage *AxWin3_int_GetIPCMessage(int nFD, fd_set *fds) if( gAxWin3_MessageCallback ) gAxWin3_MessageCallback(tid, len); else - SysGetMessage(NULL, 0, GETMSG_IGNORE); + _SysGetMessage(NULL, 0, GETMSG_IGNORE); continue ; } @@ -141,10 +144,10 @@ tAxWin_IPCMessage *AxWin3_int_GetIPCMessage(int nFD, fd_set *fds) ret = malloc(len); if(ret == NULL) { _SysDebug("malloc() failed, ignoring message"); - SysGetMessage(NULL, 0, GETMSG_IGNORE); + _SysGetMessage(NULL, 0, GETMSG_IGNORE); return NULL; } - SysGetMessage(NULL, len, ret); + _SysGetMessage(NULL, len, ret); break; }