#ifndef SHELL
UNUSED(ctrlcon);
#else
+ // If broadcast doesn't provide ControlConn but inner command has one,
+ // use the inner command's ControlConn for wrapping
+ if (!ctrlcon && ac->ctrlcon)
+ ctrlcon = ac->ctrlcon;
+
if (ctrlcon)
- return ( new ACShellCmd(ctrlcon, ac) );
- else
+ return new ACShellCmd(ctrlcon, ac);
#endif
- return ac;
+ return ac;
}
static void send_response(ControlConn* ctrlcon, const char* response)
++cmd;
}
}
-
+
send_response(ctrlcon, "\nModule Commands:\n");
for (const auto& str : prefix_cmds)
send_response(ctrlcon, str.c_str());
send_response(ctrlcon, "\nTop Level Commands:\n");
for (const auto& str : no_prefix_cmds)
send_response(ctrlcon, str.c_str());
-
+
return 0;
}
}
pthreads_started = pigs_started_count && num_threads <= pigs_started_count + pigs_failed;
-
+
if (pthreads_started)
{
#ifdef REG_TEST
return main_exit_code;
}
-