NGINx async SSL handshake

2016-11-18 Thread Vakul Garg
Hi

I am a newbie to nginx.
I am integrating a public key hardware accelerator in OpenSSL using engine 
interface.
The engine is async capable.

Recently openssl-1.1.0 has added support for ASYNC_JOB.
IIUC, nginx would also require changes in order to do SSL handshake in async 
way.

Any pointers where can I get the nginx code changes done for async openssl

Regards

Vakul
___
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel

[njs] More Math methods from ES6.

2016-11-18 Thread Valentin Bartenev
details:   http://hg.nginx.org/njs/rev/4f4bda866d8e
branches:  
changeset: 262:4f4bda866d8e
user:  Valentin Bartenev 
date:  Fri Nov 18 17:25:25 2016 +0300
description:
More Math methods from ES6.

diffstat:

 njs/njs_math.c   |  333 +++
 njs/test/njs_unit_test.c |  292 +
 2 files changed, 625 insertions(+), 0 deletions(-)

diffs (820 lines):

diff -r f402a8c64d7a -r 4f4bda866d8e njs/njs_math.c
--- a/njs/njs_math.cWed Nov 16 15:21:07 2016 +0300
+++ b/njs/njs_math.cFri Nov 18 17:25:25 2016 +0300
@@ -69,6 +69,25 @@ njs_object_math_acos(njs_vm_t *vm, njs_v
 
 
 static njs_ret_t
+njs_object_math_acosh(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
+njs_index_t unused)
+{
+double  num;
+
+if (nargs > 1) {
+num = acosh(args[1].data.u.number);
+
+} else {
+num = NAN;
+}
+
+njs_number_set(>retval, num);
+
+return NXT_OK;
+}
+
+
+static njs_ret_t
 njs_object_math_asin(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 njs_index_t unused)
 {
@@ -97,6 +116,25 @@ njs_object_math_asin(njs_vm_t *vm, njs_v
 
 
 static njs_ret_t
+njs_object_math_asinh(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
+njs_index_t unused)
+{
+double  num;
+
+if (nargs > 1) {
+num = asinh(args[1].data.u.number);
+
+} else {
+num = NAN;
+}
+
+njs_number_set(>retval, num);
+
+return NXT_OK;
+}
+
+
+static njs_ret_t
 njs_object_math_atan(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 njs_index_t unused)
 {
@@ -138,6 +176,44 @@ njs_object_math_atan2(njs_vm_t *vm, njs_
 
 
 static njs_ret_t
+njs_object_math_atanh(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
+njs_index_t unused)
+{
+double  num;
+
+if (nargs > 1) {
+num = atanh(args[1].data.u.number);
+
+} else {
+num = NAN;
+}
+
+njs_number_set(>retval, num);
+
+return NXT_OK;
+}
+
+
+static njs_ret_t
+njs_object_math_cbrt(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
+njs_index_t unused)
+{
+double  num;
+
+if (nargs > 1) {
+num = cbrt(args[1].data.u.number);
+
+} else {
+num = NAN;
+}
+
+njs_number_set(>retval, num);
+
+return NXT_OK;
+}
+
+
+static njs_ret_t
 njs_object_math_ceil(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 njs_index_t unused)
 {
@@ -176,6 +252,25 @@ njs_object_math_cos(njs_vm_t *vm, njs_va
 
 
 static njs_ret_t
+njs_object_math_cosh(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
+njs_index_t unused)
+{
+double  num;
+
+if (nargs > 1) {
+num = cosh(args[1].data.u.number);
+
+} else {
+num = NAN;
+}
+
+njs_number_set(>retval, num);
+
+return NXT_OK;
+}
+
+
+static njs_ret_t
 njs_object_math_exp(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 njs_index_t unused)
 {
@@ -195,6 +290,25 @@ njs_object_math_exp(njs_vm_t *vm, njs_va
 
 
 static njs_ret_t
+njs_object_math_expm1(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
+njs_index_t unused)
+{
+double  num;
+
+if (nargs > 1) {
+num = expm1(args[1].data.u.number);
+
+} else {
+num = NAN;
+}
+
+njs_number_set(>retval, num);
+
+return NXT_OK;
+}
+
+
+static njs_ret_t
 njs_object_math_floor(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 njs_index_t unused)
 {
@@ -214,6 +328,25 @@ njs_object_math_floor(njs_vm_t *vm, njs_
 
 
 static njs_ret_t
+njs_object_math_fround(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
+njs_index_t unused)
+{
+double  num;
+
+if (nargs > 1) {
+num = (float) args[1].data.u.number;
+
+} else {
+num = NAN;
+}
+
+njs_number_set(>retval, num);
+
+return NXT_OK;
+}
+
+
+static njs_ret_t
 njs_object_math_hypot(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 njs_index_t unused)
 {
@@ -264,6 +397,72 @@ njs_object_math_log(njs_vm_t *vm, njs_va
 
 
 static njs_ret_t
+njs_object_math_log10(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
+njs_index_t unused)
+{
+double  num;
+
+if (nargs > 1) {
+num = log10(args[1].data.u.number);
+
+} else {
+num = NAN;
+}
+
+njs_number_set(>retval, num);
+
+return NXT_OK;
+}
+
+
+static njs_ret_t
+njs_object_math_log1p(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
+njs_index_t unused)
+{
+double  num;
+
+if (nargs > 1) {
+num = log1p(args[1].data.u.number);
+
+} else {
+num = NAN;
+}
+
+njs_number_set(>retval, num);
+
+return NXT_OK;
+}
+
+
+static njs_ret_t
+njs_object_math_log2(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
+njs_index_t unused)
+{
+double  num;
+
+if (nargs > 1) {
+num = args[1].data.u.number;
+
+#if (NXT_SOLARIS)
+/* On Solaris 10 log(-1) returns -Infinity. */
+if (num < 0) {
+num = NAN;
+}
+#endif
+
+num 

[njs] Improved unit test for Math.exp(1).

2016-11-18 Thread Valentin Bartenev
details:   http://hg.nginx.org/njs/rev/f06c2b48ff78
branches:  
changeset: 263:f06c2b48ff78
user:  Valentin Bartenev 
date:  Fri Nov 18 17:25:45 2016 +0300
description:
Improved unit test for Math.exp(1).

diffstat:

 njs/test/njs_unit_test.c |  2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diffs (12 lines):

diff -r 4f4bda866d8e -r f06c2b48ff78 njs/test/njs_unit_test.c
--- a/njs/test/njs_unit_test.c  Fri Nov 18 17:25:25 2016 +0300
+++ b/njs/test/njs_unit_test.c  Fri Nov 18 17:25:45 2016 +0300
@@ -5868,7 +5868,7 @@ static njs_unit_test_t  njs_test[] =
  * The difference is 2 * Number.EPSILON on FreeBSD
  * and zero on other platforms.
  */
-{ nxt_string("Math.exp(1) - Math.E <= 2 * Number.EPSILON"),
+{ nxt_string("Math.abs(Math.exp(1) - Math.E) <= 2 * Number.EPSILON"),
   nxt_string("true") },
 
 { nxt_string("Math.expm1()"),

___
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel