BOOL SipMessageInput(struct Message *message) { BOOL garbage; if (MessageGetType(message) == MESSAGE_TYPE_RESPONSE) { garbage = !TmHandleReponseMessage(message); } else if (MessageGetType(message) == MESSAGE_TYPE_REQUEST){ garbage = !TmHandleRequestMessage(message); } if (garbage) { DestroyMessage(&message); return FALSE; } return TRUE; }
void ExtractDialogId(struct DialogId *dialogid, MESSAGE *message) { SetCallId(dialogid, MessageGetCallId(message)); if (MessageGetType(message) == MESSAGE_TYPE_RESPONSE) { SetLocalTag(dialogid, MessageGetFromTag(message)); SetRemoteTag(dialogid, MessageGetToTag(message)); } else { SetRemoteTag(dialogid, MessageGetFromTag(message)); } }
Bool TraceMessageCheck(TraceMessage tMessage) { CHECKS(TraceMessage, tMessage); CHECKD(Message, TraceMessageMessage(tMessage)); CHECKL(MessageGetType(TraceMessageMessage(tMessage)) == MessageTypeGC); /* We can't check anything about the statistics. In particular, */ /* liveSize may exceed condemnedSize because they are only estimates. */ return TRUE; }
Bool TraceStartMessageCheck(TraceStartMessage tsMessage) { CHECKS(TraceStartMessage, tsMessage); CHECKD(Message, TraceStartMessageMessage(tsMessage)); CHECKL(MessageGetType(TraceStartMessageMessage(tsMessage)) == MessageTypeGCSTART); /* Check that why is NUL terminated. See .whybuf.nul */ CHECKL(tsMessage->why[NELEMS(tsMessage->why)-1] == '\0'); return TRUE; }