static bool on_timeout_cmd(void *data) { const char *cmd; const char *param; cmd = cmds[cur_cmd++]; param = cmds[cur_cmd++]; printf("Firing new command: %s %s\n", cmd, param); if (!strcmp(cmd, "monitor")) sol_platform_add_service_monitor(on_service_changed, param, NULL); else if (!strcmp(cmd, "stop-monitor")) sol_platform_del_service_monitor(on_service_changed, param, NULL); else if (!strcmp(cmd, "start")) sol_platform_start_service(param); else if (!strcmp(cmd, "stop")) sol_platform_stop_service(param); else if (!strcmp(cmd, "restart")) sol_platform_restart_service(param); else if (!strcmp(cmd, "target")) sol_platform_set_target(param); if (n_cmds - cur_cmd >= 2) return true; timeout_handle = NULL; return false; }
static int platform_target_process(struct sol_flow_node *node, void *data, uint16_t port, uint16_t conn_id, const struct sol_flow_packet *packet) { int r; const char *target; r = sol_flow_packet_get_string(packet, &target); SOL_INT_CHECK(r, < 0, r); r = sol_platform_set_target(target); if (r < 0) { sol_flow_send_error_packet(node, r, "Could not change the system target to: %s", target); } return 0; }