Fix share local address check
We're resolving share addresses to determine if those point to a local address. The issue is that we fetch the local ips resolving the local hostname, which won't include '127.0.0.1' or '::1'. For this reason, a share such as '\\localhost\share' won't be reported as being local. This change handles this case. Closes-Bug: #1680029 Change-Id: I36df4aa79bb7af548b6e39f9f9e7c4f979ae0a77
This commit is contained in:
parent
033bba1c52
commit
54d97f2477
|
@ -187,6 +187,9 @@ class SMBUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
'expected_local': False},
|
||||
{'local_ips': [mock.sentinel.ip0, mock.sentinel.ip1],
|
||||
'dest_ips': [mock.sentinel.ip1, mock.sentinel.ip3],
|
||||
'expected_local': True},
|
||||
{'local_ips': [],
|
||||
'dest_ips': ['127.0.0.1'],
|
||||
'expected_local': True})
|
||||
@ddt.unpack
|
||||
@mock.patch('os_win._utils.get_ips')
|
||||
|
@ -195,7 +198,10 @@ class SMBUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
local_ips, dest_ips, expected_local):
|
||||
fake_share_server = 'fake_share_server'
|
||||
fake_share = '\\\\%s\\fake_share' % fake_share_server
|
||||
mock_get_ips.side_effect = (local_ips, dest_ips)
|
||||
|
||||
mock_get_ips.side_effect = (local_ips,
|
||||
['127.0.0.1', '::1'],
|
||||
dest_ips)
|
||||
self._smbutils._loopback_share_map = {}
|
||||
|
||||
is_local = self._smbutils.is_local_share(fake_share)
|
||||
|
@ -209,4 +215,5 @@ class SMBUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
mock_gethostname.assert_called_once_with()
|
||||
mock_get_ips.assert_has_calls(
|
||||
[mock.call(mock_gethostname.return_value),
|
||||
mock.call('localhost'),
|
||||
mock.call(fake_share_server)])
|
||||
|
|
|
@ -136,6 +136,8 @@ class SMBUtils(baseutils.BaseUtils):
|
|||
addr = share_path.lstrip('\\').split('\\', 1)[0]
|
||||
|
||||
local_ips = _utils.get_ips(socket.gethostname())
|
||||
local_ips += _utils.get_ips('localhost')
|
||||
|
||||
dest_ips = _utils.get_ips(addr)
|
||||
is_local = bool(set(local_ips).intersection(set(dest_ips)))
|
||||
|
||||
|
|
Loading…
Reference in New Issue