]> git.sesse.net Git - nms/blob - clients/dhcptail.pl
dhcptail changes for TG07.
[nms] / clients / dhcptail.pl
1 #! /usr/bin/perl
2 use DBI;
3 use POSIX;
4 use lib '../include';
5 use nms;
6 use strict;
7 use warnings;
8
9 # WARNING: CHANGE THIS! :-P
10 my $year = 2007;
11
12 my %months = (
13         Jan => 1,
14         Feb => 2,
15         Mar => 3,
16         Apr => 4,
17         May => 5,
18         Jun => 6,
19         Jul => 7,
20         Aug => 8,
21         Sep => 9,
22         Oct => 10,
23         Nov => 11,
24         Dec => 12
25 );
26
27 my ($dbh, $q);
28 while (<>) {
29         /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+:\d+:\d+).*DHCPACK on (\d+\.\d+\.\d+\.\d+)/ or next;
30         my $date = $year . "-" . $months{$1} . "-" . $2 . " " . $3;
31
32         if (!defined($dbh) || !$dbh->ping) {
33                 $dbh = nms::db_connect();
34                 $q = $dbh->prepare("UPDATE dhcp SET last_ack=? WHERE ?::inet << network AND ( last_ack < ? OR last_ack IS NULL )")
35                         or die "Couldn't prepare query";
36         }
37
38         print STDERR "$date $4\n";
39         $q->execute($date, $4, $date)
40                 or die "Couldn't push $1 into database";
41 }