ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/src/sockinfo.h
(Generate patch)

Comparing gvpe/src/sockinfo.h (file contents):
Revision 1.13 by pcg, Fri Jun 3 05:07:31 2005 UTC vs.
Revision 1.14 by pcg, Sun Dec 2 00:09:36 2007 UTC

27#include "conf.h" 27#include "conf.h"
28 28
29// encapsulate one or more network addresses. this structure 29// encapsulate one or more network addresses. this structure
30// gets transferred over the wire, so be careful with endianness etc. 30// gets transferred over the wire, so be careful with endianness etc.
31struct sockinfo 31struct sockinfo
32{
33 u32 host;
34 u16 port;
35 u8 prot;
36 u8 pad1;
37
38 void set (const sockaddr_in *sa, u8 prot_);
39 void set (const conf_node *conf, u8 prot_);
40 void set (const char *hostname, u16 port_, u8 prot_);
41
42 // return the supported protocols
43 u8 supported_protocols (conf_node *conf = 0);
44 bool upgrade_protocol (u8 prot_, conf_node *conf = 0);
45
46 operator const char *() const;
47
48 const sockaddr *sav4 () const;
49 const socklen_t salenv4 () const
32 { 50 {
33 u32 host; 51 return sizeof (sockaddr_in);
34 u16 port; 52 }
35 u8 prot;
36 u8 pad1;
37 53
38 void set (const sockaddr_in *sa, u8 prot_); 54 const char *ntoa () const;
39 void set (const conf_node *conf, u8 prot_);
40 void set (const char *hostname, u16 port_, u8 prot_);
41 55
42 // return the supported protocols 56 bool valid () const
43 u8 supported_protocols (conf_node *conf = 0); 57 {
44 bool upgrade_protocol (u8 prot_, conf_node *conf = 0); 58 return prot != 0 && host != 0;
59 }
45 60
46 operator const char *() const; 61 sockinfo() { prot = 0; }
47 62
48 const sockaddr *sav4 () const;
49 const socklen_t salenv4 () const
50 {
51 return sizeof (sockaddr_in);
52 }
53
54 const char *ntoa () const;
55
56 bool valid () const
57 {
58 return prot != 0 && host != 0;
59 }
60
61 sockinfo() { prot = 0; }
62
63 sockinfo(const char *hostname, u16 port, u8 prot) { set (hostname, port, prot); } 63 sockinfo(const char *hostname, u16 port, u8 prot) { set (hostname, port, prot); }
64 sockinfo(const sockaddr_in &sa, u8 prot) { set (&sa, prot); } 64 sockinfo(const sockaddr_in &sa, u8 prot) { set (&sa, prot); }
65 sockinfo(const conf_node *conf, u8 prot) { set (conf, prot); } 65 sockinfo(const conf_node *conf, u8 prot) { set (conf, prot); }
66 }; 66};
67 67
68bool operator == (const sockinfo &a, const sockinfo &b); 68bool operator == (const sockinfo &a, const sockinfo &b);
69bool operator < (const sockinfo &a, const sockinfo &b); 69bool operator < (const sockinfo &a, const sockinfo &b);
70 70
71inline bool operator != (const sockinfo &a, const sockinfo &b) 71inline bool operator != (const sockinfo &a, const sockinfo &b)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines