Changeset 8330
- Timestamp:
- 03/04/12 19:36:05 (15 months ago)
- Location:
- luci/trunk/modules/admin-full/luasrc
- Files:
-
- 2 modified
-
controller/admin/status.lua (modified) (2 diffs)
-
view/admin_status/connections.htm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
luci/trunk/modules/admin-full/luasrc/controller/admin/status.lua
r7731 r8330 38 38 entry({"admin", "status", "realtime", "connections"}, template("admin_status/connections"), _("Connections"), 4).leaf = true 39 39 entry({"admin", "status", "realtime", "connections_status"}, call("action_connections")).leaf = true 40 41 entry({"admin", "status", "nameinfo"}, call("action_nameinfo")).leaf = true 40 42 end 41 43 … … 154 156 luci.http.write(" }") 155 157 end 158 159 function action_nameinfo(...) 160 local i 161 local rv = { } 162 for i = 1, select('#', ...) do 163 local addr = select(i, ...) 164 local fqdn = nixio.getnameinfo(addr) 165 rv[addr] = fqdn or (addr:match(":") and "[%s]" % addr or addr) 166 end 167 168 luci.http.prepare_content("application/json") 169 luci.http.write_json(rv) 170 end -
luci/trunk/modules/admin-full/luasrc/view/admin_status/connections.htm
r8328 r8330 59 59 60 60 var conn_table; 61 62 var dns_cache = { }; 61 63 62 64 … … 150 152 conn_table.rows[0].parentNode.deleteRow(-1); 151 153 154 155 var lookup_queue = [ ]; 156 157 conn.sort(function(a, b) { 158 return b.bytes - a.bytes; 159 }); 160 152 161 for (var i = 0; i < conn.length; i++) 153 162 { 154 163 var c = conn[i]; 155 164 var tr = conn_table.rows[0].parentNode.insertRow(-1); 156 tr.className = 'cbi-section-table-row cbi-rowstyle-' + (1 + (i % 2)); 165 tr.className = 'cbi-section-table-row cbi-rowstyle-' + (1 + (i % 2)); 166 167 if (!dns_cache[c.src]) 168 lookup_queue.push(c.src); 169 170 if (!dns_cache[c.dst]) 171 lookup_queue.push(c.dst); 172 173 var src = dns_cache[c.src] || (c.layer3 == 'ipv6' ? '[' + c.src + ']' : c.src); 174 var dst = dns_cache[c.dst] || (c.layer3 == 'ipv6' ? '[' + c.dst + ']' : c.dst); 157 175 158 176 tr.insertCell(-1).innerHTML = c.layer3.toUpperCase(); 159 177 tr.insertCell(-1).innerHTML = c.layer4.toUpperCase(); 160 tr.insertCell(-1).innerHTML = String.format(c.layer3 == 'ipv6' ? '[%s]:%d' : '%s:%d', c.src, c.sport); 161 tr.insertCell(-1).innerHTML = String.format(c.layer3 == 'ipv6' ? '[%s]:%d' : '%s:%d', c.dst, c.dport); 162 tr.insertCell(-1).innerHTML = String.format('%1024.2mB (%d <%:Pkts.%>)', c.bytes, c.packets); 178 tr.insertCell(-1).innerHTML = String.format('%s:%d', src, c.sport); 179 tr.insertCell(-1).innerHTML = String.format('%s:%d', dst, c.dport); 180 181 var traf = tr.insertCell(-1); 182 traf.style.whiteSpace = 'nowrap'; 183 traf.innerHTML = String.format('%1024.2mB (%d <%:Pkts.%>)', c.bytes, c.packets); 163 184 } 185 186 if (lookup_queue.length > 0) 187 XHR.get('<%=build_url("admin/status/nameinfo")%>/' + lookup_queue.slice(0, 100).join('/'), null, 188 function(x, json) 189 { 190 for (var addr in json) 191 dns_cache[addr] = json[addr]; 192 } 193 ); 164 194 165 195
