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

Comparing HostUpdate/HostUpdate.cpp (file contents):
Revision 9 by Douglas Thrift, 2003-11-05T22:59:04-08:00 vs.
Revision 12 by Douglas Thrift, 2003-11-06T23:43:01-08:00

# Line 16 | Line 16 | int main(int argc, char* argv[])
16  
17   HostUpdate::HostUpdate()
18   {
19 +        struct stat* hosts = new struct stat;
20 +
21 +        if (stat("hosts", hosts) != 0)
22 +        {
23 +                mkdir("hosts");
24 +        }
25 +
26 +        delete [] hosts;
27 +
28 +        chdir("hosts");
29 +
30          CgiEnvironment env = cgi.getEnvironment();
31  
32 <        cout << "Location: " << (env.usingHTTPS() ? "https" : "http") << "://"
33 <                << env.getServerName() << ":" << env.getServerPort() << "/\n\n";
32 >        string agent = env.getUserAgent();
33 >        string method = env.getRequestMethod();
34  
35 <        form_iterator itor = cgi["host"];
36 <        FormEntry host = *itor;
35 >        if (agent.find("Host Update/") == 0 && method == "GET" && agent.find(" (")
36 >                != string::npos && agent.find(") libwww-perl/") != string::npos)
37 >        {
38 >                update(env, agent);
39 >        }
40 >        else
41 >        {
42 >                display(env);
43 >        }
44   }
45  
46   HostUpdate::~HostUpdate()
47   {
48 +        //
49 + }
50 +
51 + void HostUpdate::update(CgiEnvironment& env, const string& agent)
52 + {
53 +        cout << "Content-Type: text/plain\n\n";
54 +
55 +        vector<FormEntry> entries;
56 +
57 +        if (!cgi.getElement("host", entries)) return;
58 +        if (entries[0].isEmpty()) return;
59 +
60 +        string host = entries[0].getStrippedValue();
61 +        string name = env.getRemoteHost();
62 +        string address = env.getRemoteAddr();
63 +
64 +        if (name == address) name = "";
65 +
66 +        string::size_type begin = agent.find('(') + 1, end = agent.find(begin, ')');
67 +        string platform = agent.substr(begin, end - begin);
68 + }
69 +
70 + void HostUpdate::display(CgiEnvironment& env)
71 + {
72 +        //
73   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines