diff options
author | Stephen Beaver <sbeaver@netgate.com> | 2015-11-09 15:21:11 -0500 |
---|---|---|
committer | Stephen Beaver <sbeaver@netgate.com> | 2015-11-09 15:21:53 -0500 |
commit | b9a5448f314e05e808f8847fd2845d403a79bfe5 (patch) | |
tree | 9d0c79d11947edea13fb16d8ebb914afe0dd949e /src/usr/local/www/diag_sockets.php | |
parent | 2804a9323688246738046d05cbd878848d24d8c9 (diff) | |
download | pfsense-b9a5448f314e05e808f8847fd2845d403a79bfe5.zip pfsense-b9a5448f314e05e808f8847fd2845d403a79bfe5.tar.gz |
Fixed #5404
Diffstat (limited to 'src/usr/local/www/diag_sockets.php')
-rw-r--r-- | src/usr/local/www/diag_sockets.php | 168 |
1 files changed, 78 insertions, 90 deletions
diff --git a/src/usr/local/www/diag_sockets.php b/src/usr/local/www/diag_sockets.php index 46d63fe..7b70a11 100644 --- a/src/usr/local/www/diag_sockets.php +++ b/src/usr/local/www/diag_sockets.php @@ -3,53 +3,53 @@ diag_sockets.php */ /* ==================================================================== - * Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. All rights reserved. + * Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. All rights reserved. * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. * - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * "This product includes software developed by the pfSense Project - * for use in the pfSense software distribution. (http://www.pfsense.org/). + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgment: + * "This product includes software developed by the pfSense Project + * for use in the pfSense software distribution. (http://www.pfsense.org/). * - * 4. The names "pfSense" and "pfSense Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * coreteam@pfsense.org. + * 4. The names "pfSense" and "pfSense Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * coreteam@pfsense.org. * - * 5. Products derived from this software may not be called "pfSense" - * nor may "pfSense" appear in their names without prior written - * permission of the Electric Sheep Fencing, LLC. + * 5. Products derived from this software may not be called "pfSense" + * nor may "pfSense" appear in their names without prior written + * permission of the Electric Sheep Fencing, LLC. * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: * - * "This product includes software developed by the pfSense Project - * for use in the pfSense software distribution (http://www.pfsense.org/). + * "This product includes software developed by the pfSense Project + * for use in the pfSense software distribution (http://www.pfsense.org/). * - * THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. + * THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. * - * ==================================================================== + * ==================================================================== * */ @@ -69,23 +69,14 @@ $pgtitle = array(gettext("Diagnostics"), gettext("Sockets")); include('head.inc'); -?> - -<?php include("fbegin.inc"); - $showAll = isset($_GET['showAll']); $showAllText = $showAll ? "Show only listening sockets" : "Show all socket connections"; $showAllOption = $showAll ? "" : "?showAll"; ?> - -<div class="panel panel-default"> - <div class="panel-heading"><h2 class="panel-title">System socket information for both IPv4 and IPv6</h2></div> - <div class="panel-body"> - -(Click <a href="#about">here </a>for explanation of the information listed for each socket) <br /><br /> -<input class="btn btn-info btn-xs" type="button" value="<?=$showAllText?>" onclick="window.location.href='diag_sockets.php<?=$showAllOption?>'"/> - +<input class="btn btn-info btn-sm" type="button" value="<?=$showAllText?>" onclick="window.location.href='diag_sockets.php<?=$showAllOption?>'"/> +<br /> +<br /> <?php if (isset($_GET['showAll'])) { @@ -95,75 +86,72 @@ $showAllOption = $showAll ? "" : "?showAll"; $internet4 = shell_exec('sockstat -4l'); $internet6 = shell_exec('sockstat -6l'); } + + foreach (array(&$internet4, &$internet6) as $tabindex => $table) { $elements = ($tabindex == 0 ? 7 : 7); $name = ($tabindex == 0 ? 'IPv4' : 'IPv6'); ?> +<div class="panel panel-default"> + <div class="panel-heading"><h2 class="panel-title"><?=$name?> system socket information</h2></div> + <div class="panel-body"> <div class="table table-responsive"> <table class="table table-hover table-striped table-condensed"> <thead> - <tr> - <th> - <?=$name?> - </th> - </tr> - </thead> - <tbody> - <?php foreach (explode("\n", $table) as $i => $line) { - if ($i == 0) - $class = 'info'; - else - $class = ''; - if (trim($line) == "") continue; - print("<tr>\n"); $j = 0; foreach (explode(' ', $line) as $entry) { - if ($entry == '' || $entry == "ADDRESS") continue; - if ($i == 0) + if ($entry == '' || $entry == "ADDRESS") + continue; + + if ($i == 0) { print("<th class=\"$class\">$entry</th>\n"); - else + } + else { print("<td class=\"$class\">$entry</td>\n"); + } $j++; } print("</tr>\n"); + if($i == 0) { + print("</thead>\n"); + print("<tbody>\n"); + } } ?> </tbody> </table> </div> + </div> +</div> <?php } ?> - </div> - <a name="about"></a> - <div class="alert alert-success" role="alert"> - <div class="panel panel-default"> - <div class="panel-heading"><h2 class="panel-title">Socket information - explanation</h2></div> - <div class="panel-body"> - This page shows the output for the commands: "sockstat -4lL" and "sockstat -6lL".<br /> - Or in case of showing all sockets the output for: "sockstat -4" and "sockstat -6".<br /> - <br /> - The information listed for each socket is: - <br /><br /> - <dl class="dl-horizontal responsive"> - <dt>USER</dt> <dd>The user who owns the socket.</dd> - <dt>COMMAND</dt> <dd>The command which holds the socket.</dd> - <dt>PID</dt> <dd>The process ID of the command which holds the socket.</dd> - <dt>FD</dt> <dd>The file descriptor number of the socket.</dd> - <dt>PROTO</dt> <dd>The transport protocol associated with the socket for Internet sockets, or the type of socket (stream or data-gram) for UNIX sockets.</dd> - <dt>ADDRESS</dt> <dd>(UNIX sockets only) For bound sockets, this is the file-name of the socket. For other sockets, it is the name, PID and file descriptor number of the peer, or ``(none)'' if the socket is neither bound nor connected.</dd> - <dt>LOCAL ADDRESS</dt> <dd>(Internet sockets only) The address the local end of the socket is bound to (see getsockname(2)).</dd> - <dt>FOREIGN ADDRESS</dt><dd>(Internet sockets only) The address the foreign end of the socket is bound to (see getpeername(2)).</dd> - </dl> - </div> - </div> - </div> + +<div> +<div id="infoblock"> +<?php +print_info_box(gettext('Socket information - explanation.') . '<br /><br />' . +gettext('This page shows the output for the commands: "sockstat -4lL" and "sockstat -6lL".' . '<br />' . + 'Or in case of showing all sockets the output for: "sockstat -4" and "sockstat -6".' . '<br />' . '<br />' . +'The information listed for each socket is:' . '<br /><br />' . +' <dl class="dl-horizontal responsive">' . + '<dt>USER</dt> <dd>The user who owns the socket.</dd>' . + '<dt>COMMAND</dt> <dd>The command which holds the socket.</dd>' . + '<dt>PID</dt> <dd>The process ID of the command which holds the socket.</dd>' . + '<dt>FD</dt> <dd>The file descriptor number of the socket.</dd>' . + '<dt>PROTO</dt> <dd>The transport protocol associated with the socket for Internet sockets, or the type of socket (stream or data-gram) for UNIX sockets.</dd>' . + '<dt>ADDRESS</dt> <dd>(UNIX sockets only) For bound sockets, this is the file-name of the socket. For other sockets, it is the name, PID and file descriptor number of the peer, or "(none)" if the socket is neither bound nor connected.</dd>' . + '<dt>LOCAL ADDRESS</dt> <dd>(Internet sockets only) The address the local end of the socket is bound to (see getsockname(2)).</dd>' . + '<dt>FOREIGN ADDRESS</dt><dd>(Internet sockets only) The address the foreign end of the socket is bound to (see getpeername(2)).</dd>' . + '</dl>'), info); +?> +</div> </div> <?php |