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

Comparing gvpe/src/vpn.C (file contents):
Revision 1.30 by pcg, Fri Mar 4 20:26:50 2005 UTC vs.
Revision 1.31 by pcg, Sat Mar 5 19:13:16 2005 UTC

238 return -1; 238 return -1;
239 239
240 // standard daemon practise... 240 // standard daemon practise...
241 { 241 {
242 int oval = 1; 242 int oval = 1;
243 setsockopt (tcpv4_fd, SOL_SOCKET, SO_REUSEADDR, &oval, sizeof oval); 243 setsockopt (dnsv4_fd, SOL_SOCKET, SO_REUSEADDR, &oval, sizeof oval);
244 } 244 }
245 245
246 sockinfo si (THISNODE, PROT_DNSv4); 246 sockinfo si (THISNODE->dns_hostname,
247 THISNODE->dns_hostname ? THISNODE->dns_port : 0,
248 PROT_DNSv4);
247 249
248 if (bind (dnsv4_fd, si.sav4 (), si.salenv4 ())) 250 if (bind (dnsv4_fd, si.sav4 (), si.salenv4 ()))
249 { 251 {
250 slog (L_ERR, _("can't bind dnsv4 on %s: %s"), (const char *)si, strerror (errno)); 252 slog (L_ERR, _("can't bind dnsv4 on %s: %s"), (const char *)si, strerror (errno));
251 exit (EXIT_FAILURE); 253 exit (EXIT_FAILURE);
395 else 397 else
396 c->recv_vpn_packet (pkt, rsi); 398 c->recv_vpn_packet (pkt, rsi);
397 } 399 }
398} 400}
399 401
402bool
403vpn::send_vpn_packet (vpn_packet *pkt, const sockinfo &si, int tos)
404{
405 switch (si.prot)
406 {
407 case PROT_IPv4:
408 return send_ipv4_packet (pkt, si, tos);
409 case PROT_UDPv4:
410 return send_udpv4_packet (pkt, si, tos);
411#if ENABLE_TCP
412 case PROT_TCPv4:
413 return send_tcpv4_packet (pkt, si, tos);
414#endif
415#if ENABLE_ICMP
416 case PROT_ICMPv4:
417 return send_icmpv4_packet (pkt, si, tos);
418#endif
419#if ENABLE_DNS
420 case PROT_DNSv4:
421 return send_dnsv4_packet (pkt, si, tos);
422#endif
423
424 default:
425 slog (L_CRIT, _("%s: FATAL: trying to send packet with unsupported protocol"), (const char *)si);
426 }
427
428 return false;
429}
430
400void 431void
401vpn::ipv4_ev (io_watcher &w, short revents) 432vpn::ipv4_ev (io_watcher &w, short revents)
402{ 433{
403 if (revents & EVENT_READ) 434 if (revents & EVENT_READ)
404 { 435 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines