From c6b414c815423a865421fc04ae8ae35e0d0986e5 Mon Sep 17 00:00:00 2001
From: david-sarah <david-sarah@jacaranda.org>
Date: Sun, 23 May 2010 15:15:35 -0700
Subject: [PATCH] SFTP: log tracebacks for RAISEd exceptions.

---
 src/allmydata/frontends/sftpd.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/allmydata/frontends/sftpd.py b/src/allmydata/frontends/sftpd.py
index 4a738d4d..d1265de6 100644
--- a/src/allmydata/frontends/sftpd.py
+++ b/src/allmydata/frontends/sftpd.py
@@ -83,8 +83,11 @@ def _convert_error(res, request):
         return res
 
     err = res
-    logmsg("RAISE %r %r" % (request, err,), level=OPERATIONAL)
-    if noisy and not use_foolscap_logging: traceback.print_exc(err)
+    logmsg("RAISE %r %r" % (request, err.value), level=OPERATIONAL)
+    try:
+        if noisy: logmsg(traceback.format_exc(err.value), level=NOISY)
+    except:
+        pass
 
     # The message argument to SFTPError must not reveal information that
     # might compromise anonymity.
@@ -1319,7 +1322,7 @@ class SFTPUserHandler(ConchUser, PrefixingLogMixin):
                     if noisy: self.log("_nosuch(%r)" % (err,), level=NOISY)
                     err.trap(NoSuchChildError)
                     direntry = self._direntry_for(parent, childname)
-                    if noisy: self.log("checking open files:\nself._open_files = %r\nall_open_files = %r, direntry=%r" %
+                    if noisy: self.log("checking open files:\nself._open_files = %r\nall_open_files = %r\ndirentry=%r" %
                                        (self._open_files, all_open_files, direntry), level=NOISY)
                     if direntry in all_open_files:
                         (files, opentime) = all_open_files[direntry]
-- 
2.45.2