示例#1
0
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;

}
示例#2
0
文件: DialogId.c 项目: yjjfirst/x-sip
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));
    }
}
示例#3
0
文件: traceanc.c 项目: bhanug/mps
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;
}
示例#4
0
文件: traceanc.c 项目: bhanug/mps
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;
}