reSIProcate/stack  9694
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
MsgHeaderScanner.cxx File Reference
#include <ctype.h>
#include <limits.h>
#include <stdio.h>
#include "resip/stack/HeaderTypes.hxx"
#include "resip/stack/SipMessage.hxx"
#include "resip/stack/MsgHeaderScanner.hxx"
#include "rutil/WinLeakCheck.hxx"
Include dependency graph for MsgHeaderScanner.cxx:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  resip::CharInfo
struct  resip::TransitionInfo

Namespaces

namespace  resip
 

SERNonceHelper implements the makeNonce function in the same way as SIP Express Router (SER) - http://www.iptel.org/ser.


Typedefs

typedef char resip::CharCategory
typedef char resip::State
typedef char resip::TransitionAction

Enumerations

enum  { resip::chunkTermSentinelChar = '\0' }
enum  CharCategoryEnum {
  resip::ccChunkTermSentinel, resip::ccOther, resip::ccFieldName, resip::ccWhitespace,
  resip::ccColon, resip::ccDoubleQuotationMark, resip::ccLeftAngleBracket, resip::ccRightAngleBracket,
  resip::ccBackslash, resip::ccComma, resip::ccCarriageReturn, resip::ccLineFeed,
  resip::numCharCategories
}
enum  StateEnum {
  resip::sMsgStart, resip::sHalfLineBreakAtMsgStart, resip::sScanStatusLine, resip::sHalfLineBreakAfterStatusLine,
  resip::sAfterLineBreakAfterStatusLine, resip::sScanFieldName, resip::sScanWhitespaceAfter1FieldName, resip::sScanWhitespaceAfterNFieldName,
  resip::sScanWhitespaceOr1Value, resip::sScanWhitespaceOrNValue, resip::sHalfLineBreakInWhitespaceBefore1Value, resip::sHalfLineBreakInWhitespaceBeforeNValue,
  resip::sAfterLineBreakInWhitespaceBefore1Value, resip::sAfterLineBreakInWhitespaceBeforeNValue, resip::sScan1Value, resip::sScanNValue,
  resip::sHalfLineBreakIn1Value, resip::sHalfLineBreakInNValue, resip::sAfterLineBreakIn1Value, resip::sAfterLineBreakInNValue,
  resip::sScanNValueInQuotes, resip::sAfterEscCharInQuotesInNValue, resip::sHalfLineBreakInQuotesInNValue, resip::sAfterLineBreakInQuotesInNValue,
  resip::sScanNValueInAngles, resip::sHalfLineBreakInAnglesInNValue, resip::sAfterLineBreakInAnglesInNValue, resip::sHalfLineBreakAfterLineBreak,
  resip::numStates
}
enum  { resip::deltaOfNStateFrom1State = 1 }
enum  TransitionActionEnum {
  resip::taNone, resip::taTermStatusLine, resip::taTermFieldName, resip::taBeyondEmptyValue,
  resip::taTermValueAfterLineBreak, resip::taTermValue, resip::taStartText, resip::taEndHeader,
  resip::taChunkTermSentinel, resip::taError
}

Functions

static int resip::c2i (unsigned char c)
static void resip::initCharInfoArray ()
void resip::specTransition (State state, CharCategory charCategory, TransitionAction action, State nextState)
static void resip::specDefaultTransition (State state, TransitionAction action, State nextState)
static void resip::specHalfLineBreakState (State halfLineBreakState, State afterLineBreakState)
static void resip::specXValueStates (int stateDelta)
static void resip::initStateMachine ()
void resip::lookupMsgHeaderFieldInfo (char *fieldName, unsigned int *fieldNameLength, MsgHeaderScanner::TextPropBitMask fieldNameTextPropBitMask, int *fieldKind, bool *isMultiValueAllowed)
 defined(RESIP_MSG_HEADER_SCANNER_DEBUG) } {
bool resip::processMsgHeaderStatusLine (SipMessage *msg, char *lineText, unsigned int lineTextLength, MsgHeaderScanner::TextPropBitMask lineTextPropBitMask)
void resip::processMsgHeaderFieldNameAndValue (SipMessage *msg, int fieldKind, const char *fieldName, unsigned int fieldNameLength, char *valueText, unsigned int valueTextLength, MsgHeaderScanner::TextPropBitMask valueTextPropBitMask)

Variables

static CharInfo resip::charInfoArray [UCHAR_MAX+1]
static TransitionInfo resip::stateMachine [numStates][numCharCategories]