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

Comparing gvpe/src/sockinfo.C (file contents):
Revision 1.25 by root, Thu Mar 24 21:52:49 2011 UTC vs.
Revision 1.26 by root, Sat Dec 17 22:05:34 2011 UTC

40 40
41#include <cstring> 41#include <cstring>
42#include <cstdio> 42#include <cstdio>
43 43
44// all ipv4-based protocols 44// all ipv4-based protocols
45#define PROTv4 (PROT_UDPv4 | PROT_TCPv4 | PROT_ICMPv4 | PROT_IPv4 | PROT_DNSv4) 45#define PROTv4 (PROT_UDPv4 | PROT_TCPv4 | PROT_ICMPv4 | PROT_IPv4 | PROT_DNSv4 | PROT_IPv42)
46 46
47void 47void
48sockinfo::set (const sockaddr_in *sa, u8 prot_) 48sockinfo::set (const sockaddr_in *sa, u8 prot_)
49{ 49{
50 host = sa->sin_addr.s_addr; 50 host = sa->sin_addr.s_addr;
51 port = prot_ & (PROT_IPv4 | PROT_ICMPv4) ? 0 : sa->sin_port; 51 port = prot_ & (PROT_IPv4 | PROT_ICMPv4 | PROT_IPv42) ? 0 : sa->sin_port;
52 prot = prot_; 52 prot = prot_;
53} 53}
54 54
55void 55void
56sockinfo::set (const char *hostname, u16 port_, u8 prot_) 56sockinfo::set (const char *hostname, u16 port_, u8 prot_)
127u8 127u8
128sockinfo::supported_protocols (conf_node *conf) 128sockinfo::supported_protocols (conf_node *conf)
129{ 129{
130 u8 protocols = prot; 130 u8 protocols = prot;
131 131
132 if (prot & (PROT_IPv4 | PROT_ICMPv4 | PROT_UDPv4 | PROT_TCPv4)) 132 if (prot & (PROT_IPv4 | PROT_ICMPv4 | PROT_UDPv4 | PROT_TCPv4 | PROT_IPv42))
133 protocols |= PROT_IPv4 | PROT_ICMPv4; 133 protocols |= PROT_IPv4 | PROT_ICMPv4 | PROT_IPv42;
134 134
135 if (conf && prot & PROTv4) 135 if (conf && prot & PROTv4)
136 { 136 {
137 if (conf->protocols & PROT_UDPv4 && conf->udp_port) 137 if (conf->protocols & PROT_UDPv4 && conf->udp_port)
138 protocols |= PROT_UDPv4; 138 protocols |= PROT_UDPv4;
154 return true; 154 return true;
155 155
156 if (prot & PROTv4 156 if (prot & PROTv4
157 && prot_ & PROTv4) 157 && prot_ & PROTv4)
158 { 158 {
159 if (prot_ & (PROT_IPv4 | PROT_ICMPv4)) 159 if (prot_ & (PROT_IPv4 | PROT_ICMPv4 | PROT_IPv42))
160 { 160 {
161 prot = prot_; 161 prot = prot_;
162 port = 0; 162 port = 0;
163 return true; 163 return true;
164 } 164 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines