diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2010-09-08 13:04:35 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2010-09-08 13:07:32 +0200 |
commit | 089d5e1c6a4fcd6615b02866b760f2d7b4084a08 (patch) | |
tree | 607b14e964297f19a84f904fe8f896e142853e70 /examples/rtnl-link-set.c | |
parent | 2a67cbdd18d23612a49435e251fb0c853388b0e8 (diff) |
examples: put examples files into specific directories
put examples files into specific directories according to the
Netlink bus they work with. And minor update in the readme file
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'examples/rtnl-link-set.c')
-rw-r--r-- | examples/rtnl-link-set.c | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/examples/rtnl-link-set.c b/examples/rtnl-link-set.c deleted file mode 100644 index d5cf9b1..0000000 --- a/examples/rtnl-link-set.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * (C) 2009-2010 by Pablo Neira Ayuso <pablo@netfilter.org> - * - * This software may be used and distributed according to the terms - * of the GNU General Public License, incorporated herein by reference. - */ -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <string.h> -#include <time.h> - -#include <libmnl/libmnl.h> -#include <linux/if.h> -#include <linux/if_link.h> -#include <linux/rtnetlink.h> - -int main(int argc, char *argv[]) -{ - struct mnl_socket *nl; - char buf[getpagesize()]; - struct nlmsghdr *nlh; - struct ifinfomsg *ifm; - int ret; - unsigned int seq, portid, change = 0, flags = 0; - - if (argc != 3) { - printf("Usage: %s [ifname] [up|down]\n", argv[0]); - exit(EXIT_FAILURE); - } - - if (strncasecmp(argv[2], "up", strlen("up")) == 0) { - change |= IFF_UP; - flags |= IFF_UP; - } else if (strncasecmp(argv[2], "down", strlen("down")) == 0) { - change |= IFF_UP; - flags &= ~IFF_UP; - } else { - fprintf(stderr, "%s is not `up' nor `down'\n", argv[2]); - exit(EXIT_FAILURE); - } - - nlh = mnl_nlmsg_put_header(buf); - nlh->nlmsg_type = RTM_NEWLINK; - nlh->nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK; - nlh->nlmsg_seq = seq = time(NULL); - ifm = mnl_nlmsg_put_extra_header(nlh, sizeof(*ifm)); - ifm->ifi_family = AF_UNSPEC; - ifm->ifi_change = change; - ifm->ifi_flags = flags; - - mnl_attr_put_str(nlh, IFLA_IFNAME, argv[1]); - - nl = mnl_socket_open(NETLINK_ROUTE); - if (nl == NULL) { - perror("mnl_socket_open"); - exit(EXIT_FAILURE); - } - - if (mnl_socket_bind(nl, 0, MNL_SOCKET_AUTOPID) < 0) { - perror("mnl_socket_bind"); - exit(EXIT_FAILURE); - } - portid = mnl_socket_get_portid(nl); - - mnl_nlmsg_fprintf(stdout, nlh); - - if (mnl_socket_sendto(nl, nlh, nlh->nlmsg_len) < 0) { - perror("mnl_socket_send"); - exit(EXIT_FAILURE); - } - - ret = mnl_socket_recvfrom(nl, buf, sizeof(buf)); - if (ret == -1) { - perror("read"); - exit(EXIT_FAILURE); - } - - ret = mnl_cb_run(buf, ret, seq, portid, NULL, NULL); - if (ret == -1){ - perror("callback"); - exit(EXIT_FAILURE); - } - - mnl_socket_close(nl); - - return 0; -} |