ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Convert-BER-XS/XS.pm
(Generate patch)

Comparing Convert-BER-XS/XS.pm (file contents):
Revision 1.40 by root, Sun Apr 21 00:42:15 2019 UTC vs.
Revision 1.43 by root, Sun Apr 21 01:58:14 2019 UTC

505 | | SEQUENCE 505 | | SEQUENCE
506 | | | SEQUENCE 506 | | | SEQUENCE
507 | | | | OID oid 1.3.6.1.2.1.1.3.0 507 | | | | OID oid 1.3.6.1.2.1.1.3.0
508 | | | | TIMETICKS int 638085796 508 | | | | TIMETICKS int 638085796
509 509
510=back
511
510=cut 512=cut
511 513
512# reverse enum, very slow and ugly hack 514# reverse enum, very slow and ugly hack
513sub _re { 515sub _re {
514 my ($export_tag, $value) = @_; 516 my ($export_tag, $value) = @_;
554 for @$data; 556 for @$data;
555 } else { 557 } else {
556 if ($data =~ y/\x20-\x7e//c / (length $data || 1) > 0.2 or $data =~ /\x00./s) { 558 if ($data =~ y/\x20-\x7e//c / (length $data || 1) > 0.2 or $data =~ /\x00./s) {
557 # assume binary 559 # assume binary
558 $data = unpack "H*", $data; 560 $data = unpack "H*", $data;
559 substr $data, 40, 1e9, "..." if 40 < length $data;
560 } else { 561 } else {
561 $data =~ s/[^\x20-\x7e]/./g; 562 $data =~ s/[^\x20-\x7e]/./g;
562 $data = "\"$data\"" if $type =~ /string/i; 563 $data = "\"$data\"" if $type =~ /string/i || !length $data;
563 substr $data, 40, 1e9, "..." if 40 < length $data;
564 } 564 }
565
566 substr $data, 40, 1e9, "..." if 40 < length $data;
565 567
566 printf "$indent%-16.16s %-6.6s %s\n", $tag, lc $type, $data; 568 printf "$indent%-16.16s %-6.6s %s\n", $tag, lc $type, $data;
567 } 569 }
568 } 570 }
569} 571}
735 $SNMP_PROFILE->set (ASN_APPLICATION, SNMP_COUNTER64 , BER_TYPE_INT); 737 $SNMP_PROFILE->set (ASN_APPLICATION, SNMP_COUNTER64 , BER_TYPE_INT);
736 738
737=head2 LIMITATIONS/NOTES 739=head2 LIMITATIONS/NOTES
738 740
739This module can only en-/decode 64 bit signed and unsigned integers, and 741This module can only en-/decode 64 bit signed and unsigned integers, and
740only when your perl supports those. 742only when your perl supports those. So no UUID OIDs for now.
741 743
742This module does not generally care about ranges, i.e. it will happily 744This module does not generally care about ranges, i.e. it will happily
743de-/encode 64 bit integers into an C<ASN_INTEGER> value, or a negative 745de-/encode 64 bit integers into an C<ASN_INTEGER> value, or a negative
744number into an C<SNMP_COUNTER64>. 746number into an C<SNMP_COUNTER64>.
745 747

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines