couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kxe...@apache.org
Subject chttpd commit: updated refs/heads/master to abe9aee
Date Thu, 18 Jun 2015 18:14:11 GMT
Repository: couchdb-chttpd
Updated Branches:
  refs/heads/master dc9c347b9 -> abe9aee7b


Be more precisely on HTTP 404/405 responses for /_nodes/$node/*


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

Branch: refs/heads/master
Commit: abe9aee7bc7f3952880d0371564a89a730751645
Parents: dc9c347
Author: Alexander Shorin <kxepal@apache.org>
Authored: Thu Jun 18 20:26:41 2015 +0300
Committer: Alexander Shorin <kxepal@apache.org>
Committed: Thu Jun 18 21:10:16 2015 +0300

----------------------------------------------------------------------
 src/chttpd_misc.erl | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/abe9aee7/src/chttpd_misc.erl
----------------------------------------------------------------------
diff --git a/src/chttpd_misc.erl b/src/chttpd_misc.erl
index 5da9b1b..f23926b 100644
--- a/src/chttpd_misc.erl
+++ b/src/chttpd_misc.erl
@@ -242,11 +242,15 @@ handle_node_req(#httpd{method='GET', path_parts=[_, Node, <<"_config">>]}=Req)
-
         [{list_to_binary(Section), {Values}} | Acc]
     end, [], Grouped),
     send_json(Req, 200, {KVs});
+handle_node_req(#httpd{path_parts=[_, _Node, <<"_config">>]}=Req) ->
+    send_method_not_allowed(Req, "GET");
 % GET /_node/$node/_config/Section
 handle_node_req(#httpd{method='GET', path_parts=[_, Node, <<"_config">>, Section]}=Req)
->
     KVs = [{list_to_binary(Key), list_to_binary(Value)}
             || {Key, Value} <- call_node(Node, config, get, [Section])],
     send_json(Req, 200, {KVs});
+handle_node_req(#httpd{path_parts=[_, _Node, <<"_config">>, _Section]}=Req) ->
+    send_method_not_allowed(Req, "GET");
 % PUT /_node/$node/_config/Section/Key
 % "value"
 handle_node_req(#httpd{method='PUT', path_parts=[_, Node, <<"_config">>, Section,
Key]}=Req) ->
@@ -273,8 +277,12 @@ handle_node_req(#httpd{method='DELETE',path_parts=[_, Node, <<"_config">>,
Secti
         call_node(Node, config, delete, [Section, Key, Persist]),
         send_json(Req, 200, list_to_binary(OldValue))
     end;
+handle_node_req(#httpd{path_parts=[_, _Node, <<"_config">>, _Section, _Key]}=Req)
->
+    send_method_not_allowed(Req, "GET,PUT,DELETE");
+handle_node_req(#httpd{path_parts=[_, _Node, <<"_config">>, _Section, _Key |
_]}=Req) ->
+    chttpd:send_error(Req, not_found);
 % GET /_node/$node/_stats
-handle_node_req(#httpd{path_parts=[_, Node, <<"_stats">> | Path]}=Req) ->
+handle_node_req(#httpd{method='GET', path_parts=[_, Node, <<"_stats">> | Path]}=Req)
->
     flush(Node, Req),
     Stats0 = call_node(Node, couch_stats, fetch, []),
     Stats = couch_stats_httpd:transform_stats(Stats0),
@@ -282,8 +290,15 @@ handle_node_req(#httpd{path_parts=[_, Node, <<"_stats">>
| Path]}=Req) ->
     EJSON0 = couch_stats_httpd:to_ejson(Nested),
     EJSON1 = couch_stats_httpd:extract_path(Path, EJSON0),
     chttpd:send_json(Req, EJSON1);
+handle_node_req(#httpd{path_parts=[_, _Node, <<"_stats">>]}=Req) ->
+    send_method_not_allowed(Req, "GET");
+handle_node_req(#httpd{path_parts=[_]}=Req) ->
+    chttpd:send_error(Req, {bad_request, <<"Incomplete path to _node request">>});
+handle_node_req(#httpd{path_parts=[_, _Node]}=Req) ->
+    chttpd:send_error(Req, {bad_request, <<"Incomplete path to _node request">>});
 handle_node_req(Req) ->
-    send_method_not_allowed(Req, "GET,PUT,DELETE").
+    chttpd:send_error(Req, not_found).
+
 
 call_node(Node0, Mod, Fun, Args) when is_binary(Node0) ->
     Node1 = try


Mime
View raw message