ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/HostStatus/HostStatus.cpp
(Generate patch)

Comparing HostStatus/HostStatus.cpp (file contents):
Revision 29 by Douglas Thrift, 2003-11-14T12:44:58-08:00 vs.
Revision 37 by Douglas Thrift, 2003-11-15T15:12:56-08:00

# Line 5 | Line 5
5   // $Id$
6  
7   #include "HostStatus.hpp"
8 + #include "Host.hpp"
9  
10   int main(int argc, char* argv[])
11   {
# Line 15 | Line 16 | int main(int argc, char* argv[])
16  
17   HostStatus::HostStatus()
18   {
19 +        sputenv("TZ=:America/Los_Angeles");
20 +
21          string method = sgetenv("REQUEST_METHOD");
22  
23          parse(method);
# Line 25 | Line 28 | HostStatus::HostStatus()
28          {
29                  string format = itor->second;
30  
31 <                if (format == "t")
29 <                {
30 <                        this->format = table;
31 <                }
32 <                else
33 <                {
34 <                        this->format = page;
35 <                }
31 >                page = format != "t" ? true : false;
32          }
33  
34          display(method);
# Line 83 | Line 79 | void HostStatus::display(const string& m
79                          hostupdate << itor->first << '=' << itor->second << '&';
80                  }
81  
82 <                hostupdate << '\n';
82 >                hostupdate << '\n' << flush;
83 >        }
84 >
85 >        hostupdate.ignore(26);
86 >
87 >        list<Host> hosts;
88 >        bool done = false;
89 >
90 >        do
91 >        {
92 >                Host host;
93 >
94 >                hostupdate >> host;
95 >
96 >                hosts.push_back(host);
97 >
98 >                switch (hostupdate.peek())
99 >                {
100 >                case 'h':
101 >                case 'n':
102 >                case 'a':
103 >                case 'p':
104 >                case 's':
105 >                        break;
106 >                default:
107 >                        done = true;
108 >                        break;
109 >                }
110 >        }
111 >        while (!done && hostupdate.good());
112 >
113 >        if (page) header();
114 >
115 >        for (list<Host>::iterator itor = hosts.begin(); itor != hosts.end(); itor++)
116 >        {
117 >                Host host = *itor;
118 >
119 >                cout << host << flush;
120          }
121  
122 +        if (page) footer();
123 + }
124 +
125 + void HostStatus::header()
126 + {
127 +        cout << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\"\n"
128 +                << "\t\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
129 +                << "<html>\n"
130 +                << "<head>\n"
131 +                << "<link rel=\"StyleSheet\" href=\"../stylesheets/regular.css\" type="
132 +                << "\"text/css\">\n"
133 +                << "<title>Host Status</title>\n"
134 +                << "</head>\n"
135 +                << "<body>\n"
136 +                << "<h1 id=\"title\" class=\"center\">Host Status</h1>\n"
137 +                << "<table class=\"center\">\n";
138 + }
139 +
140 + void HostStatus::footer()
141 + {
142 +        cout << "</table>\n"
143 + /*              << "<pre>" << flush;
144 +
145 +        ipstream env("env");
146 +
147          do
148          {
149                  string line;
150  
151 <                getline(hostupdate, line);
151 >                getline(env, line);
152  
153                  cout << line << '\n';
154          }
155 <        while (hostupdate.good());
155 >        while (env.good());
156 >
157 >        cout << "</pre>\n"*/
158 >                << "</html>\n";
159   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines