Call appropriate sockname function for socket type
COUCHDB: 3049
diff --git a/src/chttpd.erl b/src/chttpd.erl
index e41829e..8a42e62 100644
--- a/src/chttpd.erl
+++ b/src/chttpd.erl
@@ -546,7 +546,7 @@
undefined ->
case MochiReq:get_header_value("Host") of
undefined ->
- {ok, {Address, Port}} = inet:sockname(MochiReq:get(socket)),
+ {ok, {Address, Port}} = sockname(MochiReq:get(socket)),
inet_parse:ntoa(Address) ++ ":" ++ integer_to_list(Port);
Value1 ->
Value1
@@ -575,6 +575,11 @@
absolute_uri(#httpd{absolute_uri = URI}, Path) ->
URI ++ Path.
+sockname(Socket) when is_pid(Socket) ->
+ inet:sockname(Socket);
+sockname(Socket) when is_tuple(Socket) -> % is_tuple since ssl_api.hrl is not exposed
+ ssl:sockname(Socket).
+
unquote(UrlEncodedString) ->
mochiweb_util:unquote(UrlEncodedString).