On Sat, 9 Dec 2023, Jon Lewis wrote:

--- ios.pm.orig 2020-10-15 11:26:17.000000000 -0400
+++ ios.pm      2023-12-09 22:21:50.408683973 -0500
@@ -2787,7 +2794,7 @@
    #  The ContentEngine lacks a definitive "end of config" marker.  If we
    #  know that it is a CE, SAN, or NXOS and we have seen at least 5 lines
    #  of write term output, we can be reasonably sure that we have the
    #  config.
-    if (($type eq "CE" || $type eq "SAN" || $type eq "NXOS") && $linecnt > 5) {
+    if (($type eq "CE" || $type eq "SAN" || $type eq "NXOS" || $devtype eq "axos") 
&& $linecnt > 5) {
        $found_end = 1;
        return(0);
     }

I did some more debugging tonight, and see the problem now. I'm kind of curious out the CE/SAN/NXOS types get around this...but the problem is, with no clear end of config marker to the show running-config, the WriteTerm function doesn't stop processing input until it's read all of it. In WriteTerm, when

last if (/^$prompt/);

matches, the line matched has the exit command on it. So when processing is handed back to inloop, there's nothing left for it to process other than the "Shared connection to ... closed." message from ssh.

Would it be an appropriate workaround for this to also set $clean_run = 1 in the above if statement at the end of WriteTerm...or make a new if statment just for $devtype axos that sets both $found_end and $clean_run?

----------------------------------------------------------------------
 Jon Lewis, MCP :)              |  I route
 Blue Stream Fiber, Sr. Neteng  |  therefore you are
_________ http://www.lewis.org/~jlewis/pgp for PGP public key_________

_______________________________________________
Rancid-discuss mailing list
[email protected]
https://www.shrubbery.net/mailman/listinfo/rancid-discuss

Reply via email to