summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2009-03-01 14:26:02 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2009-03-01 14:26:02 +0000
commit0746ac5aa96958870d2dbf8cb13f603fd1d8600a (patch)
tree4b7d56fb9645bc6a2f779ea8d54b122bd10aa247
parent3b56e264fa95afedbba57a130eb0401cd167f23a (diff)
dahdi-perl: more defensive coding and some docs
git-svn-id: http://svn.asterisk.org/svn/dahdi/tools/trunk@6056 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rwxr-xr-xxpp/dahdi_drivers14
-rw-r--r--xpp/perl_modules/Dahdi/Config/Gen.pm3
-rw-r--r--xpp/perl_modules/Dahdi/Config/Gen/Users.pm3
-rw-r--r--xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm13
4 files changed, 30 insertions, 3 deletions
diff --git a/xpp/dahdi_drivers b/xpp/dahdi_drivers
index add8374..857324e 100755
--- a/xpp/dahdi_drivers
+++ b/xpp/dahdi_drivers
@@ -7,3 +7,17 @@ use Dahdi::Hardware;
my $hardware = Dahdi::Hardware->scan;
print join("\n", $hardware->drivers),"\n";
+__END__
+
+=head1 NAME
+
+dahdi_drivers - Show drivers required for installed dahdi devices.
+
+=head1 SYNOPSIS
+
+dahdi_drivers
+
+=head1 DESCRIPTION
+
+This script shows by default the list of drivers required for currently
+installed dahdi devices.
diff --git a/xpp/perl_modules/Dahdi/Config/Gen.pm b/xpp/perl_modules/Dahdi/Config/Gen.pm
index 01d602d..556e193 100644
--- a/xpp/perl_modules/Dahdi/Config/Gen.pm
+++ b/xpp/perl_modules/Dahdi/Config/Gen.pm
@@ -7,7 +7,8 @@ require Exporter;
use strict;
sub is_true($) {
- my $val = shift || die;
+ my $val = shift;
+ return undef unless defined $val;
return $val =~ /^(1|y|yes)$/i;
}
diff --git a/xpp/perl_modules/Dahdi/Config/Gen/Users.pm b/xpp/perl_modules/Dahdi/Config/Gen/Users.pm
index 7d29a80..36c2e65 100644
--- a/xpp/perl_modules/Dahdi/Config/Gen/Users.pm
+++ b/xpp/perl_modules/Dahdi/Config/Gen/Users.pm
@@ -171,6 +171,7 @@ users - Generate configuration for users.conf.
=head1 DESCRIPTION
-Generate the F</etc/asterisk/users.conf> which is used by asterisk(1) and AsteriskGUI.
+Generate the F</etc/asterisk/users.conf> which is used by asterisk(1)
+and AsteriskGUI.
Its location may be overriden via the environment variable F<USERS_FILE>.
diff --git a/xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm b/xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm
index 2a43e8f..9b1ab6e 100644
--- a/xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm
+++ b/xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm
@@ -14,7 +14,14 @@ sub new($$) {
my $cfg_file = shift || die;
my $self = { GENCONF_FILE => $cfg_file };
bless $self, $pack;
- open(F, $cfg_file) || return $self; # Empty configuration
+ if(!open(F, $cfg_file)) {
+ if(defined($!{ENOENT})) {
+ #print STDERR "No $cfg_file. Assume empty config\n";
+ return $self; # Empty configuration
+ }
+ die "$pack: Failed to open '$cfg_file': $!\n";
+ }
+ #print STDERR "$pack: $cfg_file\n";
my $array_key;
while(<F>) {
my ($key, $val);
@@ -43,11 +50,15 @@ sub new($$) {
sub dump($) {
my $self = shift || die;
+ print STDERR "Genconf dump:\n";
foreach my $k (sort keys %$self) {
my $val = $self->{$k};
my $ref = ref $val;
+ #print STDERR "DEBUG: '$k', '$ref', '$val'\n";
if($ref eq '') {
printf STDERR "%-20s %s\n", $k, $val;
+ } elsif($ref eq 'SCALAR') {
+ printf STDERR "%-20s %s\n", $k, ${$val};
} elsif($ref eq 'ARRAY') {
printf STDERR "%s\n", $k;
foreach my $v (@{$val}) {