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

Comparing HostUpdate/Host.cpp (file contents):
Revision 15 by Douglas Thrift, 2003-11-09T16:51:42-08:00 vs.
Revision 900 by douglas, 2007-04-29T02:26:40-07:00

# Line 6 | Line 6
6  
7   #include "Host.hpp"
8  
9 < #ifndef _WIN32
10 <
11 < static char slash = '/';
12 <
13 < #else
14 <
15 < static char slash = '\\';
16 <
17 < #endif
18 <
19 < Host::Host(const string& host, const string& name, const string& address, const
20 <        string& platform)
9 > Host::Host(const std::string& host, const std::string& name, const std::string& address, const std::string& platform)
10   {
11 +        ::memset(&this->address, 0, sizeof(in_addr));
12 +
13   #ifdef _WIN32
14          if (count == 0)
15 <        {
25 <                if (WSAStartup(MAKEWORD(2, 0), &data) != 0)
15 >                if (::WSAStartup(MAKEWORD(2, 0), &data) != 0)
16                  {
17 <                        cerr << "Host(): WSAStartup()\n";
18 <                        exit(1);
17 >                        std::cerr << "Host(): WSAStartup()\n";
18 >
19 >                        ::exit(1);
20                  }
30        }
21  
22          count++;
23   #endif
24  
25          setHost(host);
26 <        if (name != "") setName(name, address == "");
27 <        if (address != "") setAddress(address, name == "");
26 >
27 >        if (name != "")
28 >                setName(name, address == "");
29 >
30 >        if (address != "")
31 >                setAddress(address, name == "");
32 >
33          setPlatform(platform);
34   }
35  
# Line 44 | Line 39 | Host::~Host()
39          count--;
40  
41          if (count == 0)
42 <        {
48 <                if (WSACleanup() != 0)
42 >                if (::WSACleanup() != 0)
43                  {
44 <                        cerr << "~Host(): WSACleanup()\n";
45 <                        exit(1);
44 >                        std::cerr << "~Host(): WSACleanup()\n";
45 >
46 >                        ::exit(1);
47                  }
53        }
48   #endif
49   }
50  
51 < void Host::setName(const string& name, bool lookup)
51 > void Host::setName(const std::string& name, bool lookup)
52   {
53          this->name = name;
54  
55          if (lookup)
56          {
57 <                struct hostent* ent = gethostbyname(this->name.c_str());
57 >                struct ::hostent* ent(::gethostbyname(this->name.c_str()));
58  
59 <                memcpy(&address, *(ent->h_addr_list), ent->h_length);
59 >                ::memcpy(&address, *(ent->h_addr_list), ent->h_length);
60          }
61   }
62  
63 < void Host::setAddress(const string& address, bool lookup)
63 > void Host::setAddress(const std::string& address, bool lookup)
64   {
65 <        in_addr_t value = inet_addr(address.c_str());
65 >        ::in_addr_t value = ::inet_addr(address.c_str());
66  
67          if (value == INADDR_NONE)
68 <        {
75 <                cerr << "Host.setAddress(): INADDR_NONE\n";
76 <                exit(1);
77 <        }
68 >                std::cerr << "Host.setAddress(): INADDR_NONE\n";
69          else
70 <        {
80 <                memcpy(&this->address, &value, sizeof(in_addr_t));
81 <        }
70 >                ::memcpy(&this->address, &value, sizeof(::in_addr_t));
71  
72          if (lookup)
73          {
74 <                struct hostent* ent = gethostbyaddr((char*)(&this->address),
86 <                        sizeof(in_addr), AF_INET);
74 >                struct ::hostent* ent(::gethostbyaddr((char*)(&this->address), sizeof(in_addr), AF_INET));
75  
76 <                if (ent != NULL) name = ent->h_name;
76 >                if (ent != NULL)
77 >                        name = ent->h_name;
78          }
79   }
80  
81   bool Host::operator==(const Host& host) const
82   {
83          if (this->host == host.host)
95        {
84                  if (name == host.name)
85 <                {
98 <                        if (string(inet_ntoa(address)) == inet_ntoa(host.address))
99 <                        {
85 >                        if (std::string(::inet_ntoa(address)) == ::inet_ntoa(host.address))
86                                  return platform == host.platform;
101                        }
87                          else
103                        {
88                                  return false;
105                        }
106                }
89                  else
108                {
90                          return false;
110                }
111        }
91          else
113        {
92                  return false;
115        }
93   }
94  
95   Host Host::operator++()
96   {
97 <        string file = string("hosts") + slash + host;
98 <
122 <        ifstream fin(file.c_str());
97 >        std::string file(std::string("hosts") + slash + host);
98 >        std::ifstream fin(file.c_str());
99  
100          if (fin.is_open())
101          {
102 <                getline(fin, name);
102 >                std::getline(fin, name);
103 >
104 >                std::string address;
105  
106 <                string address;
129 <                
130 <                getline(fin, address);
106 >                std::getline(fin, address);
107  
108 <                in_addr_t value = inet_addr(address.c_str());
108 >                ::in_addr_t value(::inet_addr(address.c_str()));
109  
110                  if (value == INADDR_NONE)
111 <                {
136 <                        cerr << "Host.operator++(): INADDR_NONE\n";
137 <                        exit(1);
138 <                }
111 >                        std::cerr << "Host.operator++(): INADDR_NONE\n";
112                  else
113 <                {
141 <                        memcpy(&this->address, &value, sizeof(in_addr_t));
142 <                }
113 >                        ::memcpy(&this->address, &value, sizeof(in_addr_t));
114  
115 <                getline(fin, platform);
115 >                std::getline(fin, platform);
116                  fin.close();
117          }
118  
# Line 159 | Line 130 | Host Host::operator++(int)
130  
131   Host Host::operator--()
132   {
133 <        string file = string("hosts") + slash + host;
134 <        
135 <        ofstream fout(file.c_str());
136 <
137 <        fout << name << '\n'
167 <                << inet_ntoa(address) << '\n'
168 <                << platform << '\n';
133 >        std::string file = std::string("hosts") + slash + host;
134 >
135 >        std::ofstream fout(file.c_str());
136 >
137 >        fout << name << '\n' << ::inet_ntoa(address) << '\n' << platform << '\n';
138  
139          fout.close();
140  
# Line 183 | Line 152 | Host Host::operator--(int)
152  
153   #ifdef _WIN32
154  
155 < unsigned Host::count = 0;
155 > unsigned Host::count(0);
156   WSADATA Host::data;
157  
158   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines