From c993715525abecd83ea7bc92f4de661d0f04177c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Mon, 28 Aug 2006 14:20:18 +0000 Subject: [PATCH] (help): use sl_slc_help(). git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17949 ec53bebd-3082-4978-b11e-865c3cabbd6b --- kadmin/kadmin.c | 29 +----------------- kuser/kdigest.c | 29 +----------------- lib/gssapi/gss.c | 79 +++++++++++++++++++++++++++++++----------------- 3 files changed, 53 insertions(+), 84 deletions(-) diff --git a/kadmin/kadmin.c b/kadmin/kadmin.c index 3138fcd34..ac099cc63 100644 --- a/kadmin/kadmin.c +++ b/kadmin/kadmin.c @@ -100,34 +100,7 @@ void *kadm_handle; int help(void *opt, int argc, char **argv) { - if(argc == 0) { - sl_help(commands, 1, argv - 1 /* XXX */); - } else { - SL_cmd *c = sl_match (commands, argv[0], 0); - if(c == NULL) { - fprintf (stderr, "No such command: %s. " - "Try \"help\" for a list of commands\n", - argv[0]); - } else { - if(c->func) { - char *fake[] = { NULL, "--help", NULL }; - fake[0] = argv[0]; - (*c->func)(2, fake); - fprintf(stderr, "\n"); - } - if(c->help && *c->help) - fprintf (stderr, "%s\n", c->help); - if((++c)->name && c->func == NULL) { - int f = 0; - fprintf (stderr, "Synonyms:"); - while (c->name && c->func == NULL) { - fprintf (stderr, "%s%s", f ? ", " : " ", (c++)->name); - f = 1; - } - fprintf (stderr, "\n"); - } - } - } + sl_slc_help(commands, argc, argv); return 0; } diff --git a/kuser/kdigest.c b/kuser/kdigest.c index 27d176b21..89995adc0 100644 --- a/kuser/kdigest.c +++ b/kuser/kdigest.c @@ -216,34 +216,7 @@ client_request(struct client_request_options *opt, int argc, char **argv) int help(void *opt, int argc, char **argv) { - if(argc == 0) { - sl_help(commands, 1, argv - 1 /* XXX */); - } else { - SL_cmd *c = sl_match (commands, argv[0], 0); - if(c == NULL) { - fprintf (stderr, "No such command: %s. " - "Try \"help\" for a list of commands\n", - argv[0]); - } else { - if(c->func) { - char *fake[] = { NULL, "--help", NULL }; - fake[0] = argv[0]; - (*c->func)(2, fake); - fprintf(stderr, "\n"); - } - if(c->help && *c->help) - fprintf (stderr, "%s\n", c->help); - if((++c)->name && c->func == NULL) { - int f = 0; - fprintf (stderr, "Synonyms:"); - while (c->name && c->func == NULL) { - fprintf (stderr, "%s%s", f ? ", " : " ", (c++)->name); - f = 1; - } - fprintf (stderr, "\n"); - } - } - } + sl_slc_help(commands, argc, argv); return 0; } diff --git a/lib/gssapi/gss.c b/lib/gssapi/gss.c index 11574dff0..85b7ecce9 100644 --- a/lib/gssapi/gss.c +++ b/lib/gssapi/gss.c @@ -111,6 +111,56 @@ supported_mechanisms(void *argptr, int argc, char **argv) return 0; } +/* + * + */ + +#define DOVEDOT_MAJOR_VERSION 1 +#define DOVEDOT_MINOR_VERSION 0 + +/* + S: MECH mech mech-parameters + S: MECH mech mech-parameters + S: VERSION major minor + S: CPID pid + S: CUID pid + S: ... + S: DONE + C: VERSION major minor + C: CPID pid + + C: AUTH id method service= resp= + C: CONT id message + + S: OK id user= + S: FAIL id reason= + S: CONTINUE id message +*/ + +int +dovecot_server(void *argptr, int argc, char **argv) +{ + krb5_storage *sp; + int fd = 0; + + sp = krb5_storage_from_fd(fd); + if (sp == NULL) + errx(1, "krb5_storage_from_fd"); + + krb5_store_stringnl(sp, "MECH\tGSSAPI"); + krb5_store_stringnl(sp, "VERSION\t1\t0"); + krb5_store_stringnl(sp, "DONE"); + + while (1) { + char *cmd; + if (krb5_ret_stringnl(sp, &cmd) != 0) + break; + printf("cmd: %s\n", cmd); + free(cmd); + } + return 0; +} + /* * */ @@ -118,34 +168,7 @@ supported_mechanisms(void *argptr, int argc, char **argv) int help(void *opt, int argc, char **argv) { - if(argc == 0) { - sl_help(commands, 1, argv - 1 /* XXX */); - } else { - SL_cmd *c = sl_match (commands, argv[0], 0); - if(c == NULL) { - fprintf (stderr, "No such command: %s. " - "Try \"help\" for a list of commands\n", - argv[0]); - } else { - if(c->func) { - char *fake[] = { NULL, "--help", NULL }; - fake[0] = argv[0]; - (*c->func)(2, fake); - fprintf(stderr, "\n"); - } - if(c->help && *c->help) - fprintf (stderr, "%s\n", c->help); - if((++c)->name && c->func == NULL) { - int f = 0; - fprintf (stderr, "Synonyms:"); - while (c->name && c->func == NULL) { - fprintf (stderr, "%s%s", f ? ", " : " ", (c++)->name); - f = 1; - } - fprintf (stderr, "\n"); - } - } - } + sl_slc_help(commands, argc, argv); return 0; }