Ticket #104: libsyncml-devinf12-0.4.2+svn20070208.diff

File libsyncml-devinf12-0.4.2+svn20070208.diff, 6.2 kB (added by akriegisch, 2 years ago)

updated patch (applies against v0.4.2+svn20070208/Debian packages)

  • libsyncml/objects/sml_devinf_obj.c

    old new  
    9595         
    9696        if (!agent->devinfSent) { 
    9797                if (get) { 
    98                         if (smlSessionGetVersion(session) == SML_VERSION_10) 
     98                        SmlProtocolVersion ver = smlSessionGetVersion(session); 
     99                        if (ver == SML_VERSION_10) 
    99100                                result = smlDevInfNewResult(get, agent->devinf, SML_DEVINF_VERSION_10, error); 
    100                         else 
     101                        else if (ver == SML_VERSION_11) 
    101102                                result = smlDevInfNewResult(get, agent->devinf, SML_DEVINF_VERSION_11, error); 
    102                          
     103                        else if (ver == SML_VERSION_12) 
     104                                result = smlDevInfNewResult(get, agent->devinf, SML_DEVINF_VERSION_12, error); 
     105 
    103106                        if (!result) 
    104107                                goto error; 
    105108                         
     
    123126                } else { 
    124127                        if (smlSessionGetVersion(session) == SML_VERSION_10) 
    125128                                cmd = smlDevInfNewPut(agent->devinf, SML_DEVINF_VERSION_10, error); 
    126                         else 
     129                        else if (smlSessionGetVersion(session) == SML_VERSION_11) 
    127130                                cmd = smlDevInfNewPut(agent->devinf, SML_DEVINF_VERSION_11, error); 
    128                          
     131                        else if (smlSessionGetVersion(session) == SML_VERSION_12) 
     132                                cmd = smlDevInfNewPut(agent->devinf, SML_DEVINF_VERSION_12, error); 
    129133                        if (!cmd) 
    130134                                goto error; 
    131135                         
     
    281285         
    282286        if (smlSessionGetVersion(session) == SML_VERSION_10) 
    283287                get = smlDevInfNewGet(SML_DEVINF_VERSION_10, error); 
    284         else 
     288        else if (smlSessionGetVersion(session) == SML_VERSION_11) 
    285289                get = smlDevInfNewGet(SML_DEVINF_VERSION_11, error); 
    286          
     290        else if (smlSessionGetVersion(session) == SML_VERSION_12) 
     291                get = smlDevInfNewGet(SML_DEVINF_VERSION_12, error); 
     292 
    287293        if (!get) 
    288294                goto error; 
    289295                 
     
    308314        smlAssert(agent); 
    309315        smlAssert(manager); 
    310316 
    311         SmlLocation *devinf11 = smlLocationNew("./devinf11", NULL, error); 
    312317        SmlLocation *devinf10 = smlLocationNew("./devinf10", NULL, error); 
     318        SmlLocation *devinf11 = smlLocationNew("./devinf11", NULL, error); 
     319        SmlLocation *devinf12 = smlLocationNew("./devinf12", NULL, error); 
    313320 
    314         if (!devinf11 || !devinf10
     321        if (!devinf10 || !devinf11 || !devinf12
    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(devinf12); 
    338352error: 
    339353        smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, smlErrorPrint(error)); 
    340354        return FALSE; 
  • libsyncml/parser/sml_xml_assm.c

    old new  
    18711871         
    18721872        //Verdtd 
    18731873        switch (version) { 
     1874                case SML_DEVINF_VERSION_10: 
     1875                        if (!_smlXmlAssemblerAddString(assm, SML_ELEMENT_VERDTD, "1.0", 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; 
    18771881                        break; 
    1878                 case SML_DEVINF_VERSION_10
    1879                         if (!_smlXmlAssemblerAddString(assm, SML_ELEMENT_VERDTD, "1.0", error)) 
     1882                case SML_DEVINF_VERSION_12
     1883                        if (!_smlXmlAssemblerAddString(assm, SML_ELEMENT_VERDTD, "1.2", error)) 
    18801884                                goto error_free_writer; 
    18811885                        break; 
    18821886                case SML_DEVINF_VERSION_UNKNOWN: 
  • libsyncml/parser/sml_xml_parse.c

    old new  
    22192219                } else if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_DSMEM)) {  
    22202220                        if (!_smlXmlDevInfDataStoreParseDSMem(parser, datastore, error)) 
    22212221                                goto error_free_datastore; 
     2222                } else if (!strcmp((char *)xmlTextReaderConstName(parser->reader), SML_ELEMENT_CTCAP) && 
     2223                devinf->version >= SML_DEVINF_VERSION_12) { 
     2224                        // Ignore for now  
     2225                        smlTrace(TRACE_INTERNAL, "Skipping ctcap node in SyncML 1.2");  
     2226                        if (xmlTextReaderNext(parser->reader) != 1) {  
     2227                                smlErrorSet(error, SML_ERROR_GENERIC, "Unable to skip ctcap node");  
     2228                                goto error;  
     2229                        }  
     2230                        continue;  
    22222231                } else { 
    22232232                        smlErrorSet(error, SML_ERROR_GENERIC, "wrong initial node (%s)", (char *)xmlTextReaderConstName(parser->reader)); 
    22242233                        goto error_free_datastore; 
     
    22952304                        if (!_smlXmlParserGetString(parser, &verdtd, SML_ELEMENT_VERDTD, error)) 
    22962305                                goto error_free_devinf; 
    22972306                         
    2298                         if (verdtd && !strcmp(verdtd, "1.1")) 
    2299                                 devinf->version = SML_DEVINF_VERSION_11; 
    2300                         else if (verdtd && !strcmp(verdtd, "1.0")) 
     2307                        if (verdtd && !strcmp(verdtd, "1.0")) 
    23012308                                devinf->version = SML_DEVINF_VERSION_10; 
     2309                        else if (verdtd && !strcmp(verdtd, "1.1")) 
     2310                                devinf->version = SML_DEVINF_VERSION_11; 
     2311                        else if (verdtd && !strcmp(verdtd, "1.2")) 
     2312                                devinf->version = SML_DEVINF_VERSION_12; 
    23022313                        else { 
    23032314                                g_free(verdtd); 
    23042315                                smlErrorSet(error, SML_ERROR_GENERIC, "Unknown devinf version"); 
  • libsyncml/sml_defines.h

    old new  
    187187typedef enum  { 
    188188        SML_DEVINF_VERSION_UNKNOWN = 0, 
    189189        SML_DEVINF_VERSION_10 = 1, 
    190         SML_DEVINF_VERSION_11 = 2 
     190        SML_DEVINF_VERSION_11 = 2, 
     191        SML_DEVINF_VERSION_12 = 3 
    191192} SmlDevInfVersion; 
    192193 
    193194typedef enum {