Merge pull request #145 from shakugan/patch-1

sock options ignored on ssl
diff --git a/src/ibrowse_http_client.erl b/src/ibrowse_http_client.erl
index b43b541..7b060aa 100644
--- a/src/ibrowse_http_client.erl
+++ b/src/ibrowse_http_client.erl
@@ -570,7 +570,21 @@
                                        use_proxy   = false,
                                        ssl_options = SSLOptions},
            Timeout) ->
-    ssl:connect(Host, Port, get_sock_options(Host, Options, SSLOptions), Timeout);
+    Socks5Host = get_value(socks5_host, Options, undefined),
+    Sock_options = get_sock_options(Host, Options, []),
+    Conn = case Socks5Host of
+      undefined ->
+        gen_tcp:connect(Host, Port, Sock_options, Timeout);
+      _ ->
+        catch ibrowse_socks5:connect(Host, Port, Options, Sock_options, Timeout)
+    end,
+    case Conn of
+      {ok, Sock} ->
+        ssl:connect(Sock, SSLOptions, Timeout);
+      _ ->
+        error
+    end;
+    
 do_connect(Host, Port, Options, _State, Timeout) ->
     Socks5Host = get_value(socks5_host, Options, undefined),
     Sock_options = get_sock_options(Host, Options, []),