[tor-commits] [stem/master] Making the resolver argument of get_connections() optional
atagar at torproject.org
atagar at torproject.org
Mon Feb 1 04:21:04 UTC 2016
commit c4cea26f966d68208ea0f2b99b1e6ef0a5b12f2f
Author: Damian Johnson <atagar at torproject.org>
Date: Sat Jan 30 14:43:35 2016 -0800
Making the resolver argument of get_connections() optional
Callers of this function just about always call us with...
get_connections(system_resolvers()[0])
No need to mandate this argument. We can make a smart guess at a connection
resolver if they don't want to specify one in particular.
---
stem/util/connection.py | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/stem/util/connection.py b/stem/util/connection.py
index 342afde..4c64cc3 100644
--- a/stem/util/connection.py
+++ b/stem/util/connection.py
@@ -148,7 +148,7 @@ class Connection(collections.namedtuple('Connection', ['local_address', 'local_p
"""
-def get_connections(resolver, process_pid = None, process_name = None):
+def get_connections(resolver = None, process_pid = None, process_name = None):
"""
Retrieves a list of the current connections for a given process. This
provides a list of :class:`~stem.util.connection.Connection`. Note that
@@ -157,9 +157,14 @@ def get_connections(resolver, process_pid = None, process_name = None):
.. versionadded:: 1.1.0
.. versionchanged:: 1.5.0
+ Made our resolver argument optional.
+
+ .. versionchanged:: 1.5.0
IPv6 support when resolving via proc, netstat, lsof, or ss.
- :param Resolver resolver: method of connection resolution to use
+ :param Resolver resolver: method of connection resolution to use, if not
+ provided then one is picked from among those that should likely be
+ available for the system
:param int process_pid: pid of the process to retrieve
:param str process_name: name of the process to retrieve
@@ -173,6 +178,14 @@ def get_connections(resolver, process_pid = None, process_name = None):
command being unavailable or permissions.
"""
+ if not resolver:
+ available_resolvers = system_resolvers()
+
+ if available_resolvers:
+ resolver = available_resolvers[0]
+ else:
+ raise IOError('Unable to determine a connection resolver')
+
if not process_pid and not process_name:
raise ValueError('You must provide a pid or process name to provide connections for')
@@ -286,6 +299,7 @@ def system_resolvers(system = None):
:returns: **list** of :data:`~stem.util.connection.Resolver` instances available on this platform
"""
+
if system is None:
if stem.util.system.is_gentoo():
system = 'Gentoo'
More information about the tor-commits
mailing list