Home | History | Annotate | Download | only in tests
      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 }
     37