diff --git a/Makefile.in b/Makefile.in index 1faefbab..4ad2d6bb 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,6 +1,7 @@ RUSTC := rustc BUILDDIR := build -RUSTFLAGS := -O --cfg ndebug +RUSTCFGS := %RUSTCFGS% +RUSTFLAGS := -O --cfg ndebug $(RUSTCFGS) INSTALL_DIR := %PREFIX% OPENSSL_LIB := lib.rs @@ -29,7 +30,7 @@ clean: rm -rf $(BUILDDIR) doc: $(OPENSSL) - rustdoc $(OPENSSL_LIB) + rustdoc $(RUSTCFGS) $(OPENSSL_LIB) install: $(OPENSSL) install $(OPENSSL) $(INSTALL_DIR) diff --git a/configure b/configure index 7fe7f2bb..92ee62d1 100755 --- a/configure +++ b/configure @@ -2,19 +2,27 @@ cd $(dirname $0) -TEMP=`getopt -o "" --long prefix: -n "$0" -- "$@"` +TEMP=`getopt -o "" --long prefix:,enable-sslv2 -n "$0" -- "$@"` if [ $? != 0 ]; then exit 1; fi eval set -- "$TEMP" PREFIX=/usr/lib +RUSTCFGS= while true ; do case "$1" in --prefix) PREFIX=$2; shift 2;; + --enable-sslv2) + RUSTCFGS="$RUSTCFGS --cfg sslv2" + shift + break + ;; --) shift; break;; esac done -sed -e "s|%PREFIX%|$PREFIX|" < Makefile.in > Makefile +sed -e "s|%PREFIX%|$PREFIX|" \ + -e "s|%RUSTCFGS%|$RUSTCFGS|" \ + < Makefile.in > Makefile diff --git a/ssl/mod.rs b/ssl/mod.rs index e9b4e78b..b28e072c 100644 --- a/ssl/mod.rs +++ b/ssl/mod.rs @@ -13,8 +13,6 @@ mod ffi; #[cfg(test)] mod tests; -static mut INIT: Once = ONCE_INIT; - static mut VERIFY_IDX: c_int = -1; static mut MUTEXES: *mut ~[NativeMutex] = 0 as *mut ~[NativeMutex]; @@ -28,6 +26,8 @@ macro_rules! try_ssl( ) fn init() { + static mut INIT: Once = ONCE_INIT; + unsafe { INIT.doit(|| { ffi::SSL_library_init();