diff options
Diffstat (limited to 'examples/libmsrpc/test/svcctl/svc.c')
-rw-r--r-- | examples/libmsrpc/test/svcctl/svc.c | 303 |
1 files changed, 0 insertions, 303 deletions
diff --git a/examples/libmsrpc/test/svcctl/svc.c b/examples/libmsrpc/test/svcctl/svc.c deleted file mode 100644 index db5fa27895..0000000000 --- a/examples/libmsrpc/test/svcctl/svc.c +++ /dev/null @@ -1,303 +0,0 @@ -/*Tests all of the svcctl calls (at least at time of writing)*/ - -#include "libmsrpc.h" -#include "test_util.h" - -int main(int argc, char **argv) { - CacServerHandle *hnd = NULL; - TALLOC_CTX *mem_ctx = NULL; - - - struct SvcOpenScm sos; - struct SvcEnumServices es; - struct SvcOpenService os; - struct SvcGetStatus gs; - struct SvcStartService start; - struct SvcStopService stop; - struct SvcPauseService pause; - struct SvcContinueService res; - struct SvcGetDisplayName gdn; - struct SvcGetServiceConfig sgc; - - POLICY_HND *svc_hnd = NULL; - - fstring tmp; - fstring input; - - int i; - - mem_ctx = talloc_init("cac_samgroup"); - - hnd = cac_NewServerHandle(True); - - cac_SetAuthDataFn(hnd, cactest_GetAuthDataFn); - - cac_parse_cmd_line(argc, argv, hnd); - - if(!cac_Connect(hnd, NULL)) { - fprintf(stderr, "Could not connect to server %s. Error: %s\n", hnd->server, nt_errstr(hnd->status)); - exit(-1); - } - - /*open a handle to the scm*/ - ZERO_STRUCT(sos); - - sos.in.access = SC_MANAGER_ALL_ACCESS; - - if(!cac_SvcOpenScm(hnd, mem_ctx, &sos)) { - fprintf(stderr, "Could not open SCM. Error: %s\n", nt_errstr(hnd->status)); - goto done; - } - - printf("Opened SCM\n"); - - tmp[0] = 0x00; - while(tmp[0] != 'q') { - printf("\n"); - printf("[e] Enum Services\n"); - printf("[o] Open Service\n"); - printf("[x] Close Service\n"); - printf("[g] Get service status\n"); - printf("[s] Start service\n"); - printf("[t] Stop service\n"); - printf("[p] Pause service\n"); - printf("[r] Resume service\n"); - printf("[c] Get service config\n"); - - printf("[d] Get display name\n"); - - printf("[q]uit\n\n"); - printf("Enter option: "); - cactest_readline(stdin, tmp); - - printf("\n"); - - switch(tmp[0]) { - case 'e': /*enum services*/ - ZERO_STRUCT(es); - es.in.scm_hnd = sos.out.scm_hnd; - - if(!cac_SvcEnumServices(hnd, mem_ctx, &es)) { - printf("Could not enumerate services. Error: %s\n", nt_errstr(hnd->status)); - break; - } - - for(i = 0; i < es.out.num_services; i++) { - print_cac_service(es.out.services[i]); - } - printf("Enumerated %d services:\n", es.out.num_services); - - break; - - case 'o': /*Open service*/ - ZERO_STRUCT(os); - - printf("Enter service name: "); - cactest_readline(stdin, tmp); - - os.in.name = talloc_strdup(mem_ctx, tmp); - os.in.scm_hnd = sos.out.scm_hnd; - os.in.access = SERVICE_ALL_ACCESS; - - if(!cac_SvcOpenService(hnd, mem_ctx, &os)) { - printf("Could not open service. Error: %s\n", nt_errstr(hnd->status)); - break; - } - - printf("Opened service.\n"); - svc_hnd = os.out.svc_hnd; - - break; - case 'x': /*close service*/ - if(!svc_hnd) { - printf("Must open service first!\n"); - break; - } - - cac_SvcClose(hnd, mem_ctx, svc_hnd); - svc_hnd = NULL; - break; - case 'g': /*get svc status*/ - - if(!svc_hnd) { - printf("Must open service first!\n"); - break; - } - - ZERO_STRUCT(gs); - - gs.in.svc_hnd = svc_hnd; - - if(!cac_SvcGetStatus(hnd, mem_ctx, &gs)) { - printf("Could not get status. Error: %s\n", nt_errstr(hnd->status)); - break; - } - - print_service_status(gs.out.status); - break; - case 's': /*start service*/ - if(!svc_hnd) { - printf("Must open service first!\n"); - break; - } - - ZERO_STRUCT(start); - - start.in.svc_hnd = svc_hnd; - - printf("Enter number of parameters: "); - scanf("%d", &start.in.num_parms); - - start.in.parms = talloc_array(mem_ctx, char *, start.in.num_parms); - - for(i = 0; i < start.in.num_parms; i++) { - printf("Parm %d: ", i); - cactest_readline(stdin, tmp); - start.in.parms[i] = talloc_strdup(mem_ctx, tmp); - } - - printf("Timeout (seconds): "); - scanf("%d", &start.in.timeout); - - if(!cac_SvcStartService(hnd, mem_ctx, &start)) { - printf("Could not start service. Error: %s\n", nt_errstr(hnd->status)); - } - else { - printf("Started service.\n"); - } - - break; - case 't': /*stop service*/ - if(!svc_hnd) { - printf("Must open service first!\n"); - break; - } - - ZERO_STRUCT(stop); - stop.in.svc_hnd = svc_hnd; - - printf("Timeout (seconds): "); - scanf("%d", &stop.in.timeout); - - if(!cac_SvcStopService(hnd, mem_ctx, &stop)) { - if(CAC_OP_FAILED(hnd->status)) { - printf("Error occured: %s\n", nt_errstr(hnd->status)); - } - else { - printf("Service was not stopped within %d seconds.\n", stop.in.timeout); - print_service_status(stop.out.status); - } - } - else { - printf("Done.\n"); - print_service_status(stop.out.status); - } - break; - case 'd': /*get display name*/ - if(!svc_hnd) { - printf("Must open service first!\n"); - break; - } - - ZERO_STRUCT(gdn); - gdn.in.svc_hnd = svc_hnd; - - if(!cac_SvcGetDisplayName(hnd, mem_ctx, &gdn)) { - printf("Could not get display name. Error: %s\n", nt_errstr(hnd->status)); - } - else { - printf("\tDisplay Name: %s\n", gdn.out.display_name); - } - break; - - case 'p': /*pause service*/ - if(!svc_hnd) { - printf("Must open service first!\n"); - break; - } - - ZERO_STRUCT(pause); - pause.in.svc_hnd = svc_hnd; - - printf("Timeout (seconds): "); - scanf("%d", &pause.in.timeout); - - if(!cac_SvcPauseService(hnd, mem_ctx, &pause)) { - if(CAC_OP_FAILED(hnd->status)) { - printf("Error occured: %s\n", nt_errstr(hnd->status)); - } - else { - printf("Service was not paused within %d seconds.\n", pause.in.timeout); - print_service_status(pause.out.status); - } - } - else { - printf("Done.\n"); - print_service_status(pause.out.status); - } - - break; - - case 'r': /*resume service*/ - if(!svc_hnd) { - printf("Must open service first!\n"); - break; - } - - ZERO_STRUCT(res); - res.in.svc_hnd = svc_hnd; - - printf("Timeout (seconds): "); - scanf("%d", &res.in.timeout); - - if(!cac_SvcContinueService(hnd, mem_ctx, &res)) { - if(CAC_OP_FAILED(hnd->status)) { - printf("Error occured: %s\n", nt_errstr(hnd->status)); - } - else { - printf("Service was not resumed within %d seconds.\n", res.in.timeout); - print_service_status(res.out.status); - } - } - else { - printf("Done.\n"); - print_service_status(res.out.status); - } - - break; - - case 'c': /*get service config*/ - if(!svc_hnd) { - printf("Must open service first!\n"); - break; - } - - ZERO_STRUCT(sgc); - - sgc.in.svc_hnd = svc_hnd; - - if(!cac_SvcGetServiceConfig(hnd, mem_ctx, &sgc)) { - printf("Could not get service config. Error: %s\n", nt_errstr(hnd->status)); - } - else { - print_service_config(&sgc.out.config); - } - break; - - case 'q': /*quit*/ - break; - default: - printf("Invalid command\n"); - } - } - - cac_SvcClose(hnd, mem_ctx, sos.out.scm_hnd); - - done: - cac_FreeHandle(hnd); - - talloc_destroy(mem_ctx); - - return 0; -} - |