summaryrefslogtreecommitdiff
path: root/examples/libmsrpc/test/svcctl/svc.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/libmsrpc/test/svcctl/svc.c')
-rw-r--r--examples/libmsrpc/test/svcctl/svc.c303
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;
-}
-