TiniSpyServlet.java /* * Copyright (c) 1998-2005 Servertec. All Rights Reserved. * * This program 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; either version 2 of the License, or * (at your option) any later version. * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * THIS NOTICE MUST NOT BE ALTERED NOR REMOVED. * * CopyrightVersion 1.0 */ import java.util.Hashtable; import java.util.Enumeration; import java.util.Date; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletOutputStream; import javax.servlet.ServletException; import com.dalsemi.system.Clock; import com.dalsemi.system.TINIOS; import com.dalsemi.tininet.TININet; public final class TiniSpyServlet extends BaseSampleServlet { public final void service(HttpServletRequest _request, HttpServletResponse _response) throws ServletException, IOException { output_page("TINI Spy Servlet", _request, _response); } public final void output_body(ServletOutputStream out, HttpServletRequest _request, HttpServletResponse _response) throws ServletException, IOException { out.print("<table width=100% cellpadding=10 cellspacing=0 border=1>"); output_table_element(out, "Firmware Version", TINIOS.getTINIOSFirmwareVersion()); output_table_element(out, "Available Memory", String.valueOf(TINIOS.getFreeRAM())); StringBuffer sb = new StringBuffer(64); String[] processes = TINIOS.getTaskTable(); int length = processes.length; for(int i = 0; i < length; i++) { sb.append(processes[i]); sb.append("<br>"); } output_table_element(out, "Processes", sb.toString()); sb.setLength(0); long uptime = TINIOS.uptimeMillis(); uptime /= 1000; sb.append(uptime / (60 * 60)); sb.append(':'); sb.append((uptime % (60 * 60)) / 60); sb.append(':'); sb.append(uptime % 60); output_table_element(out, "Up Time", sb.toString()); sb.setLength(0); output_table_element(out, "Current Time", new Date().toString()); output_table_element(out, "Shell Name", TINIOS.getShellName()); output_table_element(out, "Shell Version", TINIOS.getShellVersion()); output_table_element(out, "User ID", String.valueOf(TINIOS.getCurrentUID())); output_table_element(out, "User Name", TINIOS.getCurrentUserName()); Hashtable ht = TINIOS.getCurrentEnvironment(); output_table_element(out, "Current Directory", System.getProperty("user.dir")); output_table_element(out, "Host Name", TININet.getHostname()); output_table_element(out, "Domain Name", TININet.getDomainname()); output_table_element(out, "IP Address", TININet.getIPAddress()); output_table_element(out, "Default Gateway", TININet.getGatewayIP()); output_table_element(out, "Subnet Mask", TININet.getSubnetMask()); output_table_element(out, "Ethernet Address", TININet.getEthernetAddress()); output_table_element(out, "Primary DNS", TININet.getPrimaryDNS()); output_table_element(out, "Secondary DNS", TININet.getSecondaryDNS()); sb.append(TININet.getDNSTimeout()); sb.append(" ms"); output_table_element(out, "DNS Timeout", sb.toString()); output_table_element(out, "DHCP Server", TININet.getDHCPServerIP()); output_table_element(out, "Mailhost", TININet.getMailhost()); out.print("</table>"); } } ================================================== BaseSampleServlet.java /* * Copyright (c) 1998-2005 Servertec. All Rights Reserved. * * This program 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; either version 2 of the License, or * (at your option) any later version. * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * THIS NOTICE MUST NOT BE ALTERED NOR REMOVED. * * CopyrightVersion 1.0 */ import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletOutputStream; import javax.servlet.ServletException; public abstract class BaseSampleServlet extends HttpServlet { public String title; public abstract void output_body(ServletOutputStream out, HttpServletRequest _request, HttpServletResponse _response) throws ServletException, IOException; public void output_page(String title, HttpServletRequest _request, HttpServletResponse _response) throws ServletException, IOException { _response.setContentType("text/html"); ServletOutputStream out = _response.getOutputStream(); out.print("<html><head><title>"); out.print(title); out.print("</title></head><body>"); out.print("<h1>"); out.print(title); out.print("</h1>"); out.print("<hr>"); output_body(out, _request, _response); out.print("</body></html>"); out.close(); } public static void output_table_element_header(ServletOutputStream out, String key) throws IOException { out.print("<tr valign=top><td width=30%><b>"); out.print(key); out.print(":</b></td><td><lit>"); } public static void output_table_element_footer(ServletOutputStream out) throws IOException { out.print("</lit></td></tr>"); } public static void output_table_element(ServletOutputStream out, String key, String value) throws IOException { output_table_element_header(out, key); out.print((value==null) ? "" : value); output_table_element_footer(out); } }