home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2005 July / PCpro_2005_07.ISO / files / internet / JanaServer / JanaSetup.exe / admin / monitor.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-10-15  |  7.6 KB  |  373 lines

  1. import java.applet.Applet;
  2. import java.awt.BorderLayout;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dimension;
  7. import java.awt.Font;
  8. import java.awt.Graphics;
  9. import java.awt.Label;
  10. import java.awt.List;
  11. import java.awt.Panel;
  12. import java.awt.event.ActionEvent;
  13. import java.awt.event.ActionListener;
  14. import java.io.DataInputStream;
  15. import java.io.DataOutputStream;
  16. import java.io.IOException;
  17. import java.net.Socket;
  18. import java.net.SocketException;
  19. import java.net.UnknownHostException;
  20. import java.text.DateFormat;
  21. import java.text.NumberFormat;
  22. import java.util.Calendar;
  23. import java.util.Date;
  24. import java.util.EventObject;
  25.  
  26. public class monitor extends Applet implements ActionListener, Runnable {
  27.    Panel Panel1 = new Panel();
  28.    Panel Panel2 = new Panel();
  29.    Label label1 = new Label();
  30.    Label label2 = new Label();
  31.    Label label3 = new Label();
  32.    List ListField1 = new List(8, false);
  33.    Font font = new Font("SansSerif", 1, 12);
  34.    private Thread clockThread = null;
  35.    // $FF: renamed from: a java.awt.Font
  36.    Font field_0 = new Font("Helvetica", 0, 11);
  37.    Color cFor;
  38.    Color cBack;
  39.    String backgroundValue;
  40.    String foregroundValue;
  41.    String HostAddrValue;
  42.    String strDisplay = "Ok";
  43.    String strNoConn;
  44.    String strRasIp;
  45.    String strTotalRasTime;
  46.    String strUntilDiscon;
  47.    String strTextVerbunden;
  48.    String strTextNichtVerbunden;
  49.    String strTextSicherheit;
  50.    String strTextDunConnection;
  51.    String strTextSendMail;
  52.    Socket sok;
  53.    DataInputStream dataIn;
  54.    DataOutputStream dataOut;
  55.    int iAnzahlConnections;
  56.    int iTimeUntilDisconnet;
  57.    int lTotalRasTime;
  58.    String strDfueIp = "0.0.0.0";
  59.    boolean bShowLog = false;
  60.  
  61.    public void actionPerformed(ActionEvent var1) {
  62.       Object var2 = ((EventObject)var1).getSource();
  63.    }
  64.  
  65.    public void init() {
  66.       this.usePageParams();
  67.       this.label1.setAlignment(1);
  68.       this.label2.setAlignment(1);
  69.       this.label2.setText(this.strTextNichtVerbunden);
  70.       ((Container)this).setLayout(new BorderLayout());
  71.       this.Panel2.setLayout(new BorderLayout());
  72.       ((Container)this).add("North", this.Panel1);
  73.       ((Container)this).add("Center", this.Panel2);
  74.       this.Panel1.add(this.label3);
  75.       this.Panel2.add("North", this.label1);
  76.       this.Panel2.add("South", this.label2);
  77.       this.Panel2.add("Center", this.ListField1);
  78.       this.label1.setBackground(new Color(80, 80, 140));
  79.       this.label1.setForeground(new Color(255, 255, 255));
  80.       this.label1.setFont(this.font);
  81.       this.label2.setBackground(new Color(80, 80, 140));
  82.       this.label2.setForeground(new Color(255, 255, 255));
  83.       this.label2.setFont(this.font);
  84.       this.cFor = this.stringToColor(this.foregroundValue);
  85.       this.cBack = this.stringToColor(this.backgroundValue);
  86.    }
  87.  
  88.    void initConnection() {
  89.       try {
  90.          this.sok = new Socket(this.HostAddrValue, 4295);
  91.          this.dataIn = new DataInputStream(this.sok.getInputStream());
  92.          this.dataOut = new DataOutputStream(this.sok.getOutputStream());
  93.          this.label2.setText(this.strTextVerbunden);
  94.          this.dataOut.writeInt(1);
  95.          this.dataOut.flush();
  96.          if (this.clockThread == null) {
  97.             this.clockThread = new Thread(this, "Clock");
  98.             this.clockThread.start();
  99.          }
  100.       } catch (UnknownHostException var1) {
  101.          this.label2.setText(this.strTextNichtVerbunden);
  102.       } catch (IOException var2) {
  103.          this.label2.setText(this.strTextNichtVerbunden);
  104.       } catch (SecurityException var3) {
  105.          this.label2.setText(this.strTextSicherheit);
  106.       }
  107.  
  108.    }
  109.  
  110.    public void paint(Graphics var1) {
  111.       Calendar var2 = Calendar.getInstance();
  112.       Date var3 = var2.getTime();
  113.       DateFormat var4 = DateFormat.getTimeInstance();
  114.       int var5 = this.lTotalRasTime / 3600;
  115.       int var6 = this.lTotalRasTime % 3600;
  116.       int var7 = var6 / 60;
  117.       var6 %= 60;
  118.       NumberFormat var8 = NumberFormat.getInstance();
  119.       var8.setParseIntegerOnly(true);
  120.       var8.setMinimumIntegerDigits(2);
  121.       String var9 = var8.format((long)var5) + ":" + var8.format((long)var7) + ":" + var8.format((long)var6);
  122.       new String();
  123.       String var10;
  124.       if (this.iTimeUntilDisconnet == -1) {
  125.          var10 = this.strTextDunConnection;
  126.       } else if (this.iTimeUntilDisconnet == -2) {
  127.          var10 = this.strTextSendMail;
  128.       } else {
  129.          var5 = this.iTimeUntilDisconnet / 3600;
  130.          var6 = this.iTimeUntilDisconnet % 3600;
  131.          var7 = var6 / 60;
  132.          var6 %= 60;
  133.          var10 = var8.format((long)var5) + ":" + var8.format((long)var7) + ":" + var8.format((long)var6);
  134.       }
  135.  
  136.       Graphics var11 = this.Panel1.getGraphics();
  137.       var11.setFont(this.field_0);
  138.       Dimension var12 = this.Panel1.getSize();
  139.       var11.setColor(this.cBack);
  140.       var11.fillRect(155, 0, 100, var12.height);
  141.       var11.setColor(this.cFor);
  142.       var11.drawString(this.strNoConn, 5, 15);
  143.       var11.drawString(Integer.toString(this.iAnzahlConnections - 1), 155, 15);
  144.       var11.drawString(this.strRasIp, 5, 28);
  145.       var11.drawString(this.strDfueIp, 155, 28);
  146.       var11.setColor(this.cBack);
  147.       var11.fillRect(530, 0, var12.width - 530, var12.height);
  148.       var11.setColor(this.cFor);
  149.       var11.drawString(var4.format(var3), 595, 15);
  150.       var11.drawString(this.strTotalRasTime, 380, 15);
  151.       var11.drawString(var9, 530, 15);
  152.       var11.drawString(this.strUntilDiscon, 380, 28);
  153.       var11.drawString(var10, 530, 28);
  154.    }
  155.  
  156.    public void run() {
  157.       Thread var1 = Thread.currentThread();
  158.       int var2 = 0;
  159.  
  160.       while(this.clockThread == var1) {
  161.          try {
  162.             boolean var3 = false;
  163.             int var4 = 0;
  164.             if (this.dataIn != null) {
  165.                this.dataIn.mark(5);
  166.                var4 = this.dataIn.available();
  167.             }
  168.  
  169.             while(var4 >= 4) {
  170.                var2 = 0;
  171.                int var5 = this.dataIn.readInt();
  172.                var4 -= 4;
  173.                if (var5 == 1 && var4 >= 32) {
  174.                   this.iAnzahlConnections = this.dataIn.readInt();
  175.                   this.lTotalRasTime = this.dataIn.readInt();
  176.                   this.iTimeUntilDisconnet = this.dataIn.readInt();
  177.                   int var15 = this.dataIn.readInt();
  178.                   byte[] var16 = new byte[16];
  179.                   this.dataIn.read(var16, 0, 16);
  180.                   String var17 = new String(var16, 0, var15);
  181.                   this.strDfueIp = var17;
  182.                   var4 -= 32;
  183.                   this.dataIn.mark(5);
  184.                   var3 = true;
  185.                } else if (var5 == 2 && var4 >= 508) {
  186.                   int var6 = this.dataIn.readInt();
  187.                   byte[] var7 = new byte[504];
  188.                   this.dataIn.read(var7, 0, 504);
  189.                   if (var6 > 0) {
  190.                      int var8 = 0;
  191.  
  192.                      for(int var9 = 0; var9 < 503; ++var9) {
  193.                         if (var7[var9] == 13 || var7[var9] == 10 || var7[var9] == 0) {
  194.                            if (var9 - var8 != 0) {
  195.                               String var10 = new String(var7, var8, var9 - var8);
  196.                               this.ListField1.add(var10);
  197.                            }
  198.  
  199.                            var8 = var9 + 1;
  200.                            if (var7[var9] == 0 && var7[var9 + 1] == 0) {
  201.                               break;
  202.                            }
  203.                         }
  204.                      }
  205.  
  206.                      int var18 = this.ListField1.getItemCount();
  207.                      this.ListField1.makeVisible(var18 - 1);
  208.                      if (var18 > 2000) {
  209.                         for(int var11 = 9; var11 >= 0; --var11) {
  210.                            this.ListField1.delItem(var11);
  211.                         }
  212.                      }
  213.                   }
  214.  
  215.                   var4 -= 508;
  216.                   this.dataIn.mark(5);
  217.                } else {
  218.                   this.dataIn.reset();
  219.                }
  220.             }
  221.  
  222.             if (var3) {
  223.                if (this.strDfueIp.length() == 0) {
  224.                   this.strDfueIp = "0.0.0.0";
  225.                }
  226.  
  227.                ((Component)this).repaint();
  228.                this.dataOut.writeInt(1);
  229.                this.dataOut.flush();
  230.             } else if (var2 == 20) {
  231.                var2 = 0;
  232.                if (this.dataOut != null) {
  233.                   this.dataOut.writeInt(1);
  234.                   this.dataOut.flush();
  235.                } else {
  236.                   this.initConnection();
  237.                }
  238.             } else {
  239.                ++var2;
  240.             }
  241.  
  242.             Thread.sleep(100L);
  243.          } catch (SocketException var12) {
  244.             this.label2.setText(this.strTextVerbunden);
  245.             this.stopConnection();
  246.             this.initConnection();
  247.          } catch (IOException var13) {
  248.          } catch (InterruptedException var14) {
  249.          }
  250.       }
  251.  
  252.    }
  253.  
  254.    public void start() {
  255.       this.initConnection();
  256.    }
  257.  
  258.    public synchronized void stop() {
  259.       this.clockThread = null;
  260.       this.stopConnection();
  261.    }
  262.  
  263.    void stopConnection() {
  264.       try {
  265.          if (this.dataIn != null) {
  266.             this.dataIn.close();
  267.             this.dataIn = null;
  268.          }
  269.       } catch (Exception var3) {
  270.       }
  271.  
  272.       try {
  273.          if (this.dataOut != null) {
  274.             this.dataOut.close();
  275.             this.dataOut = null;
  276.          }
  277.       } catch (Exception var2) {
  278.       }
  279.  
  280.       try {
  281.          if (this.sok != null) {
  282.             this.sok.close();
  283.             this.sok = null;
  284.          }
  285.       } catch (Exception var1) {
  286.       }
  287.  
  288.    }
  289.  
  290.    private Color stringToColor(String var1) {
  291.       int var2 = Integer.decode("0x" + var1.substring(0, 2));
  292.       int var3 = Integer.decode("0x" + var1.substring(2, 4));
  293.       int var4 = Integer.decode("0x" + var1.substring(4, 6));
  294.       return new Color(var2, var3, var4);
  295.    }
  296.  
  297.    private void usePageParams() {
  298.       String var1 = ((Applet)this).getParameter("label");
  299.       this.backgroundValue = ((Applet)this).getParameter("background");
  300.       this.foregroundValue = ((Applet)this).getParameter("foreground");
  301.       this.HostAddrValue = ((Applet)this).getParameter("hostaddr");
  302.       this.strNoConn = ((Applet)this).getParameter("NoConn");
  303.       this.strRasIp = ((Applet)this).getParameter("RasIp");
  304.       this.strTotalRasTime = ((Applet)this).getParameter("TotalRasTime");
  305.       this.strUntilDiscon = ((Applet)this).getParameter("UntilDiscon");
  306.       this.strTextVerbunden = ((Applet)this).getParameter("TextVerbunden");
  307.       this.strTextNichtVerbunden = ((Applet)this).getParameter("TextNichtVerbunden");
  308.       this.strTextSicherheit = ((Applet)this).getParameter("TextSicherheit");
  309.       this.strTextDunConnection = ((Applet)this).getParameter("TextDunConnection");
  310.       this.strTextSendMail = ((Applet)this).getParameter("TextSendMail");
  311.       if (var1 == null) {
  312.          var1 = "Dieses JavaApplet befindet sich noch in der Entwicklung!";
  313.       }
  314.  
  315.       if (this.backgroundValue == null) {
  316.          this.backgroundValue = "C0C0C0";
  317.       }
  318.  
  319.       if (this.foregroundValue == null) {
  320.          this.foregroundValue = "000077";
  321.       }
  322.  
  323.       if (this.HostAddrValue == null) {
  324.          this.HostAddrValue = "127.0.0.1";
  325.       }
  326.  
  327.       if (this.strNoConn == null) {
  328.          this.strNoConn = "Anzahl Verbindungen: ";
  329.       }
  330.  
  331.       if (this.strRasIp == null) {
  332.          this.strRasIp = "IP-Adresse DF├£-Verbindung: ";
  333.       }
  334.  
  335.       if (this.strTotalRasTime == null) {
  336.          this.strTotalRasTime = "Totale DF├£ Zeit: ";
  337.       }
  338.  
  339.       if (this.strUntilDiscon == null) {
  340.          this.strUntilDiscon = "Zeit bis zum DF├£-Disconnect: ";
  341.       }
  342.  
  343.       if (this.strTextVerbunden == null) {
  344.          this.strTextVerbunden = "Zum Server verbunden!";
  345.       }
  346.  
  347.       if (this.strTextNichtVerbunden == null) {
  348.          this.strTextNichtVerbunden = "Konnte Verbindung zum Server nicht herstellen!";
  349.       }
  350.  
  351.       if (this.strTextSicherheit == null) {
  352.          this.strTextSicherheit = "Es ist eine Sicherheitsverletztung aufgetreten!";
  353.       }
  354.  
  355.       if (this.strTextDunConnection == null) {
  356.          this.strTextDunConnection = "Nicht verbunden!";
  357.       }
  358.  
  359.       if (this.strTextSendMail == null) {
  360.          this.strTextSendMail = "Versende E-Mail";
  361.       }
  362.  
  363.       this.label1.setText(var1);
  364.       ((Component)this).setBackground(this.stringToColor(this.backgroundValue));
  365.       ((Component)this).setForeground(this.stringToColor(this.foregroundValue));
  366.       int var2 = this.HostAddrValue.indexOf(58);
  367.       if (var2 > 0) {
  368.          this.HostAddrValue = this.HostAddrValue.substring(0, var2);
  369.       }
  370.  
  371.    }
  372. }
  373.