- 21 11月, 2015 30 次提交
-
-
由 Matt Caswell 提交于
We were using _pipe to create a pipe on windows. This uses the "int" type for its file descriptor for compatibility. However most windows functions expect to use a "HANDLE". Probably we could get away with just casting but it seems more robust to use the proper type and main stream windows functions. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
There were a number of places where the async code did not conform to the OpenSSL coding style. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
The rand code can aquire locks and then attempt crypto operations. This can end up in a deadlock if we are using an async engine, because control returns back to the user code whilst still holding the lock. We need to force synchronous operation for these sections of code. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
There are potential deadlock situations that can occur if code executing within the context of a job aquires a lock, and then pauses the job. This adds an ability to temporarily block pauses from occuring whilst performing work and holding a lock. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Even with _XOPEN_SOURCE defined OS-X still displays warnings that makecontext and friends are deprecated. This isn't a problem until you try and build with --strict-warnings, and the build fails. This change suppresses the warnings. We know they are deprecated but there is no alternative! Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
async_fibre_makecontext was initialise the fibre first and then calling getcontext(). It should be the other way around because the getcontext call may overwrite some of the things we just initialised. This didn't cause an issue on Linux and so the problem went unnoticed. On OS-X it causes a crash. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
OS-X complains if we don't have _XOPEN_SOURCE defined. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Make clang build without errors in the async code Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
_longjmp/_setjmp do not manipulate the signal mask whilst longjmp/setjmp may do. Online sources suggest this could result in a significant speed up in the context switching. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
If config'd without -d (--debug), asynctest was crashing with: *** longjmp causes uninitialized stack frame *** This is because gcc will add certain checks for some functions (including longjmp). The checks assume you can only longjmp down the stack not up. However, if we are actually jumping to a different fibre then it can appear as if we are going up the stack when we are not really. This change disables the check. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Add some clarifications to the async documentation. Also changed ASYNC_pause_job() so that it returns success if you are not within the context of a job. This is so that engines can be used either asynchronously or synchronously and can treat an error from ASYNC_pause_job() as a real error. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Add ASYNCerr support to give some meaningful error message in the event of a failure. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Tidied up the naming of functions and structures to be consistent Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Fix some warnings in the async code when compiling on windows. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Don't recreate a new ASYNC_CTX every time we call ASYNC_start_job() - the same one can be used for the life of the thread. Instead we only free it up when we call ASYNC_free_pool(). Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
The ASYNC null implementation has not kept pace with the rest of the async development and so was failing to compile. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
The ASYNC_in_job() function is redundant. The same effect can be achieved by using ASYNC_get_current_job(). Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Port the async pool and notify code to windows. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Implement the ASYNC_JOB as a local thread pool. Remove the API support for global pools. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Initial API implemented for notifying applications that an ASYNC_JOB has completed. Currently only s_server is using this. The Dummy Async engine "cheats" in that it notifies that it has completed *before* it pauses the job. A normal async engine would not do that. Only the posix version of this has been implemented so far, so it will probably fail to compile on Windows at the moment. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
It is expensive to create the ASYNC_JOB objects due to the "makecontext" call. This change adds support for pools of ASYNC_JOB objects so that we don't have to create a new ASYNC_JOB every time we want to use one. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Where we can we should use longjmp and setjmp in preference to swapcontext/ setcontext as they seem to be more performant. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Removed the function ASYNC_job_is_waiting() as it was redundant. The only time user code has a handle on a job is when one is waiting, so all they need to do is check whether the job is NULL. Also did some cleanups to make sure the job really is NULL after it has been freed! Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Some assembler code puts a lot of stuff on the stack, so up the stack size. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Create a "null" async implementation for platforms that lack support. This just does nothing when called and therefore performs synchronously. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
The following entry points have been made async aware: SSL_accept SSL_read SSL_write Also added is a new mode - SSL_MODE_ASYNC. Calling the above functions with the async mode enabled will initiate a new async job. If an async pause is encountered whilst executing the job (such as for example if using SHA1/RSA with the Dummy Async engine), then the above functions return with SSL_WANT_ASYNC. Calling the functions again (with exactly the same args as per non-blocking IO), will resume the job where it left off. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Matt Caswell 提交于
Provides support for running asynchronous jobs. Currently this is completely stand alone. Future commits will integrate this into libssl and s_server/ s_client. An asynchronous capable engine will be required to see any benefit from this capability. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Pascal Cuoq 提交于
Signed-off-by: NKurt Roeckx <kurt@roeckx.be> Reviewed-by: NRich Salz <rsalz@akamai.com> RT #4100, MR #1264
-
- 20 11月, 2015 1 次提交
-
-
由 Dr. Stephen Henson 提交于
Based on PR#2145 Reviewed-by: NMatt Caswell <matt@openssl.org>
-
- 18 11月, 2015 2 次提交
-
-
由 Andy Polyakov 提交于
Reviewed-by: NRichard Levitte <levitte@openssl.org>
-
由 Rich Salz 提交于
Final part of flushing out SSLEay API's. Reviewed-by: NTim Hudson <tjh@openssl.org>
-
- 17 11月, 2015 2 次提交
-
-
由 Richard Levitte 提交于
Reviewed-by: NMatt Caswell <matt@openssl.org>
-
由 Matt Caswell 提交于
We use the sysconf function to provide details about the page size in the secure memory code. This function can return -1 on error so we should check for this before proceeding. Reviewed-by: NKurt Roeckx <kurt@openssl.org>
-
- 16 11月, 2015 4 次提交
-
-
由 Andy Polyakov 提交于
The problem remained unnoticed so far, because it's never called by default. You have to craft OPENSSL_ppccap environment variable to trigger the problem. Reviewed-by: NRichard Levitte <levitte@openssl.org>
-
由 Andy Polyakov 提交于
Reviewed-by: NKurt Roeckx <kurt@openssl.org>
-
由 Andy Polyakov 提交于
bn/asm/s390x.S: improve performance on z196 and z13 by up to 26%. [even z10 is couple percent faster]. Triggered by RT#4128, but solves the problem by real modulo-scheduling. Reviewed-by: NRich Salz <rsalz@openssl.org>
-
由 Andy Polyakov 提交于
It was also found that stich performs suboptimally on AMD Jaguar, hence execution is limited to XOP-capable and Intel processors. Reviewed-by: NKurt Roeckx <kurt@openssl.org>
-
- 15 11月, 2015 1 次提交
-
-
由 Viktor Dukhovni 提交于
Reviewed-by: NTim Hudson <tjh@openssl.org>
-