Changeset 641 for pjproject/trunk/pjsip/src/pjsip-simple/xpidf.c
- Timestamp:
- Aug 1, 2006 11:09:35 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip-simple/xpidf.c
r201 r641 23 23 #include <pj/string.h> 24 24 25 static pj_str_t PRESENCE = { "presence", 8 };26 static pj_str_t ST ATUS = { "status", 6 };27 static pj_str_t OPEN = { "open", 4 };28 static pj_str_t CLOSED = { "closed", 6 };29 static pj_str_t URI = { "uri", 3 };30 static pj_str_t ATOM = { "atom", 4 };31 static pj_str_t ATOMID = { "atomid", 6 };32 static pj_str_t ID = { "id", 2 };33 static pj_str_t ADDRESS = { "address", 7 };34 static pj_str_t S UBSCRIBE_PARAM = { ";method=SUBSCRIBE", 17 };35 static pj_str_t PRESENTITY = { "presentity", 10 };36 static pj_str_t EMPTY_STRING = { NULL, 0 };25 static pj_str_t STR_PRESENCE = { "presence", 8 }; 26 static pj_str_t STR_STATUS = { "status", 6 }; 27 static pj_str_t STR_OPEN = { "open", 4 }; 28 static pj_str_t STR_CLOSED = { "closed", 6 }; 29 static pj_str_t STR_URI = { "uri", 3 }; 30 static pj_str_t STR_ATOM = { "atom", 4 }; 31 static pj_str_t STR_ATOMID = { "atomid", 6 }; 32 static pj_str_t STR_ID = { "id", 2 }; 33 static pj_str_t STR_ADDRESS = { "address", 7 }; 34 static pj_str_t STR_SUBSCRIBE_PARAM = { ";method=SUBSCRIBE", 17 }; 35 static pj_str_t STR_PRESENTITY = { "presentity", 10 }; 36 static pj_str_t STR_EMPTY_STRING = { NULL, 0 }; 37 37 38 38 static pj_xml_node* xml_create_node(pj_pool_t *pool, … … 73 73 74 74 /* <presence> */ 75 pres = xml_create_node(pool, & PRESENCE, NULL);75 pres = xml_create_node(pool, &STR_PRESENCE, NULL); 76 76 77 77 /* <presentity> */ 78 presentity = xml_create_node(pool, & PRESENTITY, NULL);78 presentity = xml_create_node(pool, &STR_PRESENTITY, NULL); 79 79 pj_xml_add_node(pres, presentity); 80 80 81 81 /* uri attribute */ 82 uri.ptr = pj_pool_alloc(pool, uri_cstr->slen + S UBSCRIBE_PARAM.slen);82 uri.ptr = pj_pool_alloc(pool, uri_cstr->slen + STR_SUBSCRIBE_PARAM.slen); 83 83 pj_strcpy( &uri, uri_cstr); 84 pj_strcat( &uri, &S UBSCRIBE_PARAM);85 attr = xml_create_attr(pool, & URI, &uri);84 pj_strcat( &uri, &STR_SUBSCRIBE_PARAM); 85 attr = xml_create_attr(pool, &STR_URI, &uri); 86 86 pj_xml_add_attr(presentity, attr); 87 87 88 88 /* <atom> */ 89 atom = xml_create_node(pool, & ATOM, NULL);89 atom = xml_create_node(pool, &STR_ATOM, NULL); 90 90 pj_xml_add_node(pres, atom); 91 91 92 92 /* atom id */ 93 93 pj_create_unique_string(pool, &tmp); 94 attr = xml_create_attr(pool, & ATOMID, &tmp);94 attr = xml_create_attr(pool, &STR_ATOMID, &tmp); 95 95 pj_xml_add_attr(atom, attr); 96 96 97 97 /* address */ 98 addr = xml_create_node(pool, & ADDRESS, NULL);98 addr = xml_create_node(pool, &STR_ADDRESS, NULL); 99 99 pj_xml_add_node(atom, addr); 100 100 101 101 /* address'es uri */ 102 attr = xml_create_attr(pool, & URI, uri_cstr);102 attr = xml_create_attr(pool, &STR_URI, uri_cstr); 103 103 pj_xml_add_attr(addr, attr); 104 104 105 105 /* status */ 106 status = xml_create_node(pool, &ST ATUS, NULL);106 status = xml_create_node(pool, &STR_STATUS, NULL); 107 107 pj_xml_add_node(addr, status); 108 108 109 109 /* status attr */ 110 attr = xml_create_attr(pool, &ST ATUS, &OPEN);110 attr = xml_create_attr(pool, &STR_STATUS, &STR_OPEN); 111 111 pj_xml_add_attr(status, attr); 112 112 … … 126 126 127 127 /* Validate <presence> */ 128 if (pj_stricmp(&pres->name, & PRESENCE) != 0)128 if (pj_stricmp(&pres->name, &STR_PRESENCE) != 0) 129 129 return NULL; 130 130 131 131 /* Validate <presentity> */ 132 node = pj_xml_find_node(pres, & PRESENTITY);133 if (node == NULL) 134 return NULL; 135 if (pj_xml_find_attr(node, & URI, NULL) == NULL)132 node = pj_xml_find_node(pres, &STR_PRESENTITY); 133 if (node == NULL) 134 return NULL; 135 if (pj_xml_find_attr(node, &STR_URI, NULL) == NULL) 136 136 return NULL; 137 137 138 138 /* Validate <atom> */ 139 node = pj_xml_find_node(pres, & ATOM);140 if (node == NULL) 141 return NULL; 142 if (pj_xml_find_attr(node, & ATOMID, NULL) == NULL &&143 pj_xml_find_attr(node, & ID, NULL) == NULL)139 node = pj_xml_find_node(pres, &STR_ATOM); 140 if (node == NULL) 141 return NULL; 142 if (pj_xml_find_attr(node, &STR_ATOMID, NULL) == NULL && 143 pj_xml_find_attr(node, &STR_ID, NULL) == NULL) 144 144 { 145 145 return NULL; … … 147 147 148 148 /* Address */ 149 node = pj_xml_find_node(node, & ADDRESS);150 if (node == NULL) 151 return NULL; 152 if (pj_xml_find_attr(node, & URI, NULL) == NULL)149 node = pj_xml_find_node(node, &STR_ADDRESS); 150 if (node == NULL) 151 return NULL; 152 if (pj_xml_find_attr(node, &STR_URI, NULL) == NULL) 153 153 return NULL; 154 154 155 155 156 156 /* Status */ 157 node = pj_xml_find_node(node, &ST ATUS);158 if (node == NULL) 159 return NULL; 160 if (pj_xml_find_attr(node, &ST ATUS, NULL) == NULL)157 node = pj_xml_find_node(node, &STR_STATUS); 158 if (node == NULL) 159 return NULL; 160 if (pj_xml_find_attr(node, &STR_STATUS, NULL) == NULL) 161 161 return NULL; 162 162 … … 176 176 pj_xml_attr *attr; 177 177 178 presentity = pj_xml_find_node(pres, & PRESENTITY);178 presentity = pj_xml_find_node(pres, &STR_PRESENTITY); 179 179 if (!presentity) 180 return & EMPTY_STRING;181 182 attr = pj_xml_find_attr(presentity, & URI, NULL);180 return &STR_EMPTY_STRING; 181 182 attr = pj_xml_find_attr(presentity, &STR_URI, NULL); 183 183 if (!attr) 184 return & EMPTY_STRING;184 return &STR_EMPTY_STRING; 185 185 186 186 return &attr->value; … … 197 197 pj_str_t dup_uri; 198 198 199 presentity = pj_xml_find_node(pres, & PRESENTITY);199 presentity = pj_xml_find_node(pres, &STR_PRESENTITY); 200 200 if (!presentity) { 201 201 pj_assert(0); 202 202 return -1; 203 203 } 204 atom = pj_xml_find_node(pres, & ATOM);204 atom = pj_xml_find_node(pres, &STR_ATOM); 205 205 if (!atom) { 206 206 pj_assert(0); 207 207 return -1; 208 208 } 209 addr = pj_xml_find_node(atom, & ADDRESS);209 addr = pj_xml_find_node(atom, &STR_ADDRESS); 210 210 if (!addr) { 211 211 pj_assert(0); … … 214 214 215 215 /* Set uri in presentity */ 216 attr = pj_xml_find_attr(presentity, & URI, NULL);216 attr = pj_xml_find_attr(presentity, &STR_URI, NULL); 217 217 if (!attr) { 218 218 pj_assert(0); … … 223 223 224 224 /* Set uri in address. */ 225 attr = pj_xml_find_attr(addr, & URI, NULL);225 attr = pj_xml_find_attr(addr, &STR_URI, NULL); 226 226 if (!attr) { 227 227 pj_assert(0); … … 241 241 pj_xml_attr *attr; 242 242 243 atom = pj_xml_find_node(pres, & ATOM);243 atom = pj_xml_find_node(pres, &STR_ATOM); 244 244 if (!atom) { 245 245 pj_assert(0); 246 246 return PJ_FALSE; 247 247 } 248 addr = pj_xml_find_node(atom, & ADDRESS);248 addr = pj_xml_find_node(atom, &STR_ADDRESS); 249 249 if (!addr) { 250 250 pj_assert(0); 251 251 return PJ_FALSE; 252 252 } 253 status = pj_xml_find_node(addr, &ST ATUS);253 status = pj_xml_find_node(addr, &STR_STATUS); 254 254 if (!status) { 255 255 pj_assert(0); 256 256 return PJ_FALSE; 257 257 } 258 attr = pj_xml_find_attr(status, &ST ATUS, NULL);259 if (!attr) { 260 pj_assert(0); 261 return PJ_FALSE; 262 } 263 264 return pj_stricmp(&attr->value, & OPEN)==0 ? PJ_TRUE : PJ_FALSE;258 attr = pj_xml_find_attr(status, &STR_STATUS, NULL); 259 if (!attr) { 260 pj_assert(0); 261 return PJ_FALSE; 262 } 263 264 return pj_stricmp(&attr->value, &STR_OPEN)==0 ? PJ_TRUE : PJ_FALSE; 265 265 } 266 266 … … 273 273 pj_xml_attr *attr; 274 274 275 atom = pj_xml_find_node(pres, & ATOM);275 atom = pj_xml_find_node(pres, &STR_ATOM); 276 276 if (!atom) { 277 277 pj_assert(0); 278 278 return -1; 279 279 } 280 addr = pj_xml_find_node(atom, & ADDRESS);280 addr = pj_xml_find_node(atom, &STR_ADDRESS); 281 281 if (!addr) { 282 282 pj_assert(0); 283 283 return -1; 284 284 } 285 status = pj_xml_find_node(addr, &ST ATUS);285 status = pj_xml_find_node(addr, &STR_STATUS); 286 286 if (!status) { 287 287 pj_assert(0); 288 288 return -1; 289 289 } 290 attr = pj_xml_find_attr(status, &ST ATUS, NULL);291 if (!attr) { 292 pj_assert(0); 293 return -1; 294 } 295 296 attr->value = ( online_status ? OPEN :CLOSED );290 attr = pj_xml_find_attr(status, &STR_STATUS, NULL); 291 if (!attr) { 292 pj_assert(0); 293 return -1; 294 } 295 296 attr->value = ( online_status ? STR_OPEN : STR_CLOSED ); 297 297 return 0; 298 298 }
Note: See TracChangeset
for help on using the changeset viewer.