nl_socket_free(state->nl_sock);
}
-__COMMAND(NULL, NULL, NULL, 0, 0, 0, CIB_NONE, NULL);
-__COMMAND(NULL, NULL, NULL, 1, 0, 0, CIB_NONE, NULL);
+__COMMAND(NULL, NULL, "", NULL, 0, 0, 0, CIB_NONE, NULL);
+__COMMAND(NULL, NULL, "", NULL, 1, 0, 0, CIB_NONE, NULL);
static int cmd_size;
const char *argv0;
/* calculate command size including padding */
- cmd_size = abs((long)&__cmd_NULL_1_CIB_NONE_0
- - (long)&__cmd_NULL_0_CIB_NONE_0);
+ cmd_size = abs((long)&__cmd_NULL_NULL_1_CIB_NONE_0
+ - (long)&__cmd_NULL_NULL_0_CIB_NONE_0);
/* strip off self */
argc--;
argv0 = *argv++;
err = 1;
else
err = listen_events(&nlstate, 0, NULL);
- } else if (strcmp(*argv, "dev") == 0) {
+ } else if (strcmp(*argv, "dev") == 0 && argc > 1) {
argc--;
argv++;
err = handle_cmd(&nlstate, II_NETDEV, argc, argv);
- } else if (strncmp(*argv, "phy", 3) == 0) {
+ } else if (strncmp(*argv, "phy", 3) == 0 && argc > 1) {
if (strlen(*argv) == 3) {
argc--;
argv++;
#define ARRAY_SIZE(ar) (sizeof(ar)/sizeof(ar[0]))
-#define __COMMAND(sect, name, args, nlcmd, flags, hidden, idby, handler)\
+#define __COMMAND(sect, symname, name, args, nlcmd, flags, hidden, idby, handler)\
static const struct cmd \
- __cmd_ ## handler ## _ ## nlcmd ## _ ## idby ## _ ## hidden \
+ __cmd ## _ ## symname ## _ ## handler ## _ ## nlcmd ## _ ## idby ## _ ## hidden\
__attribute__((used)) __attribute__((section("__cmd"))) \
= { sect, name, args, nlcmd, flags, hidden, idby, handler }
#define COMMAND(section, name, args, cmd, flags, idby, handler) \
- __COMMAND(#section, #name, args, cmd, flags, 0, idby, handler)
+ __COMMAND(#section, name, #name, args, cmd, flags, 0, idby, handler)
#define HIDDEN(section, name, args, cmd, flags, idby, handler) \
- __COMMAND(#section, #name, args, cmd, flags, 1, idby, handler)
+ __COMMAND(#section, name, #name, args, cmd, flags, 1, idby, handler)
#define TOPLEVEL(name, args, cmd, flags, idby, handler) \
- __COMMAND(NULL, #name, args, cmd, flags, 0, idby, handler)
+ __COMMAND(NULL, name, #name, args, cmd, flags, 0, idby, handler)
extern struct cmd __start___cmd;
extern struct cmd __stop___cmd;