X-Git-Url: http://git.archive.openwrt.org/?p=project%2Ffirewall3.git;a=blobdiff_plain;f=utils.c;h=3ad50e3ff17553022ebd29a55fca9fd7d77f03b5;hp=9f57e9f8e03701a33010a0ffb26790680b45e7a0;hb=b6bfb7a067c5699fd5aec28d407d773d3a022567;hpb=ebe3dbe3e8063ed63011bf505fc371d6b0f88aad diff --git a/utils.c b/utils.c index 9f57e9f..3ad50e3 100644 --- a/utils.c +++ b/utils.c @@ -378,9 +378,7 @@ write_zone_uci(struct uci_context *ctx, struct fw3_zone *z, struct fw3_address *sub; enum fw3_family fam = FW3_FAMILY_ANY; - char addr[INET6_ADDRSTRLEN]; - char buf[INET6_ADDRSTRLEN * 2 + 2]; - char *p; + char *p, buf[34]; struct uci_ptr ptr = { .p = dest }; @@ -471,29 +469,7 @@ write_zone_uci(struct uci_context *ctx, struct fw3_zone *z, if (!sub) continue; - p = buf; - - if (sub->invert) - p += sprintf(p, "!"); - - inet_ntop(sub->family == FW3_FAMILY_V4 ? AF_INET : AF_INET6, - &sub->address.v4, addr, sizeof(addr)); - - p += sprintf(p, "%s", addr); - - if (sub->range) - { - inet_ntop(sub->family == FW3_FAMILY_V4 ? AF_INET : AF_INET6, - &sub->address2.v4, addr, sizeof(addr)); - - p += sprintf(p, "-%s", addr); - } - else - { - p += sprintf(p, "/%u", sub->mask); - } - - ptr.value = buf; + ptr.value = fw3_address_to_string(sub, true); uci_add_list(ctx, &ptr); }