void x_ipcError(const char *description, ...) { if (!GET_S_GLOBAL(terminalLog).quiet) x_ipcStats(stderr); if (description) { va_list args; char msg[150]; va_start(args, description); vsprintf(msg, (char *)description, args); va_end(args); if (x_ipc_LogMessagesP()) { LOG1("%s\n", msg); } else { fprintf(stderr,"%s\n", msg); } } End_File_Logging(); #if 0 (void)printf("Dump core [y]?\n"); if (getchar() != 'n') abort(); #endif serverShutdown(); exit(1); }
void x_ipcModError(const char *description, ...) { #ifndef NMP_IPC x_ipcStats(stderr); #endif #ifdef NMP_IPC if (ipcVerbosity >= IPC_Print_Errors) #endif if (description) { va_list args; va_start(args, description); vfprintf(stderr, (char *)description, args); fprintf(stderr, "\n"); va_end(args); FLUSH_IF_NEEDED(stderr); } #ifdef NMP_IPC if (ipcVerbosity >= IPC_Exit_On_Errors) #endif { x_ipcClose(); LOCK_M_MUTEX; if (mGlobalp()) { #ifdef LISP if (IS_LISP_MODULE()) { if (GET_M_GLOBAL(lispExitGlobal) != NULL) (*(GET_M_GLOBAL(lispExitGlobal)))(); } else #endif /* LISP */ { if (GET_M_GLOBAL(x_ipcExitHnd)) { (*(GET_M_GLOBAL(x_ipcExitHnd)))(); } else { exit(-1); } } } UNLOCK_M_MUTEX; } }
void recvMessage(DISPATCH_PTR dispatch, X_IPC_MSG_CLASS_TYPE msg_class, void *classData) { #ifdef UNUSED_PRAGMA #pragma unused(classData) #endif if (GET_S_GLOBAL(x_ipcDebugGlobal)) { x_ipc_idTablePrintInfo(GET_S_GLOBAL(dispatchTable)); X_IPC_MOD_WARNING("\n"); x_ipcStats(stderr); } switch(msg_class) { case QueryClass: case InformClass: tapWhenSent(dispatch); processActiveMessage(dispatch); break; case ReplyClass: recvReplyMessage(dispatch); break; #ifndef NMP_IPC case GoalClass: case PointMonitorClass: case DemonMonitorClass: case PollingMonitorClass: case ExceptionClass: case CommandClass: recvTaskTreeMessage(dispatch, msg_class, classData); break; #endif case BroadcastClass: recvBroadcastMessage(dispatch); break; #ifndef NMP_IPC case MultiQueryClass: recvMultiQueryMessage(dispatch); break; #endif case SuccessClass: case FailureClass: recvSuccessFailureMessage(dispatch, msg_class); break; #ifndef NMP_IPC case FireDemonClass: LOG_MESSAGE2("%-9s %15s [%d]:", "FireDemon", dispatch->msg->msgData->name, *(int32 *)classData); Log_RefId(dispatch, LOGGING_MESSAGE); LOG_MESSAGE1("%10s", dispatch->org->modData->modName); LOG_MESSAGE1(" --> %-15s (Sent)", GET_S_GLOBAL(x_ipcServerModGlobal)->modData->modName); Log_Time(1); LOG_MESSAGE("\n"); fireDemonHnd(dispatch, (int32 *)classData); break; #endif case HandlerRegClass: case UNKNOWN: case ExecHndClass: #ifndef TEST_CASE_COVERAGE default: #endif X_IPC_ERROR1("ERROR: recvMessage: class not implemented: %d\n", msg_class); } }