summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/standardskriver18
-rw-r--r--debian/changelog9
-rw-r--r--debian/control1
3 files changed, 23 insertions, 5 deletions
diff --git a/bin/standardskriver b/bin/standardskriver
index e7128f8..db71976 100755
--- a/bin/standardskriver
+++ b/bin/standardskriver
@@ -25,6 +25,7 @@
CFG_FILE = '/etc/standardskriver.cfg'
CFG_FILE_EXAMPLE = '''[settings]
+enable = yes
order = machine groups
delete lpoptions = yes
@@ -33,6 +34,7 @@ delete lpoptions = yes
# hostname.domain = printer
# LTSP client IP = printer
# (globbing works)
+
[machine]
00:01:02:03:04:05 = printer01
172.16.34.64 = printer02
@@ -41,6 +43,7 @@ hostname.domain = printer02
# group name = printer
# (globbing works)
+
[groups]
group1 = printer01
group2 = printer02
@@ -53,6 +56,7 @@ import os
import subprocess
import re
from socket import gethostname, getfqdn
+import netaddr
from optparse import OptionParser
from ConfigParser import RawConfigParser
@@ -99,7 +103,7 @@ try:
ipaddrs.append(os.environ['SSH_CLIENT'].split()[0])
except KeyError:
pass
-p = subprocess.Popen(['/sbin/ifconfig'], stdout=subprocess.PIPE)
+p = subprocess.Popen(['/sbin/ifconfig'], env={'LANG': 'C'}, stdout=subprocess.PIPE)
for line in p.stdout:
m = re_ipaddr.search(line)
if m:
@@ -118,10 +122,15 @@ def get_group_match():
def get_machine_match():
for machine, printer in cfg.items('machine'):
- if any(fnmatchcase(macaddr, machine.replace('-', '').replace(':', '')) for macaddr in macaddrs) or \
- any(fnmatchcase(ipaddr, machine) for ipaddr in ipaddrs) or \
- any(fnmatchcase(hostname, machine) for hostname in hostnames):
+ if any(fnmatchcase(macaddr, machine.replace('-', '').replace(':', '')) for macaddr in macaddrs):
+ return printer
+ elif any(fnmatchcase(hostname, machine) for hostname in hostnames):
return printer
+ else:
+ machines = netaddr.IPSet(machine.split(','))
+ myaddrs = netaddr.IPSet(ipaddrs)
+ if machines & myaddrs:
+ return printer
return None
matches = []
@@ -150,4 +159,3 @@ if options.dryrun:
else:
subprocess.call(args)
-
diff --git a/debian/changelog b/debian/changelog
index 68bee46..c71da3c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+itzks-systems (2013.11.13.2) UNRELEASED; urgency=low
+
+ * Use python-netaddr in standardskriver to make it recognize
+ network addresses, as well.
+ * debian/control:
+ + Add dependency for bin:package itzks-systems-common: python-netaddr.
+
+ -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Wed, 13 Nov 2013 15:39:41 +0100
+
itzks-systems (2013.11.13.1) squeeze-backports; urgency=low
* Add standardskriver script, provided by linuxavdelingen.no.
diff --git a/debian/control b/debian/control
index ada7857..d85a6c1 100644
--- a/debian/control
+++ b/debian/control
@@ -21,6 +21,7 @@ Breaks:
Depends:
${misc:Depends},
python,
+ python-netaddr,
Description: Configuration for ITZkS Systems
Set of configuration parameters and common files
relevant to ITZkS systems.