/** * test1 Allocate a server and do lots of other things * */ static int test1() { SERVER *server; int result; char *status; /* Server tests */ ss_dfprintf(stderr, "testserver : creating server called MyServer"); server = server_alloc("MyServer", "HTTPD", 9876); skygw_log_sync_all(); //ss_info_dassert(NULL != service, "New server with valid protocol and port must not be null"); //ss_info_dassert(0 != service_isvalid(service), "Service must be valid after creation"); ss_dfprintf(stderr, "\t..done\nTest Parameter for Server."); ss_info_dassert(NULL == serverGetParameter(server, "name"), "Parameter should be null when not set"); serverAddParameter(server, "name", "value"); skygw_log_sync_all(); ss_info_dassert(0 == strcmp("value", serverGetParameter(server, "name")), "Parameter should be returned correctly"); ss_dfprintf(stderr, "\t..done\nTesting Unique Name for Server."); ss_info_dassert(NULL == server_find_by_unique_name("uniquename"), "Should not find non-existent unique name."); server_set_unique_name(server, "uniquename"); skygw_log_sync_all(); ss_info_dassert(server == server_find_by_unique_name("uniquename"), "Should find by unique name."); ss_dfprintf(stderr, "\t..done\nTesting Status Setting for Server."); status = server_status(server); skygw_log_sync_all(); ss_info_dassert(0 == strcmp("Running", status), "Status of Server should be Running by default."); if (NULL != status) free(status); server_set_status(server, SERVER_MASTER); status = server_status(server); skygw_log_sync_all(); ss_info_dassert(0 == strcmp("Master, Running", status), "Should find correct status."); server_clear_status(server, SERVER_MASTER); free(status); status = server_status(server); skygw_log_sync_all(); ss_info_dassert(0 == strcmp("Running", status), "Status of Server should be Running after master status cleared."); if (NULL != status) free(status); ss_dfprintf(stderr, "\t..done\nRun Prints for Server and all Servers."); printServer(server); printAllServers(); skygw_log_sync_all(); ss_dfprintf(stderr, "\t..done\nFreeing Server."); ss_info_dassert(0 != server_free(server), "Free should succeed"); ss_dfprintf(stderr, "\t..done\n"); return 0; }
/** * 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); } }