src/ssl.c

changeset 6
d559a15eeb40
parent 5
2d5a8f963181
child 7
da3cf40976f6
equal deleted inserted replaced
5:2d5a8f963181 6:d559a15eeb40
425 return 1; 425 return 1;
426 } else { 426 } else {
427 return 0; 427 return 0;
428 } 428 }
429 } 429 }
430
431 static int meth_getpeerfinished(lua_State *L)
432 {
433 p_ssl ssl = (p_ssl)luaL_checkudata(L, 1, "SSL:Connection");
434 SSL *conn = ssl->ssl;
435 char *buffer = NULL;
436 size_t len = 0;
437 if ((len = SSL_get_peer_finished(conn, NULL, 0)) != 0) {
438 buffer = malloc(len);
439 if (buffer == NULL) return 0;
440 len = SSL_get_peer_finished(conn, buffer, len);
441 lua_pushlstring(L, buffer, len);
442 free(buffer);
443 return 1;
444 } else {
445 return 0;
446 }
447 }
448
430 /*---------------------------------------------------------------------------*/ 449 /*---------------------------------------------------------------------------*/
431 450
432 451
433 /** 452 /**
434 * SSL metamethods 453 * SSL metamethods
443 {"settimeout", meth_settimeout}, 462 {"settimeout", meth_settimeout},
444 {"want", meth_want}, 463 {"want", meth_want},
445 {"compression", meth_compression}, 464 {"compression", meth_compression},
446 {"getpeercertificate",meth_getpeercertificate}, 465 {"getpeercertificate",meth_getpeercertificate},
447 {"getfinished", meth_getfinished}, 466 {"getfinished", meth_getfinished},
467 {"getpeerfinished", meth_getpeerfinished},
448 {NULL, NULL} 468 {NULL, NULL}
449 }; 469 };
450 470
451 /** 471 /**
452 * SSL functions 472 * SSL functions

mercurial