src/ssl.c

changeset 6
d559a15eeb40
parent 5
2d5a8f963181
child 7
da3cf40976f6
--- a/src/ssl.c	Fri Oct 08 21:12:22 2010 +0100
+++ b/src/ssl.c	Fri Oct 08 21:12:48 2010 +0100
@@ -427,6 +427,25 @@
     return 0;
   }
 }
+
+static int meth_getpeerfinished(lua_State *L)
+{
+  p_ssl ssl = (p_ssl)luaL_checkudata(L, 1, "SSL:Connection");
+  SSL *conn = ssl->ssl;
+  char *buffer = NULL;
+  size_t len = 0;
+  if ((len = SSL_get_peer_finished(conn, NULL, 0)) != 0) {
+    buffer = malloc(len);
+    if (buffer == NULL) return 0;
+    len = SSL_get_peer_finished(conn, buffer, len);
+    lua_pushlstring(L, buffer, len);
+    free(buffer);
+    return 1;
+  } else {
+    return 0;
+  }
+}
+
 /*---------------------------------------------------------------------------*/
 
 
@@ -445,6 +464,7 @@
   {"compression",       meth_compression},
   {"getpeercertificate",meth_getpeercertificate},
   {"getfinished",       meth_getfinished},
+  {"getpeerfinished",   meth_getpeerfinished},
   {NULL,                NULL}
 };
 

mercurial