+ if( giNetworkFileHandle > *nfds ) *nfds = giNetworkFileHandle;
+ FD_SET(giNetworkFileHandle, set);
+}
+
+void IPC_HandleSelect(fd_set *set)
+{
+ if( FD_ISSET(giNetworkFileHandle, set) )
+ {
+ char staticBuf[STATICBUF_SIZE];
+ int readlen, identlen;
+ char *msg;
+
+ readlen = read(giNetworkFileHandle, staticBuf, sizeof(staticBuf));
+
+ identlen = 4 + Net_GetAddressSize( ((uint16_t*)staticBuf)[1] );
+ msg = staticBuf + identlen;
+
+ IPC_Handle(&gIPC_Type_Datagram, staticBuf, readlen - identlen, (void*)msg);
+ _SysDebug("IPC_HandleSelect: UDP handled");
+ }
+
+ while(SysGetMessage(NULL, NULL))
+ {
+ pid_t tid;
+ int len = SysGetMessage(&tid, NULL);
+ char data[len];
+ SysGetMessage(NULL, data);
+
+ IPC_Handle(&gIPC_Type_SysMessage, &tid, len, (void*)data);
+ _SysDebug("IPC_HandleSelect: Message handled");
+ }
+}
+
+void IPC_Handle(tIPC_Type *IPCType, void *Ident, size_t MsgLen, tAxWin_Message *Msg)
+{
+ tApplication *app;
+ tElement *ele;
+
+ _SysDebug("IPC_Handle: (IPCType=%p, Ident=%p, MsgLen=%i, Msg=%p)",
+ IPCType, Ident, MsgLen, Msg);