/** * Clear the server status. * @param dcb Client DCB * @param tree Parse tree */ void exec_clear_server(DCB *dcb, MAXINFO_TREE *tree) { SERVER* server = server_find_by_unique_name(tree->value); char errmsg[120]; if (server) { int status = server_map_status(tree->right->value); if (status != 0) { server_clear_status(server, status); maxinfo_send_ok(dcb); } else { if (strlen(tree->right->value) > 80) // Prevent buffer overrun { tree->right->value[80] = 0; } sprintf(errmsg, "Invalid argument '%s'", tree->right->value); maxinfo_send_error(dcb, 0, errmsg); } } else { if (strlen(tree->value) > 80) // Prevent buffer overrun { tree->value[80] = 0; } sprintf(errmsg, "Invalid argument '%s'", tree->value); maxinfo_send_error(dcb, 0, errmsg); } }
/** * Clear the status bit of a server * * @param dcb DCB to send output to * @param server The server to set the status of * @param bit String representation of the status bit */ static void clear_server(DCB *dcb, SERVER *server, char *bit) { unsigned int bitvalue; if ((bitvalue = server_map_status(bit)) != 0) server_clear_status(server, bitvalue); else dcb_printf(dcb, "Unknown status bit %s\n", bit); }