Path: blob/main/crypto/krb5/src/util/ss/test_ss.c
106175 views
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */1/*2* util/ss/test_ss.c3*/456#include <stdio.h>7#include "ss.h"89extern ss_request_table test_cmds;1011#define TRUE 112#define FALSE 01314static char def_subsystem_name[5] = "test";15static char version [4] = "1.0";1617int main(argc, argv)18int argc;19char **argv;20{21int code;22char *argv0 = argv[0];23char *initial_request = (char *)NULL;24int quit = FALSE; /* quit after processing request */25int sci_idx;26char *subsystem_name;2728subsystem_name = def_subsystem_name;2930for (; *argv; ++argv, --argc) {31printf("checking arg: %s\n", *argv);32if (!strcmp(*argv, "-prompt")) {33if (argc == 1) {34fprintf(stderr,35"No argument supplied with -prompt\n");36exit(1);37}38argc--; argv++;39subsystem_name = *argv;40}41else if (!strcmp(*argv, "-request") || !strcmp(*argv, "-rq")) {42if (argc == 1) {43fprintf(stderr,44"No string supplied with -request.\n");45exit(1);46}47argc--; argv++;48initial_request = *argv;49}50else if (!strcmp(*argv, "-quit"))51quit = TRUE;52else if (!strcmp(*argv, "-no_quit"))53quit = FALSE;54else if (**argv == '-') {55fprintf(stderr, "Unknown control argument %s\n",56*argv);57fprintf(stderr,58"Usage: %s [gateway] [ -prompt name ] [ -request name ] [ -quit ]\n",59argv0);60exit(1);61}62}6364sci_idx = ss_create_invocation(subsystem_name, version,65(char *)NULL, &test_cmds, &code);66if (code) {67ss_perror(sci_idx, code, "creating invocation");68exit(1);69}7071(void) ss_add_request_table (sci_idx, &ss_std_requests, 1, &code);72if (code) {73ss_perror (sci_idx, code, "adding standard requests");74exit (1);75}7677if (!quit)78printf("test version %s. Type '?' for a list of commands.\n\n",79version);8081if (initial_request != (char *)NULL) {82code = ss_execute_line(sci_idx, initial_request);83if (code != 0)84ss_perror(sci_idx, code, initial_request);85}86if (!quit || code)87code = ss_listen (sci_idx);88exit(0);89}909192void test_cmd (argc, argv)93int argc;94char **argv;95{96while (++argv, --argc)97fputs(*argv, stdout);98putchar ('\n');99}100101102