reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
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 "rutil/Logger.hxx"

Go to the source code of this file.

Classes

struct  resip::CharInfo
 
struct  resip::TransitionInfo
 

Namespaces

namespace  resip
 dcm! – add UnusedChecking(_enum) below;
 

Macros

#define RESIPROCATE_SUBSYSTEM   Subsystem::SIP
 

Typedefs

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

Enumerations

enum  { resip::chunkTermSentinelChar = '\0' }
 
enum  resip::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  resip::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  resip::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]
 

Macro Definition Documentation

◆ RESIPROCATE_SUBSYSTEM

#define RESIPROCATE_SUBSYSTEM   Subsystem::SIP

Definition at line 14 of file MsgHeaderScanner.cxx.