Author: Amaury Forgeot d'Arc <amaur...@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 = """ _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit