pcap: pass complete filter string to PcapRecorder
Composing the filter in gen_filter() is more complex than we need. We pass the address and potentially further filter elements separately, and then gen_filter() has to guess how to combine these. Instead, have just a filter string to use right from the start, so that the caller has full control (and full responsibility). Remove the addr argument, which was only used for filtering. This is my conclusion of looking at the patches with change Ids I62a6ae7bd3a84baceb684c26727d2269c86ed023 (PS 1) and Icbb0f8d2058fa7ebb7f0f731645f9266cacdb120 I62... PS 2 will add the SSH filtering. The name 'filter' is a python built-in, which is why I chose the argument name 'filters' instead. It works with 'filter' as well, but let's try to avoid naming conflicts like that. Change-Id: Iff7ddf51d3bf0189ce07b488a3dcdcfce6907aba
This commit is contained in:
parent
bcd4332b6b
commit
95fd67374c
|
@ -52,8 +52,8 @@ class OsmoNitb(log.Origin):
|
|||
raise RuntimeError('No lib/ in %r' % inst)
|
||||
|
||||
iface = util.ip_to_iface(self.addr())
|
||||
pcap_recorder.PcapRecorder(self.suite_run, self.run_dir.new_dir('pcap'),
|
||||
iface, self.addr())
|
||||
pcap_recorder.PcapRecorder(self.suite_run, self.run_dir.new_dir('pcap'), iface,
|
||||
'host %s' % self.addr())
|
||||
|
||||
env = { 'LD_LIBRARY_PATH': util.prepend_library_path(lib) }
|
||||
|
||||
|
|
|
@ -26,13 +26,13 @@ from . import log, util, config, template, process, osmo_ctrl
|
|||
|
||||
class PcapRecorder(log.Origin):
|
||||
|
||||
def __init__(self, suite_run, run_dir, iface=None, addr=None):
|
||||
def __init__(self, suite_run, run_dir, iface=None, filters=''):
|
||||
self.suite_run = suite_run
|
||||
self.run_dir = run_dir
|
||||
self.iface = iface
|
||||
if not self.iface:
|
||||
self.iface = "any"
|
||||
self.addr = addr
|
||||
self.filters = filters
|
||||
self.set_log_category(log.C_RUN)
|
||||
self.set_name('pcap-recorder_%s' % self.iface)
|
||||
self.start()
|
||||
|
@ -44,17 +44,10 @@ class PcapRecorder(log.Origin):
|
|||
('tcpdump', '-n',
|
||||
'-i', self.iface,
|
||||
'-w', dumpfile,
|
||||
self.gen_filter())
|
||||
)
|
||||
self.filters))
|
||||
self.suite_run.remember_to_stop(self.process)
|
||||
self.process.launch()
|
||||
|
||||
def gen_filter(self):
|
||||
filter = ""
|
||||
if self.addr:
|
||||
filter += 'host ' + self.addr
|
||||
return filter
|
||||
|
||||
def running(self):
|
||||
return not self.process.terminated()
|
||||
|
||||
|
|
Loading…
Reference in New Issue