[Pkg-ocaml-maint-commits] r5138 - in /trunk/packages/ocamlnet/trunk/debian: changelog patches/00list patches/fix_ssl_bindings.dpatch

glondu-guest at users.alioth.debian.org glondu-guest at users.alioth.debian.org
Sat Feb 9 12:31:59 UTC 2008


Author: glondu-guest
Date: Sat Feb  9 12:31:59 2008
New Revision: 5138

URL: http://svn.debian.org/wsvn/pkg-ocaml-maint/?sc=1&rev=5138
Log:
Add patch fix_ssl_bindings.dpatch to fix faulty ssl bindings, closes:
#450903.

Added:
    trunk/packages/ocamlnet/trunk/debian/patches/fix_ssl_bindings.dpatch   (with props)
Modified:
    trunk/packages/ocamlnet/trunk/debian/changelog
    trunk/packages/ocamlnet/trunk/debian/patches/00list

Modified: trunk/packages/ocamlnet/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-ocaml-maint/trunk/packages/ocamlnet/trunk/debian/changelog?rev=5138&op=diff
==============================================================================
--- trunk/packages/ocamlnet/trunk/debian/changelog (original)
+++ trunk/packages/ocamlnet/trunk/debian/changelog Sat Feb  9 12:31:59 2008
@@ -8,8 +8,10 @@
   * Add patch configure_kfreebsd.dpatch to make configure script recognize
     GNU/kFreeBSD as FreeBSD and fix compatibility with kFreeBSD port
     (rpc-auth-local not available), closes: #462291.
-
- -- Stephane Glondu <steph at glondu.net>  Thu, 24 Jan 2008 10:08:06 +0100
+  * Add patch fix_ssl_bindings.dpatch to fix faulty ssl bindings,
+    closes: #450903.
+
+ -- Stephane Glondu <steph at glondu.net>  Sat, 09 Feb 2008 13:11:51 +0100
 
 ocamlnet (2.2.9-1) unstable; urgency=low
 

Modified: trunk/packages/ocamlnet/trunk/debian/patches/00list
URL: http://svn.debian.org/wsvn/pkg-ocaml-maint/trunk/packages/ocamlnet/trunk/debian/patches/00list?rev=5138&op=diff
==============================================================================
--- trunk/packages/ocamlnet/trunk/debian/patches/00list (original)
+++ trunk/packages/ocamlnet/trunk/debian/patches/00list Sat Feb  9 12:31:59 2008
@@ -6,3 +6,4 @@
 build_w_camlp5.dpatch
 no_apache_info.dpatch
 configure_kfreebsd.dpatch
+fix_ssl_bindings.dpatch

Added: trunk/packages/ocamlnet/trunk/debian/patches/fix_ssl_bindings.dpatch
URL: http://svn.debian.org/wsvn/pkg-ocaml-maint/trunk/packages/ocamlnet/trunk/debian/patches/fix_ssl_bindings.dpatch?rev=5138&op=file
==============================================================================
--- trunk/packages/ocamlnet/trunk/debian/patches/fix_ssl_bindings.dpatch (added)
+++ trunk/packages/ocamlnet/trunk/debian/patches/fix_ssl_bindings.dpatch Sat Feb  9 12:31:59 2008
@@ -1,0 +1,113 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## fix_ssl_bindings.dpatch by Romain Beauxis <toots at rastageeks.org>
+##
+## All lines beginning with ## DP:' are a description of the patch.
+## DP: fix faulty ssl bindings (closes: #450903)
+
+ at DPATCH@
+--- ocamlnet-2.2.8.1.orig/src/equeue-ssl/ssl_exts_stubs.c
++++ ocamlnet-2.2.8.1/src/equeue-ssl/ssl_exts_stubs.c
+@@ -6,41 +6,29 @@
+ #include <caml/memory.h>
+ #include <caml/misc.h>
+ #include <caml/mlvalues.h>
+-
++#include <caml/signals.h>
+ #include <openssl/ssl.h>
+ #include <openssl/pem.h>
+ #include <openssl/err.h>
+ #include <openssl/bio.h>
+ #include <unistd.h>
+ 
+-
+-/* The following definitions are copied from ssl_stubs.c: */
+-
+-struct ssl_socket__t
+-{
+-  SSL *handler;
+-  int fd;
+-};
+-
+-typedef struct ssl_socket__t ssl_socket_t;
+-
+-static ssl_socket_t* ssl_socket_of_block(value block)
+-{
+-  return (ssl_socket_t*)Field(block, 1);
+-}
++#define SSL_val(v) (*((SSL**)Data_custom_val(v)))
+ 
+ 
+ CAMLprim value ocaml_ssl_single_shutdown(value socket)
+ {
+   CAMLparam1(socket);
+   int ret;
+-  ssl_socket_t *ssl = ssl_socket_of_block(socket);
+ 
+-  ret = SSL_shutdown(ssl->handler);
++  SSL *ssl = SSL_val(socket);
++  caml_enter_blocking_section();
++  ret = SSL_shutdown(ssl);
+   if (ret == -1) {
+       raise_with_arg(*caml_named_value("ssl_exn_shutdown_error"), 
+-		     Val_int(SSL_get_error(ssl->handler, ret)));
++		     Val_int(SSL_get_error(ssl, ret)));
+   };
++  caml_leave_blocking_section();
+ 
+   CAMLreturn(Val_unit);
+ }
+@@ -52,8 +40,10 @@
+   CAMLlocal3(rcvd,sent,ret);
+   int r;
+   
+-  ssl_socket_t *ssl = ssl_socket_of_block(socket);
+-  r = SSL_get_shutdown(ssl->handler);
++  SSL *ssl = SSL_val(socket);
++  caml_enter_blocking_section();
++  r = SSL_get_shutdown(ssl);
++  caml_leave_blocking_section();
+   rcvd = Val_bool(r & SSL_RECEIVED_SHUTDOWN);
+   sent = Val_bool(r & SSL_SENT_SHUTDOWN);
+   ret = alloc_tuple(2);
+@@ -71,8 +61,10 @@
+     BIO *b;
+     int eof;
+ 
+-    ssl_socket_t *ssl = ssl_socket_of_block(socket);
+-    b = SSL_get_rbio(ssl->handler);
++    SSL *ssl = SSL_val(socket);
++    caml_enter_blocking_section();
++    b = SSL_get_rbio(ssl);
++    caml_leave_blocking_section();
+     if (b == NULL) 
+ 	failwith("Ssl.get_rbio_eof: No rbio found");
+     eof = BIO_eof(b);
+@@ -87,8 +79,10 @@
+     CAMLparam1(socket);
+     CAMLlocal1(ret);
+     long m;
+-    ssl_socket_t *ssl = ssl_socket_of_block(socket);
+-    m = SSL_get_mode(ssl->handler);
++    SSL *ssl = SSL_val(socket);
++    caml_enter_blocking_section();
++    m = SSL_get_mode(ssl);
++    caml_leave_blocking_section();
+     ret = alloc_tuple(3);
+     Store_field(ret, 0, Val_bool(m & SSL_MODE_ENABLE_PARTIAL_WRITE));
+     Store_field(ret, 1, Val_bool(m & SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER));
+@@ -100,12 +94,14 @@
+ {
+     CAMLparam2(socket,mode);
+     long m;
+-    ssl_socket_t *ssl = ssl_socket_of_block(socket);
++    SSL *ssl = SSL_val(socket);
+     m = 0;
+     if (Bool_val(Field(mode, 0))) m |= SSL_MODE_ENABLE_PARTIAL_WRITE;
+     if (Bool_val(Field(mode, 1))) m |= SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER;
+     if (Bool_val(Field(mode, 2))) m |= SSL_MODE_AUTO_RETRY;
+-    SSL_set_mode(ssl->handler, m);
++    caml_enter_blocking_section();
++    SSL_set_mode(ssl, m);
++    caml_leave_blocking_section();
+     CAMLreturn(Val_unit);
+ }

Propchange: trunk/packages/ocamlnet/trunk/debian/patches/fix_ssl_bindings.dpatch
------------------------------------------------------------------------------
    svn:executable = *




More information about the Pkg-ocaml-maint-commits mailing list