summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Pirko <jpirko@redhat.com>2011-08-30 18:31:47 +0200
committerThomas Graf <tgraf@lsx.localdomain>2011-08-31 09:23:58 +0200
commit6faeffe64acd7d94f152afbb99ab811949308b11 (patch)
treec2353df8d4643ce4500c8b4f58fcb75d86f0948f
parenteabb7539dd6cae2387888b6e9e7bcaedee488e3f (diff)
downloadlibnl-6faeffe64acd7d94f152afbb99ab811949308b11.tar.gz
socket: introduce nl_socket_modify_err_cb
This function does the same as nl_socket_modify_cb except for error callback Signed-off-by: Jiri Pirko <jpirko@redhat.com>
-rw-r--r--include/netlink/socket.h2
-rw-r--r--lib/socket.c15
2 files changed, 17 insertions, 0 deletions
diff --git a/include/netlink/socket.h b/include/netlink/socket.h
index f0062b5..d0f5a6a 100644
--- a/include/netlink/socket.h
+++ b/include/netlink/socket.h
@@ -45,6 +45,8 @@ extern void nl_socket_set_cb(struct nl_sock *,
extern int nl_socket_modify_cb(struct nl_sock *, enum nl_cb_type,
enum nl_cb_kind,
nl_recvmsg_msg_cb_t, void *);
+extern int nl_socket_modify_err_cb(struct nl_sock *, enum nl_cb_kind,
+ nl_recvmsg_err_cb_t, void *);
extern int nl_socket_set_buffer_size(struct nl_sock *, int, int);
extern int nl_socket_set_passcred(struct nl_sock *, int);
diff --git a/lib/socket.c b/lib/socket.c
index 60120fb..565248f 100644
--- a/lib/socket.c
+++ b/lib/socket.c
@@ -511,6 +511,21 @@ int nl_socket_modify_cb(struct nl_sock *sk, enum nl_cb_type type,
return nl_cb_set(sk->s_cb, type, kind, func, arg);
}
+/**
+ * Modify the error callback handler associated with the socket
+ * @arg sk Netlink socket.
+ * @arg kind kind of callback
+ * @arg func callback function
+ * @arg arg argument to be passed to callback function
+ *
+ * @see nl_cb_err
+ */
+int nl_socket_modify_err_cb(struct nl_sock *sk, enum nl_cb_kind kind,
+ nl_recvmsg_err_cb_t func, void *arg)
+{
+ return nl_cb_err(sk->s_cb, kind, func, arg);
+}
+
/** @} */
/**