From 4d6a77cadd80903e91379981653913b8bcd4973f Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Sat, 30 Apr 2011 13:54:32 +0200 Subject: [PATCH] added headers for user messages --- src/xt_user.h | 22 +++++++++++++++++++--- usr/fbctl.c | 37 +++++++++++++++++++++++++------------ 2 files changed, 44 insertions(+), 15 deletions(-) diff --git a/src/xt_user.h b/src/xt_user.h index 84104cc..cea64f8 100644 --- a/src/xt_user.h +++ b/src/xt_user.h @@ -58,13 +58,29 @@ struct lananlmsg_unbind { char name2[FBNAMSIZ]; }; -struct lananlmsg { - uint32_t cmd; - uint8_t buff[USERCTL_BUF_LEN]; +struct lananlmsg_replace { + char name1[FBNAMSIZ]; + char name2[FBNAMSIZ]; + int drop_priv; +}; + +struct lananlmsg_subscribe { + char name1[FBNAMSIZ]; + char name2[FBNAMSIZ]; +}; + +struct lananlmsg_unsubscribe { + char name1[FBNAMSIZ]; + char name2[FBNAMSIZ]; }; extern int init_userctl_system(void); extern void cleanup_userctl_system(void); +struct lananlmsg { + uint32_t cmd; + uint8_t buff[USERCTL_BUF_LEN]; +}; + #endif /* XT_USER_H */ diff --git a/usr/fbctl.c b/usr/fbctl.c index 621d9dc..ad3fe03 100644 --- a/usr/fbctl.c +++ b/usr/fbctl.c @@ -337,18 +337,23 @@ static void do_unbind(int argc, char **argv) send_netlink(&lmsg); } -/* -printf(" preload - preload module\n"); - printf(" add - add fblock instance\n"); - printf(" set - set option for fblock\n"); - printf(" rm - remove fblock from stack if unbound\n"); - printf(" bind - bind two fblocks\n"); - printf(" unbind - unbind two fblocks\n"); - printf(" replace - exchange fb1 with fb2 (*)\n"); - printf(" replace_drop - exchange fb1 with fb2 (*)\n"); - printf(" subscribe - subscribe fb2 to fb1 (+)\n"); - printf(" unsubscribe - unsubscribe fb2 from fb1 (+)\n"); -*/ +static void do_replace(int argc, char **argv, int drop) +{ + if (argc != 2) + usage(); +} + +static void do_subscribe(int argc, char **argv) +{ + if (argc != 2) + usage(); +} + +static void do_unsubscribe(int argc, char **argv) +{ + if (argc != 2) + usage(); +} int main(int argc, char **argv) { @@ -373,6 +378,14 @@ int main(int argc, char **argv) do_bind(--argc, ++argv); else if (!strncmp("unbind", argv[0], strlen("unbind"))) do_unbind(--argc, ++argv); + else if (!strncmp("replace", argv[0], strlen("replace"))) + do_replace(--argc, ++argv, 0); + else if (!strncmp("replace-drop", argv[0], strlen("replace-drop"))) + do_replace(--argc, ++argv, 1); + else if (!strncmp("subscribe", argv[0], strlen("subscribe"))) + do_subscribe(--argc, ++argv); + else if (!strncmp("unsubscribe", argv[0], strlen("unsubscribe"))) + do_unsubscribe(--argc, ++argv); else usage(); -- 2.11.4.GIT