Skip to content

Commit eff6c35

Browse files
committed
fix: resolve bug for /32 and /31 addresses
1 parent fe56382 commit eff6c35

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

generate.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import logging
77
import os
88
import platform
9-
import re
109
import sqlite3
1110
import sys
1211
import yaml
@@ -17,7 +16,6 @@
1716
from lib import networks
1817
from lib import packages
1918
from lib import processor
20-
from lib import statistics
2119
from lib import tables
2220

2321
def generate(database, manifest_file, seatmap_file,
@@ -27,7 +25,7 @@ def generate(database, manifest_file, seatmap_file,
2725
# Create fresh database file
2826
logging.debug('Checking if database file %s exists', database)
2927
has_previous_db = False
30-
previous_statistics = None
28+
before = {}
3129
if os.path.isfile(database):
3230
logging.debug(
3331
'Found existing database file %s, gathering stats before deleting',
@@ -87,6 +85,7 @@ def generate(database, manifest_file, seatmap_file,
8785

8886
# Parse ipplan
8987
logging.debug('Parsing lines in %s', ipplan)
88+
lines = []
9089
try:
9190
with open(ipplan, 'r') as f:
9291
lines = f.readlines()
@@ -149,6 +148,7 @@ def generate(database, manifest_file, seatmap_file,
149148
sys.exit(9)
150149
logging.debug('Found seatmap file \'%s\'', seatmap_file)
151150
logging.debug('Parsing seatmap file as JSON')
151+
seatmap = {}
152152
try:
153153
with open(seatmap_file, 'r') as f:
154154
seatmap = json.loads(f.read())

lib/processor.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import ipcalc
2+
# import pdb
23
import logging
34
import re
45
import socket
@@ -110,16 +111,26 @@ def host(l, c, network_id):
110111
return
111112

112113

113-
def network(l, c):
114+
def network(l, c, network_id=None):
114115
node_id = node(c)
115116
short_name = l[0]
116117
vlan = int(l[3]) if l[3] != '-' else None
117118
terminator = l[2]
118119

119120
# IPv4
121+
'''
122+
edge cases: /31 and /32
123+
net_ipv4 = 85.225.229.1/32
124+
if len(net_ipv4)
125+
if /32 or /31 then
126+
127+
'''
120128
ipv4 = l[1]
121129
net_ipv4 = ipcalc.Network(ipv4)
122-
ipv4_gateway = net_ipv4[1]
130+
if len(net_ipv4) <= 2:
131+
ipv4_gateway = net_ipv4[0]
132+
else:
133+
ipv4_gateway = net_ipv4[1]
123134
ipv4_netmask = str(net_ipv4.netmask())
124135
ipv4_netmask_dec = int(str(ipv4).split("/")[1])
125136

@@ -145,7 +156,7 @@ def network(l, c):
145156

146157
options(c, node_id, l[4])
147158

148-
return node_id
159+
return node_id, network_id
149160

150161

151162
def split_value(string):
@@ -199,9 +210,9 @@ def ip2long(ip, version):
199210
return int(hexlify(socket.inet_pton(socket.AF_INET6, ip)), 16)
200211

201212

202-
def parser_func(l):
213+
def parser_func(line):
203214
for exp in SYNTAX:
204-
if re.match(exp, l[0]):
215+
if re.match(exp, line[0]):
205216
return SYNTAX[exp]
206217
return None
207218

0 commit comments

Comments
 (0)