summaryrefslogtreecommitdiff
path: root/lib/port.py
diff options
context:
space:
mode:
authorJohan Lundberg <lundberg@nordu.net>2015-04-02 10:43:33 +0200
committerJohan Lundberg <lundberg@nordu.net>2015-04-02 10:43:33 +0200
commitbd611ac59f7c4db885a2f8631ef0bcdcd1901ca0 (patch)
treee60f5333a7699cd021b33c7f5292af55b774001b /lib/port.py
Diffstat (limited to 'lib/port.py')
-rwxr-xr-xlib/port.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/lib/port.py b/lib/port.py
new file mode 100755
index 0000000..f28ac52
--- /dev/null
+++ b/lib/port.py
@@ -0,0 +1,55 @@
+#!/usr/bin/python
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+"""Common library for network ports and protocol handling."""
+
+__author__ = 'watson@google.com (Tony Watson)'
+
+
+class Error(Exception):
+ """Base error class."""
+
+
+class BadPortValue(Error):
+ """Invalid port format."""
+
+
+class BadPortRange(Error):
+ """Invalid port range."""
+
+
+def Port(port):
+ """Sanitize a port value.
+
+ Args:
+ port: a port value
+
+ Returns:
+ port: a port value
+
+ Raises:
+ BadPortValue: port is not valid integer or string
+ BadPortRange: port is outside valid range
+ """
+ pval = -1
+ try:
+ pval = int(port)
+ except ValueError:
+ raise BadPortValue('port %s is not valid.' % port)
+ if pval < 0 or pval > 65535:
+ raise BadPortRange('port %s is out of range 0-65535.' % port)
+ return pval