/* $Id: apitest.c,v 1.2 1995/06/23 19:28:17 p-pomes Exp $ * apitest: test the qiapi routines. */ #include #include "qiapi.h" #ifndef QIHOST #define QIHOST "ns" #endif static char *UseHost = QIHOST; static char *User = NULL; static char *Password = NULL; static int Opts = -1; static void do_opts __P((int, char **)); main(argc,argv) int argc; char **argv; { FILE *To, *From; int rc; char *alias; do_opts(argc,argv); rc = OpenQi(UseHost,&To,&From); if (rc) { fprintf(stderr,"OpenQi failed with %d\n",rc); exit(1); } alias = LoginQi(UseHost,To,From,Opts,User,Password); if (alias) printf("Logged in as %s\n",alias); else { fprintf(stderr,"Login failed.\n"); exit(1); } rc = LogoutQi(To, From); if (rc) printf("logged out\n"); else { fprintf(stderr,"logout failed %d\n",rc); exit(1); } CloseQi(To, From); exit(0); } static void do_opts(argc,argv) int argc; char **argv; { extern int optind; extern char *optarg; int c,argerr=0; while ((c = getopt(argc,argv,"aik:elds:u:p:")) != EOF) switch(c) { case 'd': ++QiDebug; break; case 's': UseHost = optarg; break; case 'a': if (Opts == -1) Opts = 0; Opts |= LQ_AUTO; break; case 'i': if (Opts == -1) Opts = 0; Opts |= LQ_INTERACTIVE; break; case 'k': if (Opts == -1) Opts = 0; if (!optarg || *optarg == '\0' || *optarg == '4') Opts |= LQ_KRB4; else if (*optarg == '5') Opts |= LQ_KRB5; break; case 'e': if (Opts == -1) Opts = 0; Opts |= LQ_EMAIL; break; case 'l': if (Opts == -1) Opts = 0; Opts |= LQ_PASSWORD; break; case 'u': User = optarg; break; case 'p': Password = optarg; break; default: ++argerr; break; } if (argerr) { fprintf(stderr,"Usage: %s [-daikel] [-s host] [-u user] [-p pass]\n",argv[0]); fprintf(stderr,"\t-d debug\n"); fprintf(stderr,"\t-a attempt auto login\n"); fprintf(stderr,"\t-i interactively prompt for user/pass if needed\n"); fprintf(stderr,"\t-k use kerberos login protocol\n"); fprintf(stderr,"\t-e use email login protocol\n"); fprintf(stderr,"\t-l use conventional login protocol\n"); exit(1); } if (Opts == -1) Opts = LQ_ALL|LQ_INTERACTIVE|LQ_AUTO; }