Browse Source

vtysh: fix false lib path matching in extract.pl.in

The if ($file =~ /lib/) path matching logic is supposed to
match Quagga's lib directory only but will match all path
having lib in it such as /var/lib/jenkins/quagga/...

Fix by matching both lib and file: lib/keychain.c etc.

Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Joakim Tjernlund 7 years ago
parent
commit
844ee10416
1 changed files with 34 additions and 35 deletions
  1. 34 35
      vtysh/extract.pl.in

+ 34 - 35
vtysh/extract.pl.in

@@ -90,41 +90,40 @@ foreach (@ARGV) {
 	$cmd =~ s/\s+$//g;
 
         # $protocol is VTYSH_PROTO format for redirection of user input
-    	if ($file =~ /lib/) {
-           if ($file =~ /keychain.c/) {
-              $protocol = "VTYSH_RIPD";
-           }
-           if ($file =~ /routemap.c/) {
-              $protocol = "VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPFD|VTYSH_OSPF6D|VTYSH_BGPD|VTYSH_ZEBRA";
-           }
-           if ($file =~ /filter.c/) {
-              $protocol = "VTYSH_ALL";
-           }
-           if ($file =~ /plist.c/) {
-	      if ($defun_array[1] =~ m/ipv6/) {
-                 $protocol = "VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD|VTYSH_ZEBRA";
-              } else {
-                 $protocol = "VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD|VTYSH_ZEBRA";
-              }
-           }
-           if ($file =~ /distribute.c/) {
-              if ($defun_array[1] =~ m/ipv6/) {
-                 $protocol = "VTYSH_RIPNGD";
-              } else {
-                 $protocol = "VTYSH_RIPD";
-              }
-           }
-           if ($file =~ /if_rmap.c/) {
-              if ($defun_array[1] =~ m/ipv6/) {
-                 $protocol = "VTYSH_RIPNGD";
-              } else {
-                 $protocol = "VTYSH_RIPD";
-              }
-           }
-	   if ($file =~ /vty.c/) {
-	      $protocol = "VTYSH_ALL";
-	   }
-        } else {
+        if ($file =~ /lib\/keychain\.c$/) {
+            $protocol = "VTYSH_RIPD";
+        }
+        elsif ($file =~ /lib\/routemap\.c$/) {
+            $protocol = "VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPFD|VTYSH_OSPF6D|VTYSH_BGPD|VTYSH_ZEBRA";
+        }
+        elsif ($file =~ /lib\/filter\.c$/) {
+            $protocol = "VTYSH_ALL";
+        }
+        elsif ($file =~ /lib\/plist\.c$/) {
+            if ($defun_array[1] =~ m/ipv6/) {
+                $protocol = "VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD|VTYSH_ZEBRA";
+            } else {
+                $protocol = "VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD|VTYSH_ZEBRA";
+            }
+        }
+        elsif ($file =~ /lib\/distribute\.c$/) {
+            if ($defun_array[1] =~ m/ipv6/) {
+                $protocol = "VTYSH_RIPNGD";
+            } else {
+                $protocol = "VTYSH_RIPD";
+            }
+        }
+        elsif ($file =~ /lib\/if_rmap\.c$/) {
+            if ($defun_array[1] =~ m/ipv6/) {
+                $protocol = "VTYSH_RIPNGD";
+            } else {
+                $protocol = "VTYSH_RIPD";
+            }
+        }
+        elsif ($file =~ /lib\/vty\.c$/) {
+           $protocol = "VTYSH_ALL";
+        }
+	else {
            ($protocol) = ($file =~ /^.*\/([a-z0-9]+)\/[a-zA-Z0-9_\-]+\.c$/);
            $protocol = "VTYSH_" . uc $protocol;
         }