X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=babeld%2Fnet.c;h=d1f6a4414291b2da7475c943f9ff96bc8bac7e1d;hb=2569910bb6e5c00ececc60ed15b182e14a88cb9d;hp=5cb1236e7f0cd6db88a24c9f5cd3a93cb1e7177d;hpb=5734509c0545ebd95a5b8e3f22a911c1a39ffa1b;p=mirror_frr.git diff --git a/babeld/net.c b/babeld/net.c index 5cb1236e7..d1f6a4414 100644 --- a/babeld/net.c +++ b/babeld/net.c @@ -1,20 +1,4 @@ -/* - * This file is free software: you may copy, redistribute and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 2 of the License, or (at your - * option) any later version. - * - * This file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * This file incorporates work covered by the following copyright and - * permission notice: - * +/* Copyright (c) 2007, 2008 by Juliusz Chroboczek Permission is hereby granted, free of charge, to any person obtaining a copy @@ -36,6 +20,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include @@ -44,12 +32,15 @@ THE SOFTWARE. #include #include #include +#include +#include #include #include #include "babeld.h" #include "util.h" #include "net.h" +#include "sockopt.h" int babel_socket(int port) @@ -86,6 +77,8 @@ babel_socket(int port) if(rc < 0) goto fail; + setsockopt_ipv6_tclass (s, IPTOS_PREC_INTERNETCONTROL); + rc = fcntl(s, F_GETFL, 0); if(rc < 0) goto fail; @@ -139,16 +132,16 @@ babel_recv(int s, void *buf, int buflen, struct sockaddr *sin, int slen) int babel_send(int s, - const void *buf1, int buflen1, const void *buf2, int buflen2, - const struct sockaddr *sin, int slen) + void *buf1, int buflen1, void *buf2, int buflen2, + struct sockaddr *sin, int slen) { struct iovec iovec[2]; struct msghdr msg; int rc; - iovec[0].iov_base = (void*)buf1; + iovec[0].iov_base = buf1; iovec[0].iov_len = buflen1; - iovec[1].iov_base = (void*)buf2; + iovec[1].iov_base = buf2; iovec[1].iov_len = buflen2; memset(&msg, 0, sizeof(msg)); msg.msg_name = (struct sockaddr*)sin;