Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vsnet_address.cpp
Go to the documentation of this file.
1 #include <config.h>
2 
3 #include "vsnet_address.h"
4 #include "vsnet_oss.h"
5 
6 AddressIP::AddressIP( const AddressIP &orig, unsigned short port )
7 {
8  memcpy( this, &orig, sizeof (AddressIP) );
9  this->sin_port = htons( port );
10 }
11 
12 AddressIP::AddressIP( const char *address, unsigned short port )
13 {
14  memset( this, 0, sizeof (AddressIP) );
15  VsnetOSS::inet_aton( address, &this->sin_addr );
16  this->sin_port = htons( port );
17 }
18 
19 std::ostream&operator<<( std::ostream &ostr, const AddressIP &adr )
20 {
21  ostr<<inet_ntoa( adr.sin_addr )<<":"<<ntohs( adr.sin_port );
22  return ostr;
23 }
24 
26 {
27  std::cout<<*this<<std::endl;
28 }
29 
30 const char* AddressIP::ipadr() const
31 {
32  return inet_ntoa( sin_addr );
33 }
34 
35 unsigned long AddressIP::inaddr() const
36 {
37  return sin_addr.s_addr;
38 }
39 
40 bool operator==( const AddressIP &l, const AddressIP &r )
41 {
42  return !memcmp( (sockaddr_in*) &l, (sockaddr_in*) &r, sizeof (sockaddr_in) );
43 }
44 
45 bool operator!=( const AddressIP &l, const AddressIP &r )
46 {
47  return memcmp( (sockaddr_in*) &l, (sockaddr_in*) &r, sizeof (sockaddr_in) );
48 }
49 
50 bool operator<( const AddressIP &l, const AddressIP &r )
51 {
52  return l.inaddr() < r.inaddr();
53 }
54