Ignore:
Timestamp:
2011-07-28T21:54:11+02:00 (5 years ago)
Author:
juhosg
Message:

swconfig: fix backward compatibility

swconfig fails to load uci configuration after the generic switch
identifier changes.

root@OpenWrt:/# uci show network | grep switch
network.@switch[0]=switch
network.@switch[0].name=eth0
network.@switch[0].reset=1
network.@switch[0].enable_vlan=1
network.@switch_vlan[0]=switch_vlan
network.@switch_vlan[0].device=eth0
network.@switch_vlan[0].vlan=1
network.@switch_vlan[0].ports=0t 2 3 4 5
network.@switch_vlan[1]=switch_vlan
network.@switch_vlan[1].device=eth0
network.@switch_vlan[1].vlan=2
network.@switch_vlan[1].ports=0t 1
root@OpenWrt:/# swconfig dev eth0 load /etc/config/network
Failed to apply configuration for switch 'switch0'
root@OpenWrt:/# swconfig dev switch0 load /etc/config/network
Failed to apply configuration for switch 'switch0'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/swconfig/src/uci.c

    r27375 r27820  
    5454static struct swlib_setting **head; 
    5555 
     56static bool swlib_match_name(struct switch_dev *dev, const char *name) 
     57{ 
     58        return (strcmp(name, dev->dev_name) == 0 || 
     59                strcmp(name, dev->alias) == 0); 
     60} 
     61 
    5662static int 
    5763swlib_map_settings(struct switch_dev *dev, int type, int port_vlan, struct uci_section *s) 
     
    132138                                continue; 
    133139 
    134                         if (!strcmp(o->v.string, dev->dev_name)) 
     140                        if (swlib_match_name(dev, o->v.string)) 
    135141                                goto found; 
    136142 
     
    138144                } 
    139145 
    140                 if (strcmp(e->name, dev->dev_name) != 0) 
     146                if (!swlib_match_name(dev, e->name)) 
    141147                        continue; 
    142148 
     
    172178                                if (!strcmp(os->name, "device")) { 
    173179                                        devn = o->v.string; 
    174                                         if (strcmp(devn, dev->dev_name) != 0) 
     180                                        if (!swlib_match_name(dev, devn)) 
    175181                                                devn = NULL; 
    176182                                } else if (!strcmp(os->name, "port")) { 
     
    197203                                if (!strcmp(os->name, "device")) { 
    198204                                        devn = o->v.string; 
    199                                         if (strcmp(devn, dev->dev_name) != 0) 
     205                                        if (!swlib_match_name(dev, devn)) 
    200206                                                devn = NULL; 
    201207                                } else if (!strcmp(os->name, "vlan")) { 
Note: See TracChangeset for help on using the changeset viewer.