| Index: server/site_linux_router.py
|
| diff --git a/server/site_linux_router.py b/server/site_linux_router.py
|
| index 70707fc2e3fd86684d16d83bfe18b2f38c48fc58..96a0ef46f22b2bb1b1104be8bd4a7b2c5d23c1a3 100644
|
| --- a/server/site_linux_router.py
|
| +++ b/server/site_linux_router.py
|
| @@ -4,7 +4,6 @@
|
|
|
| import logging, re, time
|
| from autotest_lib.client.common_lib import error
|
| -from autotest_lib.server import site_eap_tls
|
|
|
| def isLinuxRouter(router):
|
| router_uname = router.run('uname').stdout
|
| @@ -146,6 +145,27 @@ class LinuxRouter(object):
|
| self.deconfig(params)
|
|
|
|
|
| + def insert_file(self, host, filename, contents):
|
| + """
|
| + If config files are too big, the "host.run()" never returns.
|
| + As a workaround, break the file up into lines and append the
|
| + file piece by piece
|
| + """
|
| + host.run('rm -f %s >/dev/null 2>&1' % filename, ignore_status=True)
|
| + content_lines = contents.splitlines()
|
| + while content_lines:
|
| + buflist = []
|
| + buflen = 0
|
| + while content_lines and buflen + len(content_lines[0]) < 200:
|
| + line = content_lines.pop(0)
|
| + buflen += len(line) + 1
|
| + buflist.append(line)
|
| +
|
| + if not buflist:
|
| + raise error.TestFail('Cert profile: line too long: %s' %
|
| + content_lines[0])
|
| + host.run('cat <<EOF >>%s\n%s\nEOF\n' %
|
| + (filename, '\n'.join(buflist)))
|
|
|
| def config(self, params):
|
| """ Configure the AP per test requirements """
|
| @@ -165,7 +185,19 @@ class LinuxRouter(object):
|
| self.hostapd['driver'])
|
|
|
| for k, v in params.iteritems():
|
| - if k == 'ssid':
|
| + # For some parameters, the hostapd.conf value is a filename;
|
| + # here, we create a file to contain the actual value and then
|
| + # put the filename in hostapd.conf.
|
| + if k.endswith('_file') or k in ['ca_cert',
|
| + 'server_cert',
|
| + 'private_key',
|
| + 'radius_server_clients',
|
| + 'wps_pin_requests',
|
| + 'ap_settings']:
|
| + filename = "/tmp/hostap_%s" % k
|
| + self.insert_file(self.router, filename, v)
|
| + conf[k] = filename
|
| + elif k == 'ssid':
|
| conf['ssid'] = v
|
| elif k == 'ssid_suffix':
|
| conf['ssid'] = self.defssid + v
|
| @@ -258,8 +290,8 @@ class LinuxRouter(object):
|
| pass # NB: meaningless for hostapd; ignore
|
| elif k == '-ampdu':
|
| pass # TODO(sleffler) need hostapd support
|
| - elif k == 'eap-tls':
|
| - conf.update(site_eap_tls.router_config(self.router, v))
|
| + elif k == 'eap':
|
| + conf.update(site_eap.router_config(self.router, v))
|
| else:
|
| conf[k] = v
|
|
|
|
|