From 21630ca358e995111f707f4d29094aeffa27ce48 Mon Sep 17 00:00:00 2001 From: Michael Rasmussen Date: Fri, 25 Jul 2014 20:47:01 +0200 Subject: [PATCH] Some minor fixes --- DHCPServer.pm | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/DHCPServer.pm b/DHCPServer.pm index 5569e96..10d72cb 100644 --- a/DHCPServer.pm +++ b/DHCPServer.pm @@ -914,20 +914,21 @@ my $request_ip4 = sub { }; my $release_ip4 = sub { - my ($self, $dhcpreq) = @_; + my ($self, $req) = @_; my ($ip, $mac); - $self->$logger($dhcpreq->toString()); - $ip = $dhcpreq->ciaddr(); - $mac = $self->$get_mac_ip4($dhcpreq); + $self->$logger($req->toString()); + $ip = $req->ciaddr(); + $mac = $self->$get_mac_ip4($req); $self->$logger("Release request for IP: $ip MAC: $mac", INFO); if ($self->{_leases}->{$ip}) { my $lease = $self->{_leases}->{$ip}; if ($lease->{'hardware ethernet'} eq $mac) { + $self->$logger("Set binding state free IP: $ip MAC: $mac", INFO); $lease->{'binding state'} = 'free'; + $self->$write_lease_file(); } - $self->$write_lease_file(); } $self->$logger("Transaction:\n".Dumper($self->{_transaction}), INFO); }; @@ -940,7 +941,7 @@ my $excuse_me_ip6 = sub { my ($self, $addr, $req) = @_; $self->$logger("IPv6 request from [$addr]: $req", INFO); - $self->{_sock_out_ip6} = IO::Socket::IP->new( + my $sock = IO::Socket::IP->new( Domain => PF_INET6, V6Only => 1, Broadcast => 1, @@ -953,7 +954,8 @@ my $excuse_me_ip6 = sub { die "[excuse_me_ip6] Socket creation error: $err\n"; }; $self->$logger("$addr: Not implemented here", INFO); - $self->{_sock_out_ip6}->send("Not implemented here") || die "Error sending excuse: $!\n"; + $sock->send("Not implemented here") || die "Error sending excuse: $!\n"; + $sock->close; }; ######################################################################### @@ -1087,7 +1089,7 @@ sub run { foreach $socket (@ready) { if ($socket == $self->{_sock_in_ip4}) { # receive ipv4 packet - $fromaddr = $self->{_sock_in_ip4}->recv($buf, 4096) + $fromaddr = $socket->recv($buf, 4096) || $self->$logger("recv: $!", ERROR); next if ($!); # continue loop if an error occured @@ -1118,9 +1120,9 @@ sub run { } } else { # Receive ipv6 packet - my $myaddr = $self->{_sock_in_ip6}->sockhost; + my $myaddr = $socket->sockhost; - $fromaddr = $self->{_sock_in_ip6}->recv($buf, 4096) + $fromaddr = $socket->recv($buf, 4096) || $self->$logger("recv: $!", ERROR); next if ($!); # continue loop if an error occured $self->$logger("recv: $buf", INFO); -- 2.39.2