modem-lib.pl: Check if character device exists before trying to connect to it.
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 12 Jun 2014 14:44:07 +0000 (16:44 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 12 Jun 2014 14:44:07 +0000 (16:44 +0200)
config/cfgroot/modem-lib.pl

index 51b6d68..5d43cc1 100644 (file)
@@ -33,7 +33,10 @@ sub new() {
        bless $self, $class;
 
        # Initialize the connetion to the modem.
-       $self->_initialize($port, $baud);
+       my $ret = $self->_initialize($port, $baud);
+       if ($ret) {
+               return undef;
+       }
 
        if ($self->_is_working()) {
                return $self;
@@ -54,9 +57,16 @@ sub DESTROY() {
 sub _initialize() {
        my ($self, $port, $baud) = @_;
 
+       # Check if the character device actually exists.
+       if (! -c $port) {
+               return 1;
+       }
+
        # Establish connection to the modem.
        $self->{modem} = new Device::Modem(port => $port);
        $self->{modem}->connect(baudrate => $baud);
+
+       return 0;
 }
 
 sub _is_working() {