… | |
… | |
197 | // this I really consider a linux bug. I am neither connected |
197 | // this I really consider a linux bug. I am neither connected |
198 | // nor do I fragment myself. Linux still sets DF and doesn't |
198 | // nor do I fragment myself. Linux still sets DF and doesn't |
199 | // fragment for me sometimes. |
199 | // fragment for me sometimes. |
200 | { |
200 | { |
201 | int oval = IP_PMTUDISC_DONT; |
201 | int oval = IP_PMTUDISC_DONT; |
202 | setsockopt (udpv4_fd, SOL_IP, IP_MTU_DISCOVER, &oval, sizeof oval); |
202 | setsockopt (icmpv4_fd, SOL_IP, IP_MTU_DISCOVER, &oval, sizeof oval); |
203 | } |
203 | } |
204 | #endif |
204 | #endif |
205 | |
205 | |
206 | sockinfo si (THISNODE, PROT_ICMPv4); |
206 | sockinfo si (THISNODE, PROT_ICMPv4); |
207 | |
207 | |
… | |
… | |
259 | dnsv4_fd = socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP); |
259 | dnsv4_fd = socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP); |
260 | |
260 | |
261 | if (dnsv4_fd < 0) |
261 | if (dnsv4_fd < 0) |
262 | return -1; |
262 | return -1; |
263 | |
263 | |
264 | #if defined(SOL_IP) && defined(IP_MTU_DISCOVER) |
264 | # if defined(SOL_IP) && defined(IP_MTU_DISCOVER) |
265 | // this I really consider a linux bug. I am neither connected |
265 | // this I really consider a linux bug. I am neither connected |
266 | // nor do I fragment myself. Linux still sets DF and doesn't |
266 | // nor do I fragment myself. Linux still sets DF and doesn't |
267 | // fragment for me sometimes. |
267 | // fragment for me sometimes. |
268 | { |
268 | { |
269 | int oval = IP_PMTUDISC_DONT; |
269 | int oval = IP_PMTUDISC_DONT; |
270 | setsockopt (udpv4_fd, SOL_IP, IP_MTU_DISCOVER, &oval, sizeof oval); |
270 | setsockopt (dnsv4_fd, SOL_IP, IP_MTU_DISCOVER, &oval, sizeof oval); |
271 | } |
271 | } |
272 | #endif |
272 | # endif |
273 | |
273 | |
274 | // standard daemon practise... |
274 | // standard daemon practise... |
275 | { |
275 | { |
276 | int oval = 1; |
276 | int oval = 1; |
277 | setsockopt (dnsv4_fd, SOL_SOCKET, SO_REUSEADDR, &oval, sizeof oval); |
277 | setsockopt (dnsv4_fd, SOL_SOCKET, SO_REUSEADDR, &oval, sizeof oval); |