[pypy-commit] pypy py3k: Translation fixes

amauryfa noreply at buildbot.pypy.org
Sun Feb 8 17:38:20 CET 2015


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r75761:e11bc12d0270
Date: 2015-02-08 17:14 +0100
http://bitbucket.org/pypy/pypy/changeset/e11bc12d0270/

Log:	Translation fixes

diff --git a/pypy/module/_posixsubprocess/interp_subprocess.py b/pypy/module/_posixsubprocess/interp_subprocess.py
--- a/pypy/module/_posixsubprocess/interp_subprocess.py
+++ b/pypy/module/_posixsubprocess/interp_subprocess.py
@@ -7,7 +7,7 @@
 from rpython.translator.tool.cbuild import ExternalCompilationInfo
 
 from pypy.interpreter.error import (
-    OperationError, exception_from_errno, oefmt, wrap_oserror)
+    OperationError, exception_from_saved_errno, oefmt, wrap_oserror)
 from pypy.interpreter.gateway import unwrap_spec
 from pypy.module.posix.interp_posix import run_fork_hooks
 
@@ -50,7 +50,8 @@
     'pypy_subprocess_cloexec_pipe',
     [rffi.CArrayPtr(rffi.INT)], rffi.INT,
     compilation_info=eci,
-    releasegil=True)
+    releasegil=True,
+    save_err=rffi.RFFI_SAVE_ERRNO)
 c_init = rffi.llexternal(
     'pypy_subprocess_init',
     [], lltype.Void,
@@ -225,7 +226,7 @@
     with lltype.scoped_alloc(rffi.CArrayPtr(rffi.INT).TO, 2) as fds:
         res = c_cloexec_pipe(fds)
         if res != 0:
-            raise exception_from_errno(space, space.w_OSError)
+            raise exception_from_saved_errno(space, space.w_OSError)
 
         return space.newtuple([space.wrap(fds[0]),
                                space.wrap(fds[1]),
diff --git a/pypy/module/_ssl/interp_ssl.py b/pypy/module/_ssl/interp_ssl.py
--- a/pypy/module/_ssl/interp_ssl.py
+++ b/pypy/module/_ssl/interp_ssl.py
@@ -3,7 +3,7 @@
 from rpython.rlib import rpoll, rsocket
 from rpython.rlib.rarithmetic import intmask
 from rpython.rlib.ropenssl import *
-from rpython.rlib.rposix import get_errno, set_errno
+from rpython.rlib.rposix import get_saved_errno
 from rpython.rtyper.lltypesystem import lltype, rffi
 
 from pypy.interpreter.baseobjspace import W_Root
@@ -188,11 +188,9 @@
         else:
             keyfile = space.str_w(w_keyfile)
 
-        set_errno(0)
-
         ret = libssl_SSL_CTX_use_certificate_chain_file(self.ctx, certfile)
         if ret != 1:
-            errno = get_errno()
+            errno = get_saved_errno()
             if errno:
                 libssl_ERR_clear_error()
                 raise wrap_oserror(space, OSError(errno, ''),
@@ -203,7 +201,7 @@
         ret = libssl_SSL_CTX_use_PrivateKey_file(self.ctx, keyfile,
                                                  SSL_FILETYPE_PEM)
         if ret != 1:
-            errno = get_errno()
+            errno = get_saved_errno()
             if errno:
                 libssl_ERR_clear_error()
                 raise wrap_oserror(space, OSError(errno, ''),
@@ -227,11 +225,10 @@
         if cafile is None and capath is None:
             raise OperationError(space.w_TypeError, space.wrap(
                     "cafile and capath cannot be both omitted"))
-        set_errno(0)
         ret = libssl_SSL_CTX_load_verify_locations(
             self.ctx, cafile, capath)
         if ret != 1:
-            errno = get_errno()
+            errno = get_saved_errno()
             if errno:
                 libssl_ERR_clear_error()
                 raise wrap_oserror(space, OSError(errno, ''),
diff --git a/rpython/rlib/ropenssl.py b/rpython/rlib/ropenssl.py
--- a/rpython/rlib/ropenssl.py
+++ b/rpython/rlib/ropenssl.py
@@ -199,8 +199,10 @@
 ssl_external('SSLv2_method', [], SSL_METHOD)
 ssl_external('SSLv3_method', [], SSL_METHOD)
 ssl_external('SSLv23_method', [], SSL_METHOD)
-ssl_external('SSL_CTX_use_PrivateKey_file', [SSL_CTX, rffi.CCHARP, rffi.INT], rffi.INT)
-ssl_external('SSL_CTX_use_certificate_chain_file', [SSL_CTX, rffi.CCHARP], rffi.INT)
+ssl_external('SSL_CTX_use_PrivateKey_file', [SSL_CTX, rffi.CCHARP, rffi.INT], rffi.INT,
+             save_err=rffi.RFFI_FULL_ERRNO_ZERO)
+ssl_external('SSL_CTX_use_certificate_chain_file', [SSL_CTX, rffi.CCHARP], rffi.INT,
+             save_err=rffi.RFFI_FULL_ERRNO_ZERO)
 ssl_external('SSL_CTX_get_options', [SSL_CTX], rffi.LONG, macro=True)
 ssl_external('SSL_CTX_set_options', [SSL_CTX, rffi.LONG], rffi.LONG, macro=True)
 if HAVE_SSL_CTX_CLEAR_OPTIONS:
@@ -213,7 +215,7 @@
 ssl_external('SSL_CTX_set_cipher_list', [SSL_CTX, rffi.CCHARP], rffi.INT)
 ssl_external('SSL_CTX_load_verify_locations',
              [SSL_CTX, rffi.CCHARP, rffi.CCHARP], rffi.INT,
-             save_err=SAVE_ERR)
+             save_err=rffi.RFFI_FULL_ERRNO_ZERO)
 ssl_external('SSL_CTX_check_private_key', [SSL_CTX], rffi.INT)
 ssl_external('SSL_CTX_set_session_id_context', [SSL_CTX, rffi.CCHARP, rffi.UINT], rffi.INT)
 SSL_CTX_STATS_NAMES = """


More information about the pypy-commit mailing list