|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
90
 | 
 0  | 
 0  | 
 if ($self->{'ssh'}) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif (-S $self->{'ospfsock'}) { }  | 
 
| 
95
 | 
 0  | 
 0  | 
 unless -w $self->{'ospfsock'}  | 
 
| 
99
 | 
 0  | 
 0  | 
 unless open my $fh, "-|", @cmd  | 
 
| 
102
 | 
 0  | 
 0  | 
 $! ? :  | 
 
| 
 | 
 0  | 
 0  | 
 unless close $fh  | 
 
| 
105
 | 
 0  | 
 0  | 
 wantarray ? :  | 
 
| 
112
 | 
 4  | 
 0  | 
 $file ? :  | 
 
| 
117
 | 
 24  | 
 0  | 
 $file ? :  | 
 
| 
126
 | 
 6  | 
 93  | 
 if (/^Router ID: $IP$/) { }  | 
 
| 
 | 
 10  | 
 83  | 
 elsif (/^Area ID: $IP$/) { }  | 
 
| 
140
 | 
 22  | 
 1128  | 
 if (/^ +Router Link States \(Area $IP\)$/) { }  | 
 
| 
 | 
 193  | 
 935  | 
 elsif (/^$/) { }  | 
 
| 
 | 
 53  | 
 882  | 
 elsif (not $r and /^\w/) { }  | 
 
| 
 | 
 110  | 
 1093  | 
 elsif (not $l and /^ {4}\w/) { }  | 
 
| 
141
 | 
 1  | 
 21  | 
 if $l  | 
 
| 
143
 | 
 1  | 
 20  | 
 if $lnum  | 
 
| 
144
 | 
 1  | 
 19  | 
 if $r  | 
 
| 
148
 | 
 105  | 
 88  | 
 if ($l)  | 
 
| 
149
 | 
 1  | 
 104  | 
 unless $type  | 
 
| 
155
 | 
 81  | 
 111  | 
 unless ($lnum)  | 
 
| 
160
 | 
 1  | 
 52  | 
 unless $area  | 
 
| 
165
 | 
 1  | 
 109  | 
 unless $lnum  | 
 
| 
171
 | 
 52  | 
 881  | 
 if (/^LS age: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 52  | 
 829  | 
 elsif (/^LS Type: ([\w ()]+)$/) { }  | 
 
| 
 | 
 51  | 
 778  | 
 elsif (/^Link State ID: $IP$/) { }  | 
 
| 
 | 
 51  | 
 727  | 
 elsif (/^Advertising Router: $IP$/) { }  | 
 
| 
 | 
 51  | 
 676  | 
 elsif (/^LS Seq Number: (0x$OSPF::LSDB::ospfd::RE{'num'}{'hex'})$/) { }  | 
 
| 
 | 
 48  | 
 628  | 
 elsif (/^Flags: ([-*|\w]*)$/) { }  | 
 
| 
 | 
 48  | 
 580  | 
 elsif (/^Number of Links: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 108  | 
 472  | 
 elsif (/^    Link connected to: ([\w -]+)$/) { }  | 
 
| 
 | 
 0  | 
 472  | 
 elsif (/^    Link ID \(Neighbors Router ID\): $IP$/) { }  | 
 
| 
 | 
 79  | 
 393  | 
 elsif (/^    Link ID \(Designated Router address\): $IP$/) { }  | 
 
| 
 | 
 29  | 
 364  | 
 elsif (/^    Link ID \(Network ID\): $IP$/) { }  | 
 
| 
 | 
 79  | 
 285  | 
 elsif (/^    Link Data \(Router Interface address\): $IP$/) { }  | 
 
| 
 | 
 29  | 
 256  | 
 elsif (/^    Link Data \(Network Mask\): $IP$/) { }  | 
 
| 
 | 
 105  | 
 151  | 
 elsif (/^    Metric: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 1  | 
 150  | 
 elsif (/^ {4}\w/) { }  | 
 
| 
 | 
 1  | 
 149  | 
 elsif (not /^(Options|Checksum|Length):/) { }  | 
 
| 
174
 | 
 1  | 
 51  | 
 if $1 ne "Router"  | 
 
| 
186
 | 
 42  | 
 102  | 
 $flags =~ /\b$_\b/ ? :  | 
 
| 
191
 | 
 0  | 
 108  | 
 if ($1 eq 'Point-to-Point') { }  | 
 
| 
 | 
 79  | 
 29  | 
 elsif ($1 eq 'Transit Network') { }  | 
 
| 
 | 
 28  | 
 1  | 
 elsif ($1 eq 'Stub Network') { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($1 eq 'Virtual Link') { }  | 
 
| 
225
 | 
 1  | 
 5  | 
 if $l  | 
 
| 
226
 | 
 1  | 
 4  | 
 if $lnum  | 
 
| 
227
 | 
 1  | 
 3  | 
 if $r  | 
 
| 
236
 | 
 16  | 
 502  | 
 if (/^ +Net Link States \(Area $IP\)$/) { }  | 
 
| 
 | 
 64  | 
 438  | 
 elsif (/^$/) { }  | 
 
| 
 | 
 41  | 
 397  | 
 elsif (not $n) { }  | 
 
| 
237
 | 
 1  | 
 15  | 
 if $attachments  | 
 
| 
239
 | 
 1  | 
 14  | 
 if $n  | 
 
| 
243
 | 
 1  | 
 63  | 
 if $rnum  | 
 
| 
249
 | 
 1  | 
 40  | 
 unless $area  | 
 
| 
254
 | 
 40  | 
 397  | 
 if (/^LS age: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 40  | 
 357  | 
 elsif (/^LS Type: ([\w ()]+)$/) { }  | 
 
| 
 | 
 39  | 
 318  | 
 elsif (/^Link State ID: $IP \(address of Designated Router\)$/) { }  | 
 
| 
 | 
 39  | 
 279  | 
 elsif (/^Advertising Router: $IP$/) { }  | 
 
| 
 | 
 39  | 
 240  | 
 elsif (/^LS Seq Number: (0x$OSPF::LSDB::ospfd::RE{'num'}{'hex'})$/) { }  | 
 
| 
 | 
 36  | 
 204  | 
 elsif (/^Network Mask: $IP$/) { }  | 
 
| 
 | 
 4  | 
 200  | 
 elsif (/^Number of Routers: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 86  | 
 114  | 
 elsif (/^    Attached Router: $IP$/) { }  | 
 
| 
 | 
 1  | 
 113  | 
 elsif (not /^(Options|Checksum|Length):/) { }  | 
 
| 
257
 | 
 1  | 
 39  | 
 if $1 ne "Network"  | 
 
| 
271
 | 
 36  | 
 50  | 
 unless ($attachments)  | 
 
| 
275
 | 
 6  | 
 80  | 
 if defined $rnum  | 
 
| 
281
 | 
 1  | 
 4  | 
 if $attachments  | 
 
| 
283
 | 
 1  | 
 3  | 
 if $n  | 
 
| 
292
 | 
 12  | 
 1379  | 
 if (/^ +Summary Net Link States \(Area $IP\)$/) { }  | 
 
| 
 | 
 145  | 
 1234  | 
 elsif (/^$/) { }  | 
 
| 
 | 
 126  | 
 1108  | 
 elsif (not $s) { }  | 
 
| 
293
 | 
 1  | 
 11  | 
 if $s  | 
 
| 
300
 | 
 1  | 
 125  | 
 unless $area  | 
 
| 
305
 | 
 125  | 
 1108  | 
 if (/^LS age: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 125  | 
 983  | 
 elsif (/^LS Type: ([\w ()]+)$/) { }  | 
 
| 
 | 
 124  | 
 859  | 
 elsif (/^Link State ID: $IP \(Network ID\)$/) { }  | 
 
| 
 | 
 124  | 
 735  | 
 elsif (/^Advertising Router: $IP$/) { }  | 
 
| 
 | 
 124  | 
 611  | 
 elsif (/^LS Seq Number: (0x$OSPF::LSDB::ospfd::RE{'num'}{'hex'})$/) { }  | 
 
| 
 | 
 121  | 
 490  | 
 elsif (/^Network Mask: $IP$/) { }  | 
 
| 
 | 
 121  | 
 369  | 
 elsif (/^Metric: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 1  | 
 368  | 
 elsif (not /^(Options|Checksum|Length):/) { }  | 
 
| 
308
 | 
 1  | 
 124  | 
 if $1 ne "Summary (Network)"  | 
 
| 
325
 | 
 1  | 
 3  | 
 if $s  | 
 
| 
334
 | 
 12  | 
 719  | 
 if (/^ +Summary Router Link States \(Area $IP\)$/) { }  | 
 
| 
 | 
 85  | 
 634  | 
 elsif (/^$/) { }  | 
 
| 
 | 
 66  | 
 568  | 
 elsif (not $b) { }  | 
 
| 
335
 | 
 1  | 
 11  | 
 if $b  | 
 
| 
342
 | 
 1  | 
 65  | 
 unless $area  | 
 
| 
347
 | 
 65  | 
 568  | 
 if (/^LS age: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 65  | 
 503  | 
 elsif (/^LS Type: ([\w ()]+)$/) { }  | 
 
| 
 | 
 64  | 
 439  | 
 elsif (/^Link State ID: $IP \(ASBR Router ID\)$/) { }  | 
 
| 
 | 
 64  | 
 375  | 
 elsif (/^Advertising Router: $IP$/) { }  | 
 
| 
 | 
 64  | 
 311  | 
 elsif (/^LS Seq Number: (0x$OSPF::LSDB::ospfd::RE{'num'}{'hex'})$/) { }  | 
 
| 
 | 
 61  | 
 250  | 
 elsif (/^Metric: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 1  | 
 249  | 
 elsif (not /^(Options|Checksum|Length|Network Mask):/) { }  | 
 
| 
350
 | 
 1  | 
 64  | 
 if $1 ne "Summary (Router)"  | 
 
| 
365
 | 
 1  | 
 3  | 
 if $b  | 
 
| 
374
 | 
 10  | 
 1971  | 
 if (/^ +Type-5 AS External Link States$/) { }  | 
 
| 
 | 
 154  | 
 1817  | 
 elsif (/^$/) { }  | 
 
| 
 | 
 142  | 
 1675  | 
 elsif (not $e) { }  | 
 
| 
375
 | 
 1  | 
 9  | 
 if $e  | 
 
| 
376
 | 
 1  | 
 8  | 
 if @externals  | 
 
| 
386
 | 
 142  | 
 1675  | 
 if (/^LS age: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 142  | 
 1533  | 
 elsif (/^LS Type: ([\w ()]+)$/) { }  | 
 
| 
 | 
 141  | 
 1392  | 
 elsif (/^Link State ID: $IP \(External Network Number\)$/) { }  | 
 
| 
 | 
 141  | 
 1251  | 
 elsif (/^Advertising Router: $IP$/) { }  | 
 
| 
 | 
 141  | 
 1110  | 
 elsif (/^LS Seq Number: (0x$OSPF::LSDB::ospfd::RE{'num'}{'hex'})$/) { }  | 
 
| 
 | 
 138  | 
 972  | 
 elsif (/^Network Mask: $IP$/) { }  | 
 
| 
 | 
 138  | 
 834  | 
 elsif (/^    Metric type: ([1-2])$/) { }  | 
 
| 
 | 
 138  | 
 696  | 
 elsif (/^    Metric: $OSPF::LSDB::ospfd::RE{'num'}{'int'}{'-keep'}$/) { }  | 
 
| 
 | 
 138  | 
 558  | 
 elsif (/^    Forwarding Address: $IP$/) { }  | 
 
| 
 | 
 1  | 
 557  | 
 elsif (not /^(Options|Checksum|Length|    External Route Tag):/) { }  | 
 
| 
389
 | 
 1  | 
 141  | 
 if $1 ne "AS External"  | 
 
| 
410
 | 
 1  | 
 3  | 
 if $e  |