void vtysh_config_parse_line (char *line) { char c; static struct config *config = NULL; if (! line) return; c = line[0]; if (c == '\0') return; /* printf ("[%s]\n", line); */ switch (c) { case '!': case '#': break; case ' ': /* Store line to current configuration. */ if (config) { config_add_line (config->line, line); } else config_add_line (config_top, line); break; default: if (strncmp (line, "interface", strlen ("interface")) == 0) config = config_get (INTERFACE_NODE, line); else if (strncmp (line, "key", strlen ("key")) == 0) config = config_get (KEYCHAIN_NODE, line); else { if (strncmp (line, "log", strlen ("log")) == 0 || strncmp (line, "hostname", strlen ("hostname")) == 0 || strncmp (line, "password", strlen ("hostname")) == 0) config_add_line_uniq (config_top, line); else config_add_line (config_top, line); config = NULL; } break; } }
void vtysh_config_parse_line (char *line) { char c; static struct config *config = NULL; if (! line) return; c = line[0]; if (c == '\0') return; /* printf ("[%s]\n", line); */ switch (c) { case '!': case '#': break; case ' ': /* Store line to current configuration. */ if (config) { if (strncmp (line, " address-family vpnv4", strlen (" address-family vpnv4")) == 0) config = config_get (BGP_VPNV4_NODE, line); else if (strncmp (line, " address-family ipv4 multicast", strlen (" address-family ipv4 multicast")) == 0) config = config_get (BGP_IPV4M_NODE, line); else if (strncmp (line, " address-family ipv6", strlen (" address-family ipv6")) == 0) config = config_get (BGP_IPV6_NODE, line); else if (config->index == RMAP_NODE) config_add_line_uniq (config->line, line); else config_add_line (config->line, line); } else config_add_line (config_top, line); break; default: if (strncmp (line, "interface", strlen ("interface")) == 0) config = config_get (INTERFACE_NODE, line); else if (strncmp (line, "router rip", strlen ("router rip")) == 0) config = config_get (RIP_NODE, line); else if (strncmp (line, "router ripng", strlen ("router ripng")) == 0) config = config_get (RIPNG_NODE, line); else if (strncmp (line, "router ospf", strlen ("router ospf")) == 0) config = config_get (OSPF_NODE, line); else if (strncmp (line, "router ospf6", strlen ("router ospf6")) == 0) config = config_get (OSPF6_NODE, line); else if (strncmp (line, "router bgp", strlen ("router bgp")) == 0) config = config_get (BGP_NODE, line); else if (strncmp (line, "router", strlen ("router")) == 0) config = config_get (BGP_NODE, line); else if (strncmp (line, "route-map", strlen ("route-map")) == 0) config = config_get (RMAP_NODE, line); else if (strncmp (line, "access-list", strlen ("access-list")) == 0) config = config_get (ACCESS_NODE, line); else if (strncmp (line, "ipv6 access-list", strlen ("ipv6 access-list")) == 0) config = config_get (ACCESS_IPV6_NODE, line); else if (strncmp (line, "ip prefix-list", strlen ("ip prefix-list")) == 0) config = config_get (PREFIX_NODE, line); else if (strncmp (line, "ipv6 prefix-list", strlen ("ipv6 prefix-list")) == 0) config = config_get (PREFIX_IPV6_NODE, line); else if (strncmp (line, "ip as-path access-list", strlen ("ip as-path access-list")) == 0) config = config_get (AS_LIST_NODE, line); else if (strncmp (line, "ip community-list", strlen ("ip community-list")) == 0) config = config_get (COMMUNITY_LIST_NODE, line); else if (strncmp (line, "ip route", strlen ("ip route")) == 0) config = config_get (IP_NODE, line); else if (strncmp (line, "ipv6 route", strlen ("ipv6 route")) == 0) config = config_get (IP_NODE, line); else if (strncmp (line, "key", strlen ("key")) == 0) config = config_get (KEYCHAIN_NODE, line); else { if (strncmp (line, "log", strlen ("log")) == 0 || strncmp (line, "hostname", strlen ("hostname")) == 0 || strncmp (line, "password", strlen ("hostname")) == 0) config_add_line_uniq (config_top, line); else config_add_line (config_top, line); config = NULL; } break; } }
static void vtysh_config_parse_line (const char *line) { char c; static struct config *config = NULL; if (! line) return; c = line[0]; if (c == '\0') return; /* printf ("[%s]\n", line); */ switch (c) { case '!': case '#': break; case ' ': /* Store line to current configuration. */ if (config) { if (strncmp (line, " address-family vpnv4", strlen (" address-family vpnv4")) == 0) config = config_get (BGP_VPNV4_NODE, line); else if (strncmp (line, " address-family vpn6", strlen (" address-family vpn6")) == 0) config = config_get (BGP_VPNV6_NODE, line); else if (strncmp (line, " address-family encapv6", strlen (" address-family encapv6")) == 0) config = config_get (BGP_ENCAPV6_NODE, line); else if (strncmp (line, " address-family encap", strlen (" address-family encap")) == 0) config = config_get (BGP_ENCAP_NODE, line); else if (strncmp (line, " address-family ipv4 multicast", strlen (" address-family ipv4 multicast")) == 0) config = config_get (BGP_IPV4M_NODE, line); else if (strncmp (line, " address-family ipv6", strlen (" address-family ipv6")) == 0) config = config_get (BGP_IPV6_NODE, line); else if (config->index == RMAP_NODE || config->index == INTERFACE_NODE || config->index == VTY_NODE) config_add_line_uniq (config->line, line); else config_add_line (config->line, line); } else config_add_line (config_top, line); break; default: if (strncmp (line, "interface", strlen ("interface")) == 0) config = config_get (INTERFACE_NODE, line); else if (strncmp (line, "router-id", strlen ("router-id")) == 0) config = config_get (ZEBRA_NODE, line); else if (strncmp (line, "router rip", strlen ("router rip")) == 0) config = config_get (RIP_NODE, line); else if (strncmp (line, "router ripng", strlen ("router ripng")) == 0) config = config_get (RIPNG_NODE, line); else if (strncmp (line, "router ospf", strlen ("router ospf")) == 0) config = config_get (OSPF_NODE, line); else if (strncmp (line, "router ospf6", strlen ("router ospf6")) == 0) config = config_get (OSPF6_NODE, line); else if (strncmp (line, "router bgp", strlen ("router bgp")) == 0) config = config_get (BGP_NODE, line); else if (strncmp (line, "router isis", strlen ("router isis")) == 0) config = config_get (ISIS_NODE, line); else if (strncmp (line, "router bgp", strlen ("router bgp")) == 0) config = config_get (BGP_NODE, line); else if (strncmp (line, "route-map", strlen ("route-map")) == 0) config = config_get (RMAP_NODE, line); else if (strncmp (line, "access-list", strlen ("access-list")) == 0) config = config_get (ACCESS_NODE, line); else if (strncmp (line, "ipv6 access-list", strlen ("ipv6 access-list")) == 0) config = config_get (ACCESS_IPV6_NODE, line); else if (strncmp (line, "ip prefix-list", strlen ("ip prefix-list")) == 0) config = config_get (PREFIX_NODE, line); else if (strncmp (line, "ipv6 prefix-list", strlen ("ipv6 prefix-list")) == 0) config = config_get (PREFIX_IPV6_NODE, line); else if (strncmp (line, "ip as-path access-list", strlen ("ip as-path access-list")) == 0) config = config_get (AS_LIST_NODE, line); else if (strncmp (line, "ip community-list", strlen ("ip community-list")) == 0) config = config_get (COMMUNITY_LIST_NODE, line); else if (strncmp (line, "ip route", strlen ("ip route")) == 0) config = config_get (IP_NODE, line); else if (strncmp (line, "ipv6 route", strlen ("ipv6 route")) == 0) config = config_get (IP_NODE, line); else if (strncmp (line, "key", strlen ("key")) == 0) config = config_get (KEYCHAIN_NODE, line); else if (strncmp (line, "line", strlen ("line")) == 0) config = config_get (VTY_NODE, line); else if ( (strncmp (line, "ipv6 forwarding", strlen ("ipv6 forwarding")) == 0) || (strncmp (line, "ip forwarding", strlen ("ip forwarding")) == 0) ) config = config_get (FORWARDING_NODE, line); else if (strncmp (line, "service", strlen ("service")) == 0) config = config_get (SERVICE_NODE, line); else if (strncmp (line, "debug", strlen ("debug")) == 0) config = config_get (DEBUG_NODE, line); else if (strncmp (line, "password", strlen ("password")) == 0 || strncmp (line, "enable password", strlen ("enable password")) == 0) config = config_get (AAA_NODE, line); else if (strncmp (line, "ip protocol", strlen ("ip protocol")) == 0) config = config_get (PROTOCOL_NODE, line); else { if (strncmp (line, "log", strlen ("log")) == 0 || strncmp (line, "hostname", strlen ("hostname")) == 0 ) config_add_line_uniq (config_top, line); else config_add_line (config_top, line); config = NULL; } break; } }