From 78e8273cf8dcb99f4551960f125c3e5a787b7103 Mon Sep 17 00:00:00 2001 From: Simon MacMullen Date: Mon, 1 Oct 2012 18:34:16 +0100 Subject: [PATCH 1/6] First pass at reverse DNS lookups for clients. --- .../priv/www/js/formatters.js | 17 +++++++++++++++-- .../priv/www/js/tmpl/connections.ejs | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/deps/rabbitmq_management/priv/www/js/formatters.js b/deps/rabbitmq_management/priv/www/js/formatters.js index cf667ec3e9..7733ab7956 100644 --- a/deps/rabbitmq_management/priv/www/js/formatters.js +++ b/deps/rabbitmq_management/priv/www/js/formatters.js @@ -431,6 +431,19 @@ function fmt_client_name(properties) { return res; } +function fmt_conn(conn) { + var res = ''; + + if (conn.peer_host == undefined) { + return conn.name; + } + else { + return conn.peer_host + ":" + conn.peer_port; + } + + return fmt_escape_html(res); +} + function alt_rows(i) { return (i % 2 == 0) ? ' class="alt1"' : ' class="alt2"'; } @@ -439,8 +452,8 @@ function esc(str) { return encodeURIComponent(str); } -function link_conn(name) { - return _link_to(fmt_escape_html(name), '#/connections/' + esc(name)) +function link_conn(conn) { + return _link_to(fmt_conn(conn), '#/connections/' + esc(conn.name)) } function link_channel(name) { diff --git a/deps/rabbitmq_management/priv/www/js/tmpl/connections.ejs b/deps/rabbitmq_management/priv/www/js/tmpl/connections.ejs index 75e11575e2..01cc8b68c4 100644 --- a/deps/rabbitmq_management/priv/www/js/tmpl/connections.ejs +++ b/deps/rabbitmq_management/priv/www/js/tmpl/connections.ejs @@ -32,7 +32,7 @@ var connection = connections[i]; %> > - <%= link_conn(connection.name) %> + <%= link_conn(connection) %> <%= connection.protocol %> <% if (connection.ssl) { %> From d0bdd17546402144b7830d3261e6e79322f74c4a Mon Sep 17 00:00:00 2001 From: Simon MacMullen Date: Fri, 19 Oct 2012 16:02:23 +0100 Subject: [PATCH 2/6] Augment with the host too. --- deps/rabbitmq_management/src/rabbit_mgmt_db.erl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_db.erl b/deps/rabbitmq_management/src/rabbit_mgmt_db.erl index 40b8c7933b..3e0ebd548d 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_db.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_db.erl @@ -629,14 +629,16 @@ augment_channel_pid(Pid, #state{tables = Tables}) -> {number, pget(number, Ch)}, {connection_name, pget(name, Conn)}, {peer_address, pget(peer_address, Conn)}, - {peer_port, pget(peer_port, Conn)}]. + {peer_port, pget(peer_port, Conn)}, + {peer_host, pget(peer_host, Conn)}]. augment_connection_pid(Pid, #state{tables = Tables}) -> Conn = lookup_element(orddict:fetch(connection_stats, Tables), {Pid, create}), [{name, pget(name, Conn)}, {peer_address, pget(peer_address, Conn)}, - {peer_port, pget(peer_port, Conn)}]. + {peer_port, pget(peer_port, Conn)}, + {peer_host, pget(peer_host, Conn)}]. augment_queue_pid(Pid, _State) -> %% TODO This should be in rabbit_amqqueue? From 5de65c9a2b283f6670559ab9452f048955d7dbd5 Mon Sep 17 00:00:00 2001 From: Simon MacMullen Date: Fri, 19 Oct 2012 16:02:38 +0100 Subject: [PATCH 3/6] Remove special casing. --- .../priv/www/js/formatters.js | 17 ++--------------- .../priv/www/js/tmpl/connections.ejs | 2 +- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/deps/rabbitmq_management/priv/www/js/formatters.js b/deps/rabbitmq_management/priv/www/js/formatters.js index d43ce8d1d5..d5c684a0e8 100644 --- a/deps/rabbitmq_management/priv/www/js/formatters.js +++ b/deps/rabbitmq_management/priv/www/js/formatters.js @@ -474,19 +474,6 @@ function fmt_client_name(properties) { return res; } -function fmt_conn(conn) { - var res = ''; - - if (conn.peer_host == undefined) { - return conn.name; - } - else { - return conn.peer_host + ":" + conn.peer_port; - } - - return fmt_escape_html(res); -} - function alt_rows(i) { return (i % 2 == 0) ? ' class="alt1"' : ' class="alt2"'; } @@ -495,8 +482,8 @@ function esc(str) { return encodeURIComponent(str); } -function link_conn(conn) { - return _link_to(fmt_conn(conn), '#/connections/' + esc(conn.name)) +function link_conn(name) { + return _link_to(fmt_escape_html(name), '#/connections/' + esc(name)) } function link_channel(name) { diff --git a/deps/rabbitmq_management/priv/www/js/tmpl/connections.ejs b/deps/rabbitmq_management/priv/www/js/tmpl/connections.ejs index c3f0a52ae3..aebc5c5c11 100644 --- a/deps/rabbitmq_management/priv/www/js/tmpl/connections.ejs +++ b/deps/rabbitmq_management/priv/www/js/tmpl/connections.ejs @@ -32,7 +32,7 @@ var connection = connections[i]; %> > - <%= link_conn(connection) %> + <%= link_conn(connection.name) %> <%= connection.protocol %> <% if (connection.ssl) { %> From a22fb350ee36de52e766af8ebaef3e071a95a91e Mon Sep 17 00:00:00 2001 From: Simon MacMullen Date: Thu, 1 Nov 2012 11:29:32 +0000 Subject: [PATCH 4/6] peer_address is no more. --- deps/rabbitmq_management/src/rabbit_mgmt_db.erl | 2 -- 1 file changed, 2 deletions(-) diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_db.erl b/deps/rabbitmq_management/src/rabbit_mgmt_db.erl index 3e0ebd548d..740bd02bab 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_db.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_db.erl @@ -628,7 +628,6 @@ augment_channel_pid(Pid, #state{tables = Tables}) -> [{name, pget(name, Ch)}, {number, pget(number, Ch)}, {connection_name, pget(name, Conn)}, - {peer_address, pget(peer_address, Conn)}, {peer_port, pget(peer_port, Conn)}, {peer_host, pget(peer_host, Conn)}]. @@ -636,7 +635,6 @@ augment_connection_pid(Pid, #state{tables = Tables}) -> Conn = lookup_element(orddict:fetch(connection_stats, Tables), {Pid, create}), [{name, pget(name, Conn)}, - {peer_address, pget(peer_address, Conn)}, {peer_port, pget(peer_port, Conn)}, {peer_host, pget(peer_host, Conn)}]. From 614500b96d0d7dad48e9642950a6acba399a129a Mon Sep 17 00:00:00 2001 From: Simon MacMullen Date: Thu, 1 Nov 2012 14:24:21 +0000 Subject: [PATCH 5/6] Fix formatting of hostname-or-IP-address --- deps/rabbitmq_management/src/rabbit_mgmt_db.erl | 2 +- deps/rabbitmq_management/src/rabbit_mgmt_format.erl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_db.erl b/deps/rabbitmq_management/src/rabbit_mgmt_db.erl index 740bd02bab..4d12f7d0fd 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_db.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_db.erl @@ -356,7 +356,7 @@ handle_event(Event = #event{type = queue_deleted}, State) -> handle_event(#event{type = connection_created, props = Stats}, State) -> handle_created( connection_stats, Stats, - [{fun rabbit_mgmt_format:addr/1, [address, peer_address]}, + [{fun rabbit_mgmt_format:addr/1, [host, peer_host]}, {fun rabbit_mgmt_format:port/1, [port, peer_port]}, {fun rabbit_mgmt_format:protocol/1, [protocol]}, {fun rabbit_mgmt_format:amqp_table/1, [client_properties]}], State); diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_format.erl b/deps/rabbitmq_management/src/rabbit_mgmt_format.erl index 3a475781f6..6e02d24676 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_format.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_format.erl @@ -75,8 +75,8 @@ ip(IP) -> list_to_binary(rabbit_misc:ntoa(IP)). ipb(unknown) -> unknown; ipb(IP) -> list_to_binary(rabbit_misc:ntoab(IP)). -addr(Addr) when is_list(Addr); is_atom(Addr) -> print("~s", Addr); -addr(Addr) when is_tuple(Addr) -> ip(Addr). +addr(S) when is_list(S); is_atom(S); is_binary(S) -> print("~s", S); +addr(Addr) when is_tuple(Addr) -> ip(Addr). port(Port) when is_number(Port) -> Port; port(Port) -> print("~w", Port). From 4a20e395800b388a884fa71491eea03f2ec4a3f5 Mon Sep 17 00:00:00 2001 From: Simon MacMullen Date: Thu, 1 Nov 2012 14:29:41 +0000 Subject: [PATCH 6/6] Fix that too --- deps/rabbitmq_management/test/src/rabbit_mgmt_test_db.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/rabbitmq_management/test/src/rabbit_mgmt_test_db.erl b/deps/rabbitmq_management/test/src/rabbit_mgmt_test_db.erl index 2664bc42de..085a4736d8 100644 --- a/deps/rabbitmq_management/test/src/rabbit_mgmt_test_db.erl +++ b/deps/rabbitmq_management/test/src/rabbit_mgmt_test_db.erl @@ -262,7 +262,7 @@ find_conn_by_local_port(Port, Items) -> [Conn] = lists:filter( fun(Conn) -> pget(peer_port, Conn) == Port andalso - pget(peer_address, Conn) == <<"127.0.0.1">> + pget(peer_host, Conn) == <<"127.0.0.1">> end, Items), Conn.