Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3
netlabel
0001-Port-to-libnl3.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Port-to-libnl3.patch of Package netlabel
From d82ed2081cf58fb2504ba037d7a1e6444ec5019a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= <crrodriguez@opensuse.org> Date: Wed, 28 May 2014 00:11:37 -0400 Subject: [PATCH] Port to libnl3 --- libnetlabel/netlabel_comm.c | 35 ----------------------------- libnetlabel/netlabel_internal.h | 49 +++++++---------------------------------- libnetlabel/netlabel_msg.c | 4 ---- macros.mk | 2 +- netlabelctl/Makefile | 2 +- 5 files changed, 10 insertions(+), 82 deletions(-) diff --git a/libnetlabel/netlabel_comm.c b/libnetlabel/netlabel_comm.c index 289629b..02869e8 100644 --- a/libnetlabel/netlabel_comm.c +++ b/libnetlabel/netlabel_comm.c @@ -102,13 +102,8 @@ struct nlbl_handle *nlbl_comm_open(void) goto open_failure; /* set the netlink handle properties */ -#if LIBNL_VERSION >= 1008 nl_socket_set_peer_port(hndl->nl_hndl, 0); nl_set_passcred(hndl->nl_hndl, 1); -#elif LIBNL_VERSION == 1006 - nl_handle_set_peer_pid(hndl->nl_hndl, 0); - nl_set_passcred(hndl->nl_hndl, 1); -#endif nl_disable_sequence_check(hndl->nl_hndl); /* connect to the generic netlink subsystem in the kernel */ @@ -177,11 +172,7 @@ int nlbl_comm_recv_raw(struct nlbl_handle *hndl, unsigned char **data) * no data is waiting to be read from the handle */ timeout.tv_sec = nlcomm_read_timeout; timeout.tv_usec = 0; -#if LIBNL_VERSION >= 1008 nl_fd = nl_socket_get_fd(hndl->nl_hndl); -#else - nl_fd = nl_handle_get_fd(hndl->nl_hndl); -#endif FD_ZERO(&read_fds); FD_SET(nl_fd, &read_fds); ret_val = select(nl_fd + 1, &read_fds, NULL, NULL, &timeout); @@ -192,15 +183,9 @@ int nlbl_comm_recv_raw(struct nlbl_handle *hndl, unsigned char **data) /* perform the read operation */ *data = NULL; -#if LIBNL_VERSION >= 1006 ret_val = nl_recv(hndl->nl_hndl, &peer_nladdr, data, &creds); if (ret_val < 0) return ret_val; -#else - ret_val = nl_recv(hndl->nl_hndl, &peer_nladdr, data); - if (ret_val < 0) - return ret_val; -#endif /* if we are setup to receive credentials, only accept messages from * the kernel (ignore all others and send an -EAGAIN) */ @@ -251,11 +236,7 @@ int nlbl_comm_recv(struct nlbl_handle *hndl, nlbl_msg **msg) * no data is waiting to be read from the handle */ timeout.tv_sec = nlcomm_read_timeout; timeout.tv_usec = 0; -#if LIBNL_VERSION >= 1008 nl_fd = nl_socket_get_fd(hndl->nl_hndl); -#else - nl_fd = nl_handle_get_fd(hndl->nl_hndl); -#endif FD_ZERO(&read_fds); FD_SET(nl_fd, &read_fds); ret_val = select(nl_fd + 1, &read_fds, NULL, NULL, &timeout); @@ -265,19 +246,9 @@ int nlbl_comm_recv(struct nlbl_handle *hndl, nlbl_msg **msg) return -EAGAIN; /* perform the read operation */ -#if LIBNL_VERSION >= 1100 ret_val = nl_recv(hndl->nl_hndl, &peer_nladdr, &data, &creds); if (ret_val < 0) return ret_val; -#elif LIBNL_VERSION >= 1006 - ret_val = nl_recv(hndl->nl_hndl, &peer_nladdr, data, &creds); - if (ret_val < 0) - return ret_val; -#else - ret_val = nl_recv(hndl->nl_hndl, &peer_nladdr, data); - if (ret_val < 0) - return ret_val; -#endif /* if we are setup to receive credentials, only accept messages from * the kernel (ignore all others and send an -EAGAIN) */ @@ -344,9 +315,7 @@ int nlbl_comm_send(struct nlbl_handle *hndl, nlbl_msg *msg) creds.gid = getegid(); /* set the message properties */ -#if LIBNL_VERSION >= 1006 nlmsg_set_creds(msg, &creds); -#endif /* request a netlink ack message */ nl_hdr = nlbl_msg_nlhdr(msg); @@ -355,9 +324,5 @@ int nlbl_comm_send(struct nlbl_handle *hndl, nlbl_msg *msg) nl_hdr->nlmsg_flags |= NLM_F_ACK; /* send the message */ -#if LIBNL_VERSION == 1005 - return nl_send_auto_complete(hndl->nl_hndl, nlbl_msg_nlhdr(msg)); -#elif LIBNL_VERSION >= 1006 return nl_send_auto_complete(hndl->nl_hndl, msg); -#endif } diff --git a/libnetlabel/netlabel_internal.h b/libnetlabel/netlabel_internal.h index acc2f03..54200af 100644 --- a/libnetlabel/netlabel_internal.h +++ b/libnetlabel/netlabel_internal.h @@ -27,6 +27,14 @@ #include <netlink/netlink.h> +#define nl_handle_alloc nl_socket_alloc +#define nl_handle_destroy nl_socket_free +#define nl_handle nl_sock +#define nlmsg_build(ptr) nlmsg_inherit(ptr) +#define nl_set_passcred nl_socket_set_passcred +#define nl_disable_sequence_check nl_socket_disable_seq_check +#define nlmsg_len nlmsg_datalen + /* NetLabel communication handle */ struct nlbl_handle { struct nl_handle *nl_hndl; @@ -37,46 +45,5 @@ struct nlbl_handle { (((hdr)->nlmsg_flags & NLM_F_MULTI) && \ ((hdr)->nlmsg_type != NLMSG_DONE))) -/* Specify which version of libnl we are using */ -/* 1.0-pre5 => 1005 */ -/* 1.0-pre6 => 1006 */ -/* 1.0-pre8 => 1008 */ -/* 1.1 => 1100 */ -#define LIBNL_VERSION 1100 - -/* XXX - this whole block will most likely go away once libnl supports Generic - * Netlink */ -#if LIBNL_VERSION <= 1006 /* Generic Netlink types */ - -/* Generic Netlink message header */ -struct genlmsghdr { - uint8_t cmd; - uint8_t version; - uint16_t reserved; -}; - -#define GENL_ID_CTRL 0x10 - -enum { - CTRL_CMD_UNSPEC, - CTRL_CMD_NEWFAMILY, - CTRL_CMD_DELFAMILY, - CTRL_CMD_GETFAMILY, - CTRL_CMD_NEWOPS, - CTRL_CMD_DELOPS, - CTRL_CMD_GETOPS, - __CTRL_CMD_MAX, -}; -#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1) - -enum { - CTRL_ATTR_UNSPEC, - CTRL_ATTR_FAMILY_ID, - CTRL_ATTR_FAMILY_NAME, - __CTRL_ATTR_MAX, -}; -#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1) - -#endif /* Generic Netlink types */ #endif diff --git a/libnetlabel/netlabel_msg.c b/libnetlabel/netlabel_msg.c index fb2fc58..af00fbe 100644 --- a/libnetlabel/netlabel_msg.c +++ b/libnetlabel/netlabel_msg.c @@ -63,11 +63,7 @@ nlbl_msg *nlbl_msg_new(void) struct genlmsghdr genl_hdr; /* create the message with a simple netlink header */ -#if LIBNL_VERSION >= 1008 msg = nlmsg_alloc(); -#else - msg = nlmsg_build_no_hdr(); -#endif if (msg == NULL) goto msg_new_failure; diff --git a/macros.mk b/macros.mk index a9466f0..b9f8813 100644 --- a/macros.mk +++ b/macros.mk @@ -53,7 +53,7 @@ CPPFLAGS += -I$(TOPDIR) -I$(TOPDIR)/include LIBFLAGS = CFLAGS ?= -Wl,-z,relro -Wall -O0 -g -CFLAGS += -fPIC +CFLAGS += `pkg-config --cflags libnl-3.0` -fPIC LDFLAGS ?= -z relro -g # diff --git a/netlabelctl/Makefile b/netlabelctl/Makefile index 06af6a5..07cebbb 100644 --- a/netlabelctl/Makefile +++ b/netlabelctl/Makefile @@ -49,7 +49,7 @@ CONF_FILE = netlabel.rules OBJS = main.o mgmt.o map.o unlabeled.o cipsov4.o -LDFLAGS := ../libnetlabel/libnetlabel.a -lnl -lm +LDFLAGS := ../libnetlabel/libnetlabel.a `pkg-config --libs libnl-3.0` -lm DEPS = $(OBJS:%.o=%.d) -- 1.8.4.5
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor