Ticket #121: syncml12.patch

File syncml12.patch, 9.7 kB (added by pieterpalmers, 1 year ago)
  • Doxyfile.in

    old new  
    432432# should be searched for input files as well. Possible values are YES and NO.  
    433433# If left blank NO is used. 
    434434 
    435 RECURSIVE = NO 
     435RECURSIVE = YES 
    436436 
    437437# The EXCLUDE tag can be used to specify files and/or directories that should  
    438438# excluded from the INPUT source files. This way you can easily exclude a  
  • libsyncml/objects/sml_devinf_obj.c

    old new  
    9797                if (get) { 
    9898                        if (smlSessionGetVersion(session) == SML_VERSION_10) 
    9999                                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); 
    100102                        else 
    101103                                result = smlDevInfNewResult(get, agent->devinf, SML_DEVINF_VERSION_11, error); 
    102104                         
     
    123125                } else { 
    124126                        if (smlSessionGetVersion(session) == SML_VERSION_10) 
    125127                                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); 
    126130                        else 
    127131                                cmd = smlDevInfNewPut(agent->devinf, SML_DEVINF_VERSION_11, error); 
    128132                         
     
    281285         
    282286        if (smlSessionGetVersion(session) == SML_VERSION_10) 
    283287                get = smlDevInfNewGet(SML_DEVINF_VERSION_10, error); 
     288        else if (smlSessionGetVersion(session) == SML_VERSION_12) 
     289                get = smlDevInfNewGet(SML_DEVINF_VERSION_12, error); 
    284290        else 
    285291                get = smlDevInfNewGet(SML_DEVINF_VERSION_11, error); 
    286292         
     
    308314        smlAssert(agent); 
    309315        smlAssert(manager); 
    310316 
     317        SmlLocation *devinf12 = smlLocationNew("./devinf12", NULL, error); 
    311318        SmlLocation *devinf11 = smlLocationNew("./devinf11", NULL, error); 
    312319        SmlLocation *devinf10 = smlLocationNew("./devinf10", NULL, error); 
    313320 
    314         if (!devinf11 || !devinf10) 
     321        if (!devinf12 || !devinf11 || !devinf10) 
    315322                goto error; 
    316323 
    317324        if (!smlManagerObjectRegister(manager, SML_COMMAND_TYPE_PUT, session, NULL, devinf10, NULL, _recv_devinf, NULL, agent, error)) 
    318325                goto error_free_loc; 
    319326        if (!smlManagerObjectRegister(manager, SML_COMMAND_TYPE_PUT, session, NULL, devinf11, NULL, _recv_devinf, NULL, agent, error)) 
    320327                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; 
    321330 
    322331        if (!smlManagerObjectRegister(manager, SML_COMMAND_TYPE_GET, session, devinf10, NULL, NULL, _request_devinf, NULL, agent, error)) 
    323332                goto error_free_loc; 
    324333        if (!smlManagerObjectRegister(manager, SML_COMMAND_TYPE_GET, session, devinf11, NULL, NULL, _request_devinf, NULL, agent, error)) 
    325334                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; 
    326337 
    327338        smlLocationUnref(devinf10); 
    328339        smlLocationUnref(devinf11); 
     340        smlLocationUnref(devinf12); 
    329341 
    330342        smlTrace(TRACE_EXIT, "%s", __func__); 
    331343        return TRUE; 
     
    335347                smlLocationUnref(devinf10); 
    336348        if (devinf11) 
    337349                smlLocationUnref(devinf11); 
     350        if (devinf12) 
     351                smlLocationUnref(devinf11); 
    338352error: 
    339353        smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, smlErrorPrint(error)); 
    340354        return FALSE; 
  • libsyncml/sml_devinf.c

    old new  
    554554         
    555555        if (version == SML_DEVINF_VERSION_10) 
    556556                source = smlLocationNew("./devinf10", NULL, error); 
     557        else if (version == SML_DEVINF_VERSION_12) 
     558                source = smlLocationNew("./devinf12", NULL, error); 
    557559        else 
    558560                source = smlLocationNew("./devinf11", NULL, error); 
    559561                 
     
    588590         
    589591        if (version == SML_DEVINF_VERSION_10) 
    590592                source = smlLocationNew("./devinf10", NULL, error); 
     593        else if (version == SML_DEVINF_VERSION_12) 
     594                source = smlLocationNew("./devinf12", NULL, error); 
    591595        else 
    592596                source = smlLocationNew("./devinf11", NULL, error); 
    593597                 
     
    630634         
    631635        if (version == SML_DEVINF_VERSION_10) 
    632636                target = smlLocationNew("./devinf10", NULL, error); 
     637        else if (version == SML_DEVINF_VERSION_12) 
     638                target = smlLocationNew("./devinf12", NULL, error); 
    633639        else 
    634640                target = smlLocationNew("./devinf11", NULL, error); 
    635641                 
  • libsyncml/parser/sml_xml_assm.c

    old new  
    18711871         
    18721872        //Verdtd 
    18731873        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; 
    18741878                case SML_DEVINF_VERSION_11: 
    18751879                        if (!_smlXmlAssemblerAddString(assm, SML_ELEMENT_VERDTD, "1.1", error)) 
    18761880                                goto error_free_writer; 
  • libsyncml/parser/sml_xml_parse.c

    old new  
    21032103        return FALSE; 
    21042104} 
    21052105 
     2106static 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 
     2148error: 
     2149        smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, smlErrorPrint(error)); 
     2150        return FALSE; 
     2151} 
     2152 
    21062153static SmlBool _smlXmlDevInfDataStoreParseRxTx(SmlXmlParser *parser, const char *element, char **cttype, char **version, SmlError **error) 
    21072154{ 
    21082155        smlTrace(TRACE_ENTRY, "%s(%p, %s, %p, %p, %p)", __func__, parser, element, cttype, version, error); 
     
    22132260                } else if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_TX)) { 
    22142261                        if (!_smlXmlDevInfDataStoreParseRxTx(parser, SML_ELEMENT_TX, &(datastore->txContentType), &(datastore->txVersion), error)) 
    22152262                                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; 
    22162266                } else if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_SYNCCAP)) { 
    22172267                        if (!_smlXmlDevInfDataStoreParseSyncCap(parser, datastore, error)) 
    22182268                                goto error_free_datastore; 
     
    22992349                                devinf->version = SML_DEVINF_VERSION_11; 
    23002350                        else if (verdtd && !strcmp(verdtd, "1.0")) 
    23012351                                devinf->version = SML_DEVINF_VERSION_10; 
     2352                        else if (verdtd && !strcmp(verdtd, "1.2")) 
     2353                                devinf->version = SML_DEVINF_VERSION_12; 
    23022354                        else { 
    23032355                                g_free(verdtd); 
    23042356                                smlErrorSet(error, SML_ERROR_GENERIC, "Unknown devinf version"); 
     
    24002452                        if (!_smlXmlDevInfDataStoreParse(parser, devinf, error)) 
    24012453                                goto error_free_devinf; 
    24022454                } 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)) 
    24052456                                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                         } 
    24342457                } else if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_EXT)) { 
    24352458                        /* Ignored for now */ 
    24362459                        smlTrace(TRACE_INTERNAL, "Skipping ext node"); 
  • libsyncml/sml_defines.h

    old new  
    198198typedef enum  { 
    199199        SML_DEVINF_VERSION_UNKNOWN = 0, 
    200200        SML_DEVINF_VERSION_10 = 1, 
    201         SML_DEVINF_VERSION_11 = 2 
     201        SML_DEVINF_VERSION_11 = 2, 
     202        SML_DEVINF_VERSION_12 = 3 
    202203} SmlDevInfVersion; 
    203204 
    204205typedef enum {