Tizen 2.1 base
[platform/upstream/libnl2.git] / tests / test-genl.c
1 #include "../src/utils.h"
2
3 int main(int argc, char *argv[])
4 {
5         struct nl_sock *sock;
6         struct nl_msg *msg;
7         void *hdr;
8         int err;
9
10         sock = nlt_alloc_socket();
11         nlt_connect(sock, NETLINK_GENERIC);
12
13         msg = nlmsg_alloc();
14         if (msg == NULL)
15                 fatal(NLE_NOMEM, "Unable to allocate netlink message");
16
17         hdr = genlmsg_put(msg, NL_AUTO_PID, NL_AUTO_SEQ, GENL_ID_CTRL,
18                           0, 0, CTRL_CMD_GETFAMILY, 1);
19         if (hdr == NULL)
20                 fatal(ENOMEM, "Unable to write genl header");
21
22         if ((err = nla_put_u32(msg, CTRL_ATTR_FAMILY_ID, GENL_ID_CTRL)) < 0)
23                 fatal(err, "Unable to add attribute: %s", nl_geterror(err));
24
25         if ((err = nl_send_auto_complete(sock, msg)) < 0)
26                 fatal(err, "Unable to send message: %s", nl_geterror(err));
27
28         if ((err = nl_recvmsgs_default(sock)) < 0)
29                 fatal(err, "Unable to receive message: %s", nl_geterror(err));
30
31         nlmsg_free(msg);
32         nl_close(sock);
33         nl_socket_free(sock);
34
35         return 0;
36 }