networkd: fix size of networkd binary
authorSusant Sahani <ssahani@gmail.com>
Wed, 29 Jul 2015 16:34:28 +0000 (22:04 +0530)
committerSusant Sahani <ssahani@gmail.com>
Wed, 29 Jul 2015 16:50:06 +0000 (22:20 +0530)
This patch fixes the size of networkd
Bug #775

before:

size systemd-networkd
   text    data     bss     dec     hex filename
1493755 8424392    2337 9920484  975fe4 systemd-networkd

After

$ size systemd-networkd
   text    data     bss     dec     hex filename
1493555   35752    2337 1531644  175efc systemd-networkd

src/network/networkd-netdev-tunnel.c
src/network/networkd-netdev-tunnel.h

index 7fd9ef5..265e67b 100644 (file)
@@ -404,12 +404,6 @@ int config_parse_tunnel_address(const char *unit,
         return 0;
 }
 
-static const char* const ipv6_flowlabel_table[_NETDEV_IPV6_FLOWLABEL_MAX] = {
-        [NETDEV_IPV6_FLOWLABEL_INHERIT] = "inherit",
-};
-
-DEFINE_STRING_TABLE_LOOKUP(ipv6_flowlabel, IPv6FlowLabel);
-
 int config_parse_ipv6_flowlabel(const char* unit,
                                 const char *filename,
                                 unsigned line,
@@ -422,7 +416,6 @@ int config_parse_ipv6_flowlabel(const char* unit,
                                 void *userdata) {
         IPv6FlowLabel *ipv6_flowlabel = data;
         Tunnel *t = userdata;
-        IPv6FlowLabel s;
         int k = 0;
         int r;
 
@@ -431,12 +424,11 @@ int config_parse_ipv6_flowlabel(const char* unit,
         assert(rvalue);
         assert(ipv6_flowlabel);
 
-        s = ipv6_flowlabel_from_string(rvalue);
-        if (s != _NETDEV_IPV6_FLOWLABEL_INVALID) {
+        if (streq(rvalue, "inherit")) {
                 *ipv6_flowlabel = IP6_FLOWINFO_FLOWLABEL;
                 t->flags |= IP6_TNL_F_USE_ORIG_FLOWLABEL;
         } else {
-                r = config_parse_unsigned(unit, filename, line, section, section_line, lvalue, ltype, rvalue, &k, userdata);
+                r = config_parse_int(unit, filename, line, section, section_line, lvalue, ltype, rvalue, &k, userdata);
                 if (r >= 0) {
                         if (k > 0xFFFFF)
                                 log_syntax(unit, LOG_ERR, filename, line, k, "Failed to parse IPv6 flowlabel option, ignoring: %s", rvalue);
index 1fd2b94..e4fa74a 100644 (file)
@@ -45,6 +45,7 @@ struct Tunnel {
         uint8_t encap_limit;
 
         int family;
+        int ipv6_flowlabel;
 
         unsigned ttl;
         unsigned tos;
@@ -54,7 +55,6 @@ struct Tunnel {
         union in_addr_union remote;
 
         Ip6TnlMode ip6tnl_mode;
-        IPv6FlowLabel ipv6_flowlabel;
 
         bool pmtudisc;
         bool copy_dscp;
@@ -90,9 +90,6 @@ int config_parse_tunnel_address(const char *unit,
                                 void *data,
                                 void *userdata);
 
-const char *ipv6_flowlabel_to_string(IPv6FlowLabel d) _const_;
-IPv6FlowLabel ipv6_flowlabel_from_string(const char *d) _pure_;
-
 int config_parse_ipv6_flowlabel(const char *unit, const char *filename,
                                 unsigned line, const char *section,
                                 unsigned section_line, const char *lvalue,