<?vsp 
--  
--  $Id: vs_c_1_sample_1.vsp,v 1.2.2.1 2012/03/08 12:55:16 source Exp $
--  
--  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
--  project.
--  
--  Copyright (C) 1998-2012 OpenLink Software
--  
--  This project is free software; you can redistribute it and/or modify it
--  under the terms of the GNU General Public License as published by the
--  Free Software Foundation; only version 2 of the License, dated June 1991.
--  
--  This program is distributed in the hope that it will be useful, but
--  WITHOUT ANY WARRANTY; without even the implied warranty of
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
--  General Public License for more details.
--  
--  You should have received a copy of the GNU General Public License along
--  with this program; if not, write to the Free Software Foundation, Inc.,
--  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
--  
--  

 declare cli, el any;
 declare idx, len integer;
 declare ip, uri, pid, thisvsp varchar;
 thisvsp := aref(path,length(path)-1);
 if (get_keyword('uri', params, '') <> '')
   {
     ip := get_keyword('ip', params, '');
     uri := get_keyword('uri', params, '');
     pid := atoi (get_keyword('pid', params, '0'));
     http_kill (ip, uri, pid);
     http_header ('Location: vs_c_1_sample_1.vsp\r\n');
     http_request_status ('HTTP/1.1 302 Found');
     return(0);
   }
 cli := http_pending_req ();
 idx := 0;
 len := length (cli);
?>
<html>
<head>
  <link rel="stylesheet" type="text/css" href="../demo.css">
  <title>Web server control features</title>
  <meta name="DESCRIPTION" content="HTTP clients status">
  <meta HTTP-EQUIV="REFRESH" content="5; URL=<?=thisvsp?>">
</head>
<body>

<H3>Controlling the pending HTTP requests</H3>
<table class="tableentry" BORDER="1">
<tr><td colspan="4">To drop any active tutorial connection, click the thread ID</td></tr>
<tr>
  <th>#</th>
  <th>IP address</th>
  <th>URL</th>
  <th>ID&nbsp;to&nbsp;kill</th>
</tr>
<?vsp
  while (idx < len)
    {
      el := aref (cli, idx);
      ip := aref (el, 0);
      uri := aref (el, 1);
      pid := aref (el, 2);
      if (uri like '/tutorial/%')
	{
?>
      <tr>
        <td><?=idx?></td>
        <td><?=ip?></td>
        <td><?=uri?></td>
        <td><a href="<?=thisvsp?>?ip=<?=ip?>&uri=<?=uri?>&pid=<?=pid?>"><?=pid?></a></td>
      </tr>
<?vsp
	}
      idx := idx + 1;
    }
?>
</table>
</body>
</html>
