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.16 by pcg, Sat Mar 5 19:13:15 2005 UTC vs.
Revision 1.22 by pcg, Tue Dec 4 15:01:12 2007 UTC

14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details. 15 GNU General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with gvpe; if not, write to the Free Software 18 along with gvpe; if not, write to the Free Software
19 Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20*/ 20*/
21 21
22#include "config.h" 22#include "config.h"
23 23
24#include <netdb.h> 24#include <netdb.h>
25 25
26#include "gettext.h" 26#include "gettext.h"
27 27
28#include "sockinfo.h" 28#include "sockinfo.h"
29#include "slog.h" 29#include "slog.h"
30
31#include <cstring>
32#include <cstdio>
30 33
31// all ipv4-based protocols 34// all ipv4-based protocols
32#define PROTv4 (PROT_UDPv4 | PROT_TCPv4 | PROT_ICMPv4 | PROT_IPv4 | PROT_DNSv4) 35#define PROTv4 (PROT_UDPv4 | PROT_TCPv4 | PROT_ICMPv4 | PROT_IPv4 | PROT_DNSv4)
33 36
34void sockinfo::set (const sockaddr_in *sa, u8 prot_) 37void sockinfo::set (const sockaddr_in *sa, u8 prot_)
63void 66void
64sockinfo::set (const conf_node *conf, u8 prot_) 67sockinfo::set (const conf_node *conf, u8 prot_)
65{ 68{
66 if (prot_ == PROT_DNSv4) 69 if (prot_ == PROT_DNSv4)
67 { 70 {
68 host = 0x01010101; port = htons (conf->id); prot = prot_; 71 host = htonl (conf->id); port = 0; prot = prot_;
69 } 72 }
70 else 73 else
71 set (conf->hostname, 74 set (conf->hostname,
72 prot_ == PROT_UDPv4 ? conf->udp_port 75 prot_ == PROT_UDPv4 ? conf->udp_port
73 : prot_ == PROT_TCPv4 ? conf->tcp_port 76 : prot_ == PROT_TCPv4 ? conf->tcp_port
171 { 174 {
172 prot = prot_; 175 prot = prot_;
173 port = htons (conf->tcp_port); 176 port = htons (conf->tcp_port);
174 return true; 177 return true;
175 } 178 }
176
177#if ENABLE_DNS
178 if (conf
179 && prot_ & PROT_DNSv4
180 && conf->protocols & PROT_DNSv4
181 && conf->dns_port)
182 {
183 set (::conf.dns_forw_host, ::conf.dns_forw_port, prot_);
184 return true;
185 }
186#endif
187 } 179 }
188 180
189 return false; 181 return false;
190} 182}
191 183

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines