[tor-commits] [stem/master] Python's pwd module is unavailable on Windows

atagar at torproject.org atagar at torproject.org
Fri Aug 5 16:22:51 UTC 2016


commit 646bd2b9856e9b7a43e863ca5880ddd9ba846df3
Author: Damian Johnson <atagar at torproject.org>
Date:   Fri Aug 5 09:27:03 2016 -0700

    Python's pwd module is unavailable on Windows
    
    Our process module isn't intended to work on Windows, but turns out one of our
    imports raises an unexpected ImportError there breaking others...
    
      https://trac.torproject.org/projects/tor/ticket/19823
---
 stem/util/proc.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/stem/util/proc.py b/stem/util/proc.py
index 2897242..0a310bf 100644
--- a/stem/util/proc.py
+++ b/stem/util/proc.py
@@ -50,7 +50,6 @@ future, use them at your own risk.**
 import base64
 import os
 import platform
-import pwd
 import socket
 import sys
 import time
@@ -62,6 +61,13 @@ import stem.util.str_tools
 from stem.util import log
 
 try:
+  # unavailable on windows (#19823)
+  import pwd
+  IS_PWD_AVAILABLE = True
+except ImportError:
+  IS_PWD_AVAILABLE = False
+
+try:
   # added in python 3.2
   from functools import lru_cache
 except ImportError:
@@ -359,6 +365,9 @@ def connections(pid = None, user = None):
     parameter = 'all connections'
 
   try:
+    if not IS_PWD_AVAILABLE:
+      raise IOError("This requires python's pwd module, which is unavailable on Windows.")
+
     inodes = _inodes_for_sockets(pid) if pid else []
     process_uid = pwd.getpwnam(user).pw_uid if user else None
 



More information about the tor-commits mailing list