Ticket #121: syncml12.patch
| File syncml12.patch, 9.7 kB (added by pieterpalmers, 1 year ago) |
|---|
-
Doxyfile.in
old new 432 432 # should be searched for input files as well. Possible values are YES and NO. 433 433 # If left blank NO is used. 434 434 435 RECURSIVE = NO435 RECURSIVE = YES 436 436 437 437 # The EXCLUDE tag can be used to specify files and/or directories that should 438 438 # excluded from the INPUT source files. This way you can easily exclude a -
libsyncml/objects/sml_devinf_obj.c
old new 97 97 if (get) { 98 98 if (smlSessionGetVersion(session) == SML_VERSION_10) 99 99 result = smlDevInfNewResult(get, agent->devinf, SML_DEVINF_VERSION_10, error); 100 else if (smlSessionGetVersion(session) == SML_VERSION_12) 101 result = smlDevInfNewResult(get, agent->devinf, SML_DEVINF_VERSION_12, error); 100 102 else 101 103 result = smlDevInfNewResult(get, agent->devinf, SML_DEVINF_VERSION_11, error); 102 104 … … 123 125 } else { 124 126 if (smlSessionGetVersion(session) == SML_VERSION_10) 125 127 cmd = smlDevInfNewPut(agent->devinf, SML_DEVINF_VERSION_10, error); 128 else if (smlSessionGetVersion(session) == SML_VERSION_12) 129 cmd = smlDevInfNewPut(agent->devinf, SML_DEVINF_VERSION_12, error); 126 130 else 127 131 cmd = smlDevInfNewPut(agent->devinf, SML_DEVINF_VERSION_11, error); 128 132 … … 281 285 282 286 if (smlSessionGetVersion(session) == SML_VERSION_10) 283 287 get = smlDevInfNewGet(SML_DEVINF_VERSION_10, error); 288 else if (smlSessionGetVersion(session) == SML_VERSION_12) 289 get = smlDevInfNewGet(SML_DEVINF_VERSION_12, error); 284 290 else 285 291 get = smlDevInfNewGet(SML_DEVINF_VERSION_11, error); 286 292 … … 308 314 smlAssert(agent); 309 315 smlAssert(manager); 310 316 317 SmlLocation *devinf12 = smlLocationNew("./devinf12", NULL, error); 311 318 SmlLocation *devinf11 = smlLocationNew("./devinf11", NULL, error); 312 319 SmlLocation *devinf10 = smlLocationNew("./devinf10", NULL, error); 313 320 314 if (!devinf1 1 || !devinf10)321 if (!devinf12 || !devinf11 || !devinf10) 315 322 goto error; 316 323 317 324 if (!smlManagerObjectRegister(manager, SML_COMMAND_TYPE_PUT, session, NULL, devinf10, NULL, _recv_devinf, NULL, agent, error)) 318 325 goto error_free_loc; 319 326 if (!smlManagerObjectRegister(manager, SML_COMMAND_TYPE_PUT, session, NULL, devinf11, NULL, _recv_devinf, NULL, agent, error)) 320 327 goto error_free_loc; 328 if (!smlManagerObjectRegister(manager, SML_COMMAND_TYPE_PUT, session, NULL, devinf12, NULL, _recv_devinf, NULL, agent, error)) 329 goto error_free_loc; 321 330 322 331 if (!smlManagerObjectRegister(manager, SML_COMMAND_TYPE_GET, session, devinf10, NULL, NULL, _request_devinf, NULL, agent, error)) 323 332 goto error_free_loc; 324 333 if (!smlManagerObjectRegister(manager, SML_COMMAND_TYPE_GET, session, devinf11, NULL, NULL, _request_devinf, NULL, agent, error)) 325 334 goto error_free_loc; 335 if (!smlManagerObjectRegister(manager, SML_COMMAND_TYPE_GET, session, devinf12, NULL, NULL, _request_devinf, NULL, agent, error)) 336 goto error_free_loc; 326 337 327 338 smlLocationUnref(devinf10); 328 339 smlLocationUnref(devinf11); 340 smlLocationUnref(devinf12); 329 341 330 342 smlTrace(TRACE_EXIT, "%s", __func__); 331 343 return TRUE; … … 335 347 smlLocationUnref(devinf10); 336 348 if (devinf11) 337 349 smlLocationUnref(devinf11); 350 if (devinf12) 351 smlLocationUnref(devinf11); 338 352 error: 339 353 smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, smlErrorPrint(error)); 340 354 return FALSE; -
libsyncml/sml_devinf.c
old new 554 554 555 555 if (version == SML_DEVINF_VERSION_10) 556 556 source = smlLocationNew("./devinf10", NULL, error); 557 else if (version == SML_DEVINF_VERSION_12) 558 source = smlLocationNew("./devinf12", NULL, error); 557 559 else 558 560 source = smlLocationNew("./devinf11", NULL, error); 559 561 … … 588 590 589 591 if (version == SML_DEVINF_VERSION_10) 590 592 source = smlLocationNew("./devinf10", NULL, error); 593 else if (version == SML_DEVINF_VERSION_12) 594 source = smlLocationNew("./devinf12", NULL, error); 591 595 else 592 596 source = smlLocationNew("./devinf11", NULL, error); 593 597 … … 630 634 631 635 if (version == SML_DEVINF_VERSION_10) 632 636 target = smlLocationNew("./devinf10", NULL, error); 637 else if (version == SML_DEVINF_VERSION_12) 638 target = smlLocationNew("./devinf12", NULL, error); 633 639 else 634 640 target = smlLocationNew("./devinf11", NULL, error); 635 641 -
libsyncml/parser/sml_xml_assm.c
old new 1871 1871 1872 1872 //Verdtd 1873 1873 switch (version) { 1874 case SML_DEVINF_VERSION_12: 1875 if (!_smlXmlAssemblerAddString(assm, SML_ELEMENT_VERDTD, "1.2", error)) 1876 goto error_free_writer; 1877 break; 1874 1878 case SML_DEVINF_VERSION_11: 1875 1879 if (!_smlXmlAssemblerAddString(assm, SML_ELEMENT_VERDTD, "1.1", error)) 1876 1880 goto error_free_writer; -
libsyncml/parser/sml_xml_parse.c
old new 2103 2103 return FALSE; 2104 2104 } 2105 2105 2106 static SmlBool _smlXmlDevInfDataStoreParseCTCap(SmlXmlParser *parser, SmlDevInf *devinf, SmlError **error) 2107 { 2108 smlTrace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, parser, devinf, error); 2109 smlAssert(parser); 2110 smlAssert(devinf); 2111 2112 if (!_smlXmlParserStep(parser)) { 2113 smlErrorSet(error, SML_ERROR_GENERIC, "Missing nodes"); 2114 goto error; 2115 } 2116 2117 while (1) { 2118 smlTrace(TRACE_INTERNAL, "read: %s\n",(char *)xmlTextReaderConstName(parser->reader)); 2119 if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_CTCAP) && 2120 xmlTextReaderNodeType(parser->reader) == XML_NODE_CLOSE) { 2121 break; 2122 } else if (xmlTextReaderNodeType(parser->reader) != XML_NODE_START) { 2123 smlErrorSet(error, SML_ERROR_GENERIC, "Not a start node: %s", (char *)xmlTextReaderConstName(parser->reader)); 2124 goto error; 2125 } 2126 2127 const char *elem_name; 2128 char *value = NULL; 2129 SmlDevInfCTCapType type; 2130 2131 elem_name = (const char*)xmlTextReaderConstName(parser->reader); 2132 type = smlDevInfCTCapTypeFromString(elem_name, NULL); 2133 if (type != SML_DEVINF_CTCAP_UNKNOWN) { 2134 _smlXmlParserGetString(parser, &value, elem_name, error); 2135 smlDevInfAddCTCap(devinf, type, value); 2136 g_free(value); 2137 } 2138 2139 if (!_smlXmlParserStep(parser)) { 2140 smlErrorSet(error, SML_ERROR_GENERIC, "Missing nodes"); 2141 goto error; 2142 } 2143 } 2144 2145 smlTrace(TRACE_EXIT, "%s", __func__); 2146 return TRUE; 2147 2148 error: 2149 smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, smlErrorPrint(error)); 2150 return FALSE; 2151 } 2152 2106 2153 static SmlBool _smlXmlDevInfDataStoreParseRxTx(SmlXmlParser *parser, const char *element, char **cttype, char **version, SmlError **error) 2107 2154 { 2108 2155 smlTrace(TRACE_ENTRY, "%s(%p, %s, %p, %p, %p)", __func__, parser, element, cttype, version, error); … … 2213 2260 } else if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_TX)) { 2214 2261 if (!_smlXmlDevInfDataStoreParseRxTx(parser, SML_ELEMENT_TX, &(datastore->txContentType), &(datastore->txVersion), error)) 2215 2262 goto error_free_datastore; 2263 } else if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_CTCAP)) { 2264 if (!_smlXmlDevInfDataStoreParseCTCap(parser, devinf, error)) 2265 goto error_free_datastore; 2216 2266 } else if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_SYNCCAP)) { 2217 2267 if (!_smlXmlDevInfDataStoreParseSyncCap(parser, datastore, error)) 2218 2268 goto error_free_datastore; … … 2299 2349 devinf->version = SML_DEVINF_VERSION_11; 2300 2350 else if (verdtd && !strcmp(verdtd, "1.0")) 2301 2351 devinf->version = SML_DEVINF_VERSION_10; 2352 else if (verdtd && !strcmp(verdtd, "1.2")) 2353 devinf->version = SML_DEVINF_VERSION_12; 2302 2354 else { 2303 2355 g_free(verdtd); 2304 2356 smlErrorSet(error, SML_ERROR_GENERIC, "Unknown devinf version"); … … 2400 2452 if (!_smlXmlDevInfDataStoreParse(parser, devinf, error)) 2401 2453 goto error_free_devinf; 2402 2454 } else if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_CTCAP)) { 2403 if (!_smlXmlParserStep(parser)) { 2404 smlErrorSet(error, SML_ERROR_GENERIC, "Missing nodes"); 2455 if (!_smlXmlDevInfDataStoreParseCTCap(parser, devinf, error)) 2405 2456 goto error_free_devinf; 2406 }2407 2408 while (1) {2409 if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_CTCAP) &&2410 xmlTextReaderNodeType(parser->reader) == XML_NODE_CLOSE) {2411 break;2412 } else if (xmlTextReaderNodeType(parser->reader) != XML_NODE_START) {2413 smlErrorSet(error, SML_ERROR_GENERIC, "Not a start node");2414 goto error_free_devinf;2415 }2416 2417 const char *elem_name;2418 char *value = NULL;2419 SmlDevInfCTCapType type;2420 2421 elem_name = (const char*)xmlTextReaderConstName(parser->reader);2422 type = smlDevInfCTCapTypeFromString(elem_name, NULL);2423 if (type != SML_DEVINF_CTCAP_UNKNOWN) {2424 _smlXmlParserGetString(parser, &value, elem_name, error);2425 smlDevInfAddCTCap(devinf, type, value);2426 g_free(value);2427 }2428 2429 if (!_smlXmlParserStep(parser)) {2430 smlErrorSet(error, SML_ERROR_GENERIC, "Missing nodes");2431 goto error_free_devinf;2432 }2433 }2434 2457 } else if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_EXT)) { 2435 2458 /* Ignored for now */ 2436 2459 smlTrace(TRACE_INTERNAL, "Skipping ext node"); -
libsyncml/sml_defines.h
old new 198 198 typedef enum { 199 199 SML_DEVINF_VERSION_UNKNOWN = 0, 200 200 SML_DEVINF_VERSION_10 = 1, 201 SML_DEVINF_VERSION_11 = 2 201 SML_DEVINF_VERSION_11 = 2, 202 SML_DEVINF_VERSION_12 = 3 202 203 } SmlDevInfVersion; 203 204 204 205 typedef enum {
