From 69c2ce2525f1d5d8ad53d438a7a5bd433e496cce Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 15 Aug 2012 15:25:51 +0200 Subject: [PATCH] read_params_csv: Make sure we don't end up in endless loop as a side effect, the first line is now specified with '-j 0' and not '-j 1' --- pySim-prog.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/pySim-prog.py b/pySim-prog.py index ce67dbd3..d673dba8 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -394,7 +394,7 @@ def write_params_csv(opts, params): cw.writerow([params[x] for x in row]) f.close() -def read_params_csv(opts, imsi): +def _read_params_csv(opts, imsi): import csv row = ['name', 'iccid', 'mcc', 'mnc', 'imsi', 'smsp', 'ki', 'opc'] f = open(opts.read_csv, 'r') @@ -402,19 +402,25 @@ def read_params_csv(opts, imsi): i = 0 for row in cr: if opts.num is not None: - i += 1 if opts.num == i: - break + f.close() + return row; + i += 1 if row['imsi'] == imsi: - break - - if row: - row['mcc'] = int(row['mcc']) - row['mnc'] = int(row['mnc']) + f.close() + return row; f.close() + return None + +def read_params_csv(opts, imsi): + row = _read_params_csv(opts, imsi) + if row is not None: + row['mcc'] = int(row['mcc']) + row['mnc'] = int(row['mnc']) return row + def write_params_hlr(opts, params): # SQLite3 OpenBSC HLR if opts.write_hlr: