mirror of
https://github.com/zerotier/edge.git
synced 2026-05-22 16:25:05 -07:00
197 lines
4.0 KiB
Perl
Executable File
197 lines
4.0 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
#
|
|
# Copyright 2006-2014 SPARTA, Inc. All rights reserved. See the COPYING
|
|
# file distributed with this software for details.
|
|
#
|
|
#
|
|
# rolllog
|
|
#
|
|
# This script writes log messages in the rollover manager's log file.
|
|
#
|
|
|
|
use strict;
|
|
|
|
use Getopt::Long qw(:config no_ignore_case_always);
|
|
|
|
use Net::DNS::SEC::Tools::rollmgr;
|
|
|
|
#
|
|
# Version information.
|
|
#
|
|
my $NAME = "rolllog";
|
|
my $VERS = "$NAME version: 2.1.0";
|
|
my $DTVERS = "DNSSEC-Tools Version: 2.2.3";
|
|
|
|
#######################################################################
|
|
|
|
#
|
|
# Data required for command line options.
|
|
#
|
|
my $loglevel; # Logging level.
|
|
|
|
my $OPT_HELP = "help";
|
|
my $OPT_LOGLEVEL = "loglevel";
|
|
my $OPT_VERSION = "Version";
|
|
|
|
my %opts = (); # Filled option array.
|
|
my @opts =
|
|
(
|
|
"loglevel=s", # Logging level.
|
|
"help", # Give a usage message and exit.
|
|
"Version", # Display the version number.
|
|
);
|
|
|
|
#######################################################################
|
|
|
|
my $ret; # Return code from main().
|
|
|
|
$ret = main();
|
|
exit($ret);
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Routine: main()
|
|
#
|
|
# Purpose: Main controller routine.
|
|
#
|
|
sub main
|
|
{
|
|
my $logmsg = ""; # The constructed log message.
|
|
my $ret; # Return code from rollerd.
|
|
my $resp; # Return message from rollerd.
|
|
|
|
#
|
|
# Check our arguments.
|
|
#
|
|
optsandargs();
|
|
usage() if(@ARGV == 0);
|
|
|
|
#
|
|
# Build our log message from the remaining arguments.
|
|
#
|
|
$logmsg = join(" ",@ARGV);
|
|
|
|
#
|
|
# Send the logging command to rollerd.
|
|
#
|
|
if(rollmgr_sendcmd(CHANNEL_WAIT,ROLLCMD_LOGMSG,"($loglevel)$logmsg") == 0)
|
|
{
|
|
print STDERR "rolllog: unable to send command to rollerd\n";
|
|
exit(1);
|
|
}
|
|
|
|
#
|
|
# Give an error message if rollerd didn't like something.
|
|
#
|
|
($ret, $resp) = rollmgr_getresp();
|
|
if($ret != ROLLCMD_RC_OKAY)
|
|
{
|
|
print STDERR "rolllog: rollerd was unable to write message to log file: \"$resp\"\n";
|
|
}
|
|
}
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Routine: optsandargs()
|
|
#
|
|
# Purpose: Check for arguments.
|
|
#
|
|
sub optsandargs
|
|
{
|
|
my $argc = @ARGV; # Number of arguments.
|
|
my $dir; # Execution directory.
|
|
|
|
#
|
|
# Check our options.
|
|
#
|
|
GetOptions(\%opts,@opts) || usage();
|
|
usage() if(defined($opts{$OPT_HELP}));
|
|
version() if(defined($opts{$OPT_VERSION}));
|
|
|
|
$loglevel = $opts{$OPT_LOGLEVEL} || usage();
|
|
|
|
}
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Routine: usage()
|
|
#
|
|
sub usage
|
|
{
|
|
print STDERR "usage: rolllog [-loglevel <level> <log_message> | -help | -Version]\n";
|
|
exit(0);
|
|
}
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Routine: version()
|
|
#
|
|
# Purpose: Print the version number(s) and exit.
|
|
#
|
|
sub version
|
|
{
|
|
print STDERR "$VERS\n";
|
|
print STDERR "$DTVERS\n";
|
|
|
|
exit(0);
|
|
}
|
|
|
|
1;
|
|
|
|
##############################################################################
|
|
#
|
|
|
|
=pod
|
|
|
|
=head1 NAME
|
|
|
|
rolllog - DNSSEC-Tools utility to write messages to the DNSSEC rollover
|
|
log file
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
rolllog -loglevel <level> <log_message>
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
The B<rolllog> program writes log messages to the DNSSEC rollover log file.
|
|
B<rolllog> does not actually write the messages itself; rather, it sends them
|
|
to the B<rollerd> rollover daemon to write the messages. B<rollerd> keeps
|
|
track of a logging level, and only messages of that level or higher are
|
|
written to the log file.
|
|
|
|
=head1 OPTIONS
|
|
|
|
The following options are recognized:
|
|
|
|
=over 4
|
|
|
|
=item B<-loglevel level>
|
|
|
|
Logging level of this message. The valid levels are defined in
|
|
B<rollmgr.pm>(3). This option is required.
|
|
|
|
=item B<-help>
|
|
|
|
Display a usage message.
|
|
|
|
=item B<-Version>
|
|
|
|
Displays the version information for B<rolllog> and the DNSSEC-Tools package.
|
|
|
|
=back
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
Copyright 2006-2014 SPARTA, Inc. All rights reserved.
|
|
See the COPYING file included with the DNSSEC-Tools package for details.
|
|
|
|
=head1 AUTHOR
|
|
|
|
Wayne Morrison, tewok@tislabs.com
|
|
|
|
=head1 SEE ALSO
|
|
|
|
B<rollctl(8)>,
|
|
B<rollerd(8)>
|
|
|
|
B<Net::DNS::SEC::Tools::rollmgr.pm(3)>
|
|
|
|
=cut
|