Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00029 #ifndef PARSE_IDENTITYNFO
00030 #define PARSE_IDENTITYNFO
00031
00032 #include "../str.h"
00033 #include "msg_parser.h"
00034
00035 enum {
00036 II_START,
00037 II_URI_BEGIN,
00038 II_URI_DOMAIN,
00039 II_URI_IPV4,
00040 II_URI_IPV6,
00041 II_URI_PATH,
00042 II_URI_END,
00043 II_LWS,
00044 II_LWSCR,
00045 II_LWSCRLF,
00046 II_LWSCRLFSP,
00047 II_SEMIC,
00048 II_TAG,
00049 II_EQUAL,
00050 II_TOKEN,
00051 II_ENDHEADER
00052 };
00053
00054 enum {
00055 II_M_START,
00056 II_M_URI_BEGIN,
00057 II_M_URI_END,
00058 II_M_SEMIC,
00059 II_M_TAG,
00060 II_M_EQUAL,
00061 II_M_TOKEN
00062 };
00063
00064 #define ZSW(_c) ((_c)?(_c):"")
00065
00066 struct identityinfo_body {
00067 int error;
00068 str uri;
00069 str domain;
00070 str alg;
00071 };
00072
00073
00074
00075 #define get_identityinfo(p_msg) ((struct identityinfo_body*)(p_msg)->identity_info->parsed)
00076
00077
00078
00079
00080
00081 void parse_identityinfo(char *buffer, char* end, struct identityinfo_body *ii_b);
00082 int parse_identityinfo_header(struct sip_msg *msg);
00083
00084
00085
00086
00087 void free_identityinfo(struct identityinfo_body *ii_b);
00088
00089
00090 #endif