diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 9e8bc5d..7d07a32 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,7 +5,7 @@ # | __/| | | (_) | || (_) | (_| (_) | | # # |_| |_| \___/ \__\___/ \___\___/|_| # # # -# == A Simple ASCII Header Generator for Network Protocols == # +# == ASCII and Unicode Header Generator for Network Protocols == # # # ################################################################################ # # @@ -17,3 +17,6 @@ - 2015-08-16: Added a number of Industrial Control Protocols. This patch was submitted by Jean-Christophe (https://github.com/phocean) + +- 2023-02-21: Added --unicode, -u for generating unicode box characters instead of ASCII + submitted by Tom pusateri diff --git a/README.txt b/README.txt index 93cfad1..d909959 100644 --- a/README.txt +++ b/README.txt @@ -5,7 +5,7 @@ # | __/| | | (_) | || (_) | (_| (_) | | # # |_| |_| \___/ \__\___/ \___\___/|_| # # # -# == A Simple ASCII Header Generator for Network Protocols == # +# == ASCII and Unicode Header Generator for Network Protocols == # # # ################################################################################ # # diff --git a/constants.py b/constants.py index a6a22e2..157b2ed 100644 --- a/constants.py +++ b/constants.py @@ -5,7 +5,7 @@ # | __/| | | (_) | || (_) | (_| (_) | | # # |_| |_| \___/ \__\___/ \___\___/|_| # # # -# == A Simple ASCII Header Generator for Network Protocols == # +# == ASCII and Unicode Header Generator for Network Protocols == # # # ################################################################################ # # diff --git a/protocol b/protocolplus similarity index 99% rename from protocol rename to protocolplus index 55e03cb..1596701 100755 --- a/protocol +++ b/protocolplus @@ -6,7 +6,7 @@ # | __/| | | (_) | || (_) | (_| (_) | | # # |_| |_| \___/ \__\___/ \___\___/|_| # # # -# == A Simple ASCII Header Generator for Network Protocols == # +# == ASCII and Unicode Header Generator for Network Protocols == # # # ################################################################################ # # diff --git a/setup.py b/setup.py index 714f03b..89e4eda 100755 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ # | __/| | | (_) | || (_) | (_| (_) | | # # |_| |_| \___/ \__\___/ \___\___/|_| # # # -# == A Simple ASCII Header Generator for Network Protocols == # +# == ASCII and Unicode Header Generator for Network Protocols == # # # ################################################################################ # # @@ -58,8 +58,8 @@ from distutils.core import setup setup( - name='protocol', - version='0.1', - scripts=['protocol'], + name='protocolplus', + version='0.2', + scripts=['protocolplus'], py_modules=[] ) diff --git a/specs.py b/specs.py index 07c5af8..3b2e95f 100644 --- a/specs.py +++ b/specs.py @@ -5,7 +5,7 @@ # | __/| | | (_) | || (_) | (_| (_) | | # # |_| |_| \___/ \__\___/ \___\___/|_| # # # -# == A Simple ASCII Header Generator for Network Protocols == # +# == ASCII and Unicode Header Generator for Network Protocols == # # # ################################################################################ # # diff --git a/test.py b/test.py index 105edc2..3e79bfc 100755 --- a/test.py +++ b/test.py @@ -6,7 +6,7 @@ # | __/| | | (_) | || (_) | (_| (_) | | # # |_| |_| \___/ \__\___/ \___\___/|_| # # # -# == A Simple ASCII Header Generator for Network Protocols == # +# == ASCII and Unicode Header Generator for Network Protocols == # # # ################################################################################ # # @@ -48,7 +48,7 @@ # # # Description: # # # -# Unit tests for the "protocol" tool # +# Unit tests for the "protocolplus" tool # # # ################################################################################ @@ -56,15 +56,15 @@ import imp import unittest -# IMPORT PROTOCOL (need to use the imp library since "protocol" does not +# IMPORT PROTOCOL (need to use the imp library since "protocolplus" does not # have a .py extension -protocol = imp.load_source("protocol", "protocol") +protocol = imp.load_source("protocolplus", "protocolplus") # List of test cases. It contains tuples of the form (protocol_spec, expected_output) validcases=[ - -("Field_32:32", -""" 0 1 2 3 + +("Field_32:32", +""" 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | @@ -74,7 +74,7 @@ """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_8 | Field_8 | Field_8 | Field_8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), - + ("Field_32:32?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | @@ -84,41 +84,41 @@ """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_16 | Field_16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), - + ("Field_16:16,Field_8:8,Field_8:8?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_16 | Field_8 | Field_8 | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_32:32,Field_32:32?numbers=0", +("Field_32:32,Field_32:32?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), - -("Field_32:32,Field_16:16?numbers=0", + +("Field_32:32,Field_16:16?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_32:32,Field_24:24?numbers=0", +("Field_32:32,Field_24:24?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_24 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_32:32,Field_31:31?numbers=0", +("Field_32:32,Field_31:31?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_31 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_32:32,Field_33:33?numbers=0", +("Field_32:32,Field_33:33?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -127,7 +127,7 @@ | | +-+"""), -("Field_32:32,Field_39:39?numbers=0", +("Field_32:32,Field_39:39?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -136,7 +136,7 @@ | | +-+-+-+-+-+-+-+"""), -("Field_32:32,Field_56:56?numbers=0", +("Field_32:32,Field_56:56?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -145,7 +145,7 @@ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_32:32,Field_16:16,Field_33:33?numbers=0", +("Field_32:32,Field_16:16,Field_33:33?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -154,7 +154,7 @@ | Field_33 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_32:32,Field_16:16,Field_56:56?numbers=0", +("Field_32:32,Field_16:16,Field_56:56?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -165,7 +165,7 @@ | | +-+-+-+-+-+-+-+-+"""), -("Field_32:32,Field_16:16,Field_32:32?numbers=0", +("Field_32:32,Field_16:16,Field_32:32?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -174,7 +174,7 @@ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_8:8,Field_8:8,Field_8:8,Field_8:8,Field_12:12,Field_17:17,Field_22:22,Field_8:8,Field_5:5?numbers=0", +("Field_8:8,Field_8:8,Field_8:8,Field_8:8,Field_12:12,Field_17:17,Field_22:22,Field_8:8,Field_5:5?numbers=0", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_8 | Field_8 | Field_8 | Field_8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -183,14 +183,14 @@ | Field_22 | Field_8 | Field_5 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_16:16,Field_8:8,Field_8:8?numbers=0,bits=16", +("Field_16:16,Field_8:8,Field_8:8?numbers=0,bits=16", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_8 | Field_8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_16:16,Field_32:32?numbers=0,bits=16", +("Field_16:16,Field_32:32?numbers=0,bits=16", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -199,7 +199,7 @@ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_64:64?numbers=0,bits=16", +("Field_64:64?numbers=0,bits=16", """+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + @@ -210,8 +210,8 @@ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_64:64?bits=64", -""" 0 1 2 3 4 5 6 +("Field_64:64?bits=64", +""" 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Field_64 | @@ -220,7 +220,7 @@ ("Source Port:16,Destination Port:16,Sequence Number:32,\ Acknowledgment Number:32,Offset:4,Res.:4,Flags:8,Window:16,Checksum:16,\ Urgent Pointer:16,Options:24,Padding:8", -""" 0 1 2 3 +""" 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | @@ -236,7 +236,7 @@ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"""), -("Field_32:32?numbers=0,startchar=1,endchar=2,oddchar=3,evenchar=4,sepchar=5", +("Field_32:32?numbers=0,startchar=1,endchar=2,oddchar=3,evenchar=4,sepchar=5", """14343434343434343434343434343434343434343434343434343434343434342 5 Field_32 5 14343434343434343434343434343434343434343434343434343434343434342"""), @@ -284,7 +284,7 @@ class ProtocolTests(unittest.TestCase): def test_regular_specs(self): """ - This function tests correctness for a number of known specs. It + This function tests correctness for a number of known specs. It instances a Protocol() passing a particular expect and then it compares the str() of the instance with the expected ASCII protocol header. """ @@ -317,5 +317,5 @@ def test_invalid_specs(self): print("#########################################################################") # Run the actual tests unittest.main() - +