X-Git-Url: http://git.openwrt.org/?p=project%2Fuci.git;a=blobdiff_plain;f=ucimap-example.c;h=baea5500b9791b9de684382991939c97d9c6017c;hp=9fc71e2e104e0e1d6c1fc8023356aad5640ce7ce;hb=82a71ad8d80c1d5831916efff87cb03b77096032;hpb=6d75ac9588e1aa3a85dd85d121978e9d99531ac4 diff --git a/ucimap-example.c b/ucimap-example.c index 9fc71e2..baea550 100644 --- a/ucimap-example.c +++ b/ucimap-example.c @@ -58,6 +58,18 @@ network_parse_ip(void *section, struct uci_optmap *om, union ucimap_data *data, return 0; } +static int +network_format_ip(void *sction, struct uci_optmap *om, union ucimap_data *data, char **str) +{ + static char buf[16]; + unsigned char *ip = (unsigned char *) data->s; + + sprintf(buf, "%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]); + *str = buf; + + return 0; +} + static int network_init_interface(struct uci_map *map, void *section, struct uci_section *s) { @@ -139,6 +151,7 @@ static struct my_optmap network_interface_options[] = { .type = UCIMAP_CUSTOM, .name = "ipaddr", .parse = network_parse_ip, + .format = network_format_ip, } }, { @@ -241,9 +254,9 @@ int main(int argc, char **argv) printf("New alias: %s\n", alias->name); } #if 0 - net->ipaddr = "2.3.4.5"; - ucimap_set_changed(net, &net->ipaddr); - ucimap_store_section(&network_map, pkg, net); + memcpy(net->ipaddr, "\x01\x03\x04\x05", 4); + ucimap_set_changed(&net->map, &net->ipaddr); + ucimap_store_section(&network_map, pkg, &net->map); uci_save(ctx, pkg); #endif }