You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2017/08/14 15:38:36 UTC

[26/31] mochiweb commit: updated refs/heads/upstream to 23dc119

Getong erlang 20 fix (#192)

* add 20 compile module option: nowarn_export_all

* crypto:rand_uniform/2 is deprecated and will be removed in a future release; use rand:uniform/1

* add 20

* otp20 cleanup

* remove nowarn_export_all

* correct off by one error in rand_uniform/2


Project: http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/commit/ae9c0766
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/tree/ae9c0766
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/diff/ae9c0766

Branch: refs/heads/upstream
Commit: ae9c0766b25af436265a2f88357de2cb96c9e99f
Parents: aacb8f2
Author: Bob Ippolito <bo...@redivi.com>
Authored: Sat Aug 12 16:24:01 2017 -0700
Committer: GitHub <no...@github.com>
Committed: Sat Aug 12 16:24:01 2017 -0700

----------------------------------------------------------------------
 .travis.yml                    |  1 +
 rebar.config                   |  1 +
 src/mochitemp.erl              |  2 +-
 src/mochiweb_html.erl          |  1 -
 src/mochiweb_multipart.erl     |  2 +-
 src/mochiweb_socket_server.erl |  4 ++--
 src/mochiweb_util.erl          |  9 +++++++++
 test/mochiweb_test_util.erl    | 12 ++++++++++--
 8 files changed, 25 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/ae9c0766/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 629003e..60783fd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,7 @@ language: erlang
 notifications:
   email: false
 otp_release:
+  - 20.0
   - 19.0
   - 18.3
   - 17.5

http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/ae9c0766/rebar.config
----------------------------------------------------------------------
diff --git a/rebar.config b/rebar.config
index 8fc1a14..adc1d78 100644
--- a/rebar.config
+++ b/rebar.config
@@ -3,6 +3,7 @@
             {platform_define, "^R15", 'gen_tcp_r15b_workaround'},
             {platform_define, "^(R14|R15|R16B-)", 'crypto_compatibility'},
             {platform_define, "^(R14|R15|R16B|17)", 'rand_mod_unavailable'},
+            {platform_define, "^(R14|R15|R16B|17)", 'sni_unavailable'},
             {platform_define, "^(R14|R15|R16)", 'map_unavailable'}]}.
 {cover_enabled, true}.
 {eunit_opts, [verbose, {report,{eunit_surefire,[{dir,"."}]}}]}.

http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/ae9c0766/src/mochitemp.erl
----------------------------------------------------------------------
diff --git a/src/mochitemp.erl b/src/mochitemp.erl
index bd3c965..fe99cad 100644
--- a/src/mochitemp.erl
+++ b/src/mochitemp.erl
@@ -105,7 +105,7 @@ rngchars(N) ->
     [rngchar() | rngchars(N - 1)].
 
 rngchar() ->
-    rngchar(crypto:rand_uniform(0, tuple_size(?SAFE_CHARS))).
+    rngchar(mochiweb_util:rand_uniform(0, tuple_size(?SAFE_CHARS))).
 
 rngchar(C) ->
     element(1 + C, ?SAFE_CHARS).

http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/ae9c0766/src/mochiweb_html.erl
----------------------------------------------------------------------
diff --git a/src/mochiweb_html.erl b/src/mochiweb_html.erl
index 418f24c..df21a8f 100644
--- a/src/mochiweb_html.erl
+++ b/src/mochiweb_html.erl
@@ -23,7 +23,6 @@
 -module(mochiweb_html).
 -export([tokens/1, parse/1, parse_tokens/1, to_tokens/1, escape/1,
          escape_attr/1, to_html/1]).
--compile([export_all]).
 -ifdef(TEST).
 -export([destack/1, destack/2, is_singleton/1]).
 -endif.

http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/ae9c0766/src/mochiweb_multipart.erl
----------------------------------------------------------------------
diff --git a/src/mochiweb_multipart.erl b/src/mochiweb_multipart.erl
index 0d02bee..fd75443 100644
--- a/src/mochiweb_multipart.erl
+++ b/src/mochiweb_multipart.erl
@@ -336,7 +336,7 @@ with_socket_server(Transport, ServerFun, ClientFun) ->
         plain ->
             gen_tcp:connect("127.0.0.1", Port, ClientOpts);
         ssl ->
-            ClientOpts1 = [{ssl_imp, new} | ClientOpts],
+            ClientOpts1 = mochiweb_test_util:ssl_client_opts(ClientOpts),
             {ok, SslSocket} = ssl:connect("127.0.0.1", Port, ClientOpts1),
             {ok, {ssl, SslSocket}}
     end,

http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/ae9c0766/src/mochiweb_socket_server.erl
----------------------------------------------------------------------
diff --git a/src/mochiweb_socket_server.erl b/src/mochiweb_socket_server.erl
index fd5e382..7a9b0d3 100644
--- a/src/mochiweb_socket_server.erl
+++ b/src/mochiweb_socket_server.erl
@@ -128,7 +128,7 @@ parse_options([{recbuf, RecBuf} | Rest], State) when is_integer(RecBuf) orelse
     %% and this doubled value is returned by getsockopt(2).
     %%
     %% See: man 7 socket | grep SO_RCVBUF
-    %% 
+    %%
     %% In case undefined is passed instead of the default buffer
     %% size ?RECBUF_SIZE, no size is set and the OS can control it dynamically
     parse_options(Rest, State#mochiweb_socket_server{recbuf=RecBuf});
@@ -200,7 +200,7 @@ init(State=#mochiweb_socket_server{ip=Ip, port=Port, backlog=Backlog,
         {_, _, _, _, _, _, _, _} -> % IPv6
             [inet6, {ip, Ip} | BaseOpts]
     end,
-    OptsBuf=case RecBuf of 
+    OptsBuf=case RecBuf of
         undefined ->
             Opts;
         _ ->

http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/ae9c0766/src/mochiweb_util.erl
----------------------------------------------------------------------
diff --git a/src/mochiweb_util.erl b/src/mochiweb_util.erl
index 2acd436..dde2962 100644
--- a/src/mochiweb_util.erl
+++ b/src/mochiweb_util.erl
@@ -15,6 +15,7 @@
 -export([parse_qvalues/1, pick_accepted_encodings/3]).
 -export([make_io/1]).
 -export([normalize_path/1]).
+-export([rand_uniform/2]).
 
 -define(PERCENT, 37).  % $\%
 -define(FULLSTOP, 46). % $\.
@@ -601,6 +602,14 @@ normalize_path("/" ++ Path, "/" ++ _ = Acc) ->
 normalize_path([C|Path], Acc) ->
         normalize_path(Path, [C|Acc]).
 
+-ifdef(rand_mod_unavailable).
+rand_uniform(Start, End) ->
+    crypto:rand_uniform(Start, End).
+-else.
+rand_uniform(Start, End) ->
+    Start + rand:uniform(End - Start) - 1.
+-endif.
+
 %%
 %% Tests
 %%

http://git-wip-us.apache.org/repos/asf/couchdb-mochiweb/blob/ae9c0766/test/mochiweb_test_util.erl
----------------------------------------------------------------------
diff --git a/test/mochiweb_test_util.erl b/test/mochiweb_test_util.erl
index a0bf11a..c4feaed 100644
--- a/test/mochiweb_test_util.erl
+++ b/test/mochiweb_test_util.erl
@@ -1,6 +1,6 @@
 -module(mochiweb_test_util).
 -export([with_server/3, client_request/4, sock_fun/2,
-         read_server_headers/1, drain_reply/3]).
+         read_server_headers/1, drain_reply/3, ssl_client_opts/1]).
 -include("mochiweb_test_util.hrl").
 -include_lib("eunit/include/eunit.hrl").
 
@@ -25,6 +25,14 @@ with_server(Transport, ServerFun, ClientFun) ->
     mochiweb_http:stop(Server),
     Res.
 
+-ifdef(sni_unavailable).
+ssl_client_opts(Opts) ->
+  [{ssl_imp, new} | Opts].
+-else.
+ssl_client_opts(Opts) ->
+  [{server_name_indication, disable} | Opts].
+-endif.
+
 sock_fun(Transport, Port) ->
     Opts = [binary, {active, false}, {packet, http}],
     case Transport of
@@ -42,7 +50,7 @@ sock_fun(Transport, Port) ->
                     Socket
             end;
         ssl ->
-            {ok, Socket} = ssl:connect("127.0.0.1", Port, [{ssl_imp, new} | Opts]),
+            {ok, Socket} = ssl:connect("127.0.0.1", Port, ssl_client_opts(Opts)),
             fun (recv) ->
                     ssl:recv(Socket, 0);
                 ({recv, Length}) ->