#include <stdlib.h>
#include <string.h>
#include "../dprint.h"
#include "../ut.h"
#include "../mem/mem.h"
#include "../ip_addr.h"
#include "parse_via.h"
#include "parse_def.h"

Go to the source code of this file.
Definition in file parse_via.c.
| anonymous enum |
main via states (uri:port ...)
| F_HOST | |
| P_HOST | |
| L_PORT | |
| F_PORT | |
| P_PORT | |
| L_PARAM | |
| F_PARAM | |
| P_PARAM | |
| L_VIA | |
| F_VIA | |
| F_COMMENT | |
| P_COMMENT | |
| F_IP6HOST | |
| P_IP6HOST | |
| F_CRLF | |
| F_LF | |
| F_CR | |
| END_OF_HEADER |
Definition at line 62 of file parse_via.c.
| anonymous enum |
first via part state
| F_SIP | |
| SIP1 | |
| SIP2 | |
| FIN_SIP | |
| L_VER | |
| F_VER | |
| VER1 | |
| VER2 | |
| FIN_VER | |
| UDP1 | |
| UDP2 | |
| FIN_UDP | |
| TCP_TLS1 | |
| TCP2 | |
| FIN_TCP | |
| TLS2 | |
| FIN_TLS | |
| SCTP1 | |
| SCTP2 | |
| SCTP3 | |
| FIN_SCTP | |
| L_PROTO | |
| F_PROTO |
Definition at line 77 of file parse_via.c.
| anonymous enum |
param related states
Definition at line 93 of file parse_via.c.
| void free_via_list | ( | struct via_body * | vb | ) |
Free allocated memory
Definition at line 1969 of file parse_via.c.
References free_via_param_list(), via_body::next, via_body::param_lst, and pkg_free.
Referenced by clean_hdr_field(), encode_header(), get_hdr_field(), and via_diff().
| static void free_via_param_list | ( | struct via_param * | vp | ) | [inline, static] |
Definition at line 1958 of file parse_via.c.
References via_param::next, and pkg_free.
Referenced by free_via_list().
| char* parse_via | ( | char * | buffer, | |
| char * | end, | |||
| struct via_body * | vbody | |||
| ) |
call it with a vb initialized to 0
?end of param
?end of param
?end of param
Definition at line 980 of file parse_via.c.
References via_body::alias, via_body::branch, via_body::bsize, via_body::comment, END_OF_HEADER, via_body::error, F_COMMENT, F_CR, F_CRLF, F_HOST, F_IP6HOST, F_LF, F_PARAM, F_PORT, F_PROTO, F_SIP, F_VER, F_VIA, FIN_HIDDEN, FIN_SCTP, FIN_SIP, FIN_TCP, FIN_TLS, FIN_UDP, FIN_VER, GEN_PARAM, via_body::host, via_body::i, L_PARAM, L_PORT, L_PROTO, L_VER, L_VIA, via_body::last_param, _str::len, LM_CRIT, LM_DBG, LM_ERR, via_body::maddr, via_body::name, via_body::next, via_param::next, P_COMMENT, P_HOST, P_IP6HOST, P_PARAM, P_PORT, P_VALUE, PARAM_ALIAS, PARAM_BRANCH, PARAM_ERROR, PARAM_I, via_body::param_lst, PARAM_MADDR, PARAM_RECEIVED, PARAM_RPORT, via_body::params, PARSE_ERROR, PARSE_OK, parse_via_param(), pkg_free, pkg_malloc, via_body::port, via_body::port_str, via_body::proto, PROTO_SCTP, PROTO_TCP, PROTO_TLS, PROTO_UDP, via_body::received, via_body::rport, _str::s, SCTP1, SCTP2, SCTP3, SIP1, SIP2, via_param::size, via_param::start, str2s(), TCP2, TCP_TLS1, TLS2, via_body::transport, via_param::type, UDP1, UDP2, VER1, VER2, via_body::version, and ZSW.
Referenced by encode_header(), get_hdr_field(), and via_diff().
| static char* parse_via_param | ( | char * | p, | |
| char * | end, | |||
| unsigned char * | pstate, | |||
| unsigned char * | psaved_state, | |||
| struct via_param * | param | |||
| ) | [static] |
entry state must be F_PARAM, or saved_state=F_PARAM and state=F_{LF,CR,CRLF}! output state = L_PARAM or F_PARAM or END_OF_HEADER (and saved_state= last state); everything else => error
Definition at line 117 of file parse_via.c.
References ALIAS1, ALIAS2, ALIAS3, ALIAS4, BRANCH1, BRANCH2, BRANCH3, BRANCH4, BRANCH5, END_OF_HEADER, F_CR, F_CRLF, F_LF, F_PARAM, F_VALUE, F_VIA, FIN_ALIAS, FIN_BRANCH, FIN_HIDDEN, FIN_I, FIN_MADDR, FIN_RECEIVED, FIN_RPORT, FIN_TTL, GEN_PARAM, HIDDEN1, HIDDEN2, HIDDEN3, HIDDEN4, HIDDEN5, L_PARAM, L_VALUE, _str::len, LM_DBG, LM_ERR, MADDR1, MADDR2, MADDR3, MADDR4, via_param::name, P_STRING, P_VALUE, PARAM_ERROR, PARAM_RPORT, RECEIVED1, RECEIVED2, RECEIVED3, RECEIVED4, RECEIVED5, RECEIVED6, RECEIVED7, RPORT1, RPORT2, RPORT3, _str::s, via_param::size, via_param::start, TTL1, TTL2, via_param::type, via_param::value, and ZSW.
Referenced by parse_via().
1.5.6