[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