If I run the export command manually, it just dumps the whole thing to the screen without any breaks or requests to 'hit space to continue' or things like that, so I don't *think* it's a page length type setting?
Actually, I just did another review and I'm thinking that it has something to do with the prompt definition. Just so we're looking at the same thing, the files are here: https://github.com/hillscott/rancid-watchguard. Forked from https://bitbucket.org/aquerubin/rancid-vyatta. In the xtmlogin file, it sets the prompt (line 436) to something I don't see. In this original state, xtmlogin never recognized it finished the login. When I changed that line to set prompt ">>|#" then xtmlogin completes successfully. (The prompt for this watchguard firewall is "WG#") ----------- foreach router [lrange $argv $i end] { set router [string tolower $router] send_user "$router\n" # device timeout set timeout [find timeout $router] if { [llength $timeout] == 0 } { set timeout $timeoutdflt } set prompt ">>" # Figure out username if {[info exists username]} { ----------- However, in the xtm.pm module, line 102 defines it again. ----------- while (/\s*($cmds_regexp)\s*$/) { $cmd = $1; $prompt = ">>"; if (!defined($prompt)) { $prompt = ($_ =~ /^([^>]+>)/)[0]; $prompt =~ s/([][}{)(\\])/\\$1/g; print STDERR ("PROMPT MATCH: $prompt\n") if ($debug); } print STDERR ("HIT COMMAND:$_") if ($debug); if (! defined($commands{$cmd})) { print STDERR "$host: found unexpected command - \"$cmd\"\n"; $clean_run = 0; last TOP; } $rval = &{$commands{$cmd}}($INPUT, $OUTPUT, $cmd); delete($commands{$cmd}); if ($rval == -1) { $clean_run = 0; last TOP; } } ----------- Once you get to the sub ShowConfiguration section, on line 199 if it sees the prompt, end. Guess what? The "#" character is inside the config (there is some html code in one of the xml sections) and that is where the config ends. ----------- sub ShowConfiguration { my($INPUT, $OUTPUT, $cmd) = @_; my($lines) = 0; my($snmp) = 0; print STDERR " In ShowConfiguration: $_" if ($debug); # We don't care about password filtering as passwords are hashed # So don't use this if you need it (or develop the functionality). if ($filter_pwds >= 1){ print STDERR "WARNING: Password filtering isn't implemented yet!\n"; print STDERR "Either disable password filtering in rancid.conf"; print STDERR " or don't use this plugin.\n"; } s/^[a-z]+@//; ProcessHistory("","","","# $_"); while (<$INPUT>) { tr/\015//d; next if (/^\s*$/); # end of config - hopefully. # end-of-config tag. appears to end with "\nPROMPT:~$". if (/$prompt/) { $found_end++; last; } ----------- So I'm thinking if I can figure out a different way to define the prompt to be more than just the # sign (at least in the xtm.pm), that should do the trick? Can you do something like $prompt = "#$" ? Wayne -----Original Message----- From: john heasley <h...@shrubbery.net> Sent: Tuesday, July 02, 2019 7:48 PM To: Wayne Eisenberg <wayne.eisenb...@carolinasit.com> Cc: 'rancid-discuss@shrubbery.net' <rancid-discuss@shrubbery.net> Subject: Re: [rancid] Watchguard xml file Sat, Jun 29, 2019 at 11:46:23AM +0000, Wayne Eisenberg: > Hi, > > OK, so I can get into the firewall and pull the config with "export config to > console". However, the config file is a very large xml file, this one is > about 2MB in size. However, it seems like it only recorded the first 388KB of > data. Is there a size limit on what rancid can process, or maybe there was a > character in the xml that rancid didn't like and it just aborted processing > it? How would I go about troubleshooting this? > there is no such limit. I would suspect a PAGER is involved, causing the output to cease. _______________________________________________ Rancid-discuss mailing list Rancid-discuss@shrubbery.net http://www.shrubbery.net/mailman/listinfo/rancid-discuss