6 * Copyright (C) 1987 by the Massachusetts Institute of Technology
8 * Glue routines to allow the database stuff to be linked in to
9 * a program expecting a library level interface.
12 * Revision 1.1 1987-07-14 00:41:18 wesommer
18 static char *rcsid_sms_glue_c = "$Header$";
21 #include "sms_server.h"
22 #include <krb.h> /* XXX for error codes */
24 static int already_connected = 0;
26 #define CHECK_CONNECTED { if (!already_connected) return SMS_NOT_CONNECTED; }
28 static client pseudo_client;
29 extern int krb_err_base;
35 if (already_connected) return SMS_ALREADY_CONNECTED;
39 bzero((char *)&pseudo_client, sizeof(pseudo_client)); /* XXX */
41 status = sms_open_database();
42 if (!status) already_connected = 1;
50 already_connected = 0;
60 * This routine is rather bogus, as it only fills in who you claim to be.
67 pw = getpwuid(getuid());
68 if (!pw) return (KDC_PR_UNKNOWN + krb_err_base); /* XXX hack (we
72 strcpy(pseudo_client.kname.name, pw->pw_name);
73 get_krbrlm(pseudo_client.kname.realm, 1);
76 int sms_query(name, argc, argv, callproc, callarg)
77 char *name; /* Query name */
78 int argc; /* Arg count */
79 char **argv; /* Args */
80 int (*callproc)(); /* Callback procedure */
81 char *callarg; /* Callback argument */
83 return sms_process_query(&pseudo_client, name, argc, argv,
87 int sms_access(name, argc, argv)
88 char *name; /* Query name */
89 int argc; /* Arg count */
90 char **argv; /* Args */
92 return sms_check_access(&pseudo_client, name, argc, argv);
95 int sms_query_internal(argc, argv, callproc, callarg)
101 return sms_process_query(&pseudo_client, argv[0], argc-1, argv+1,
105 int sms_access_internal(argc, argv)
109 return sms_check_access(&pseudo_client, argv[0], argc-1, argv+1);
115 fprintf(stderr, "Sorry, not implemented\n");
122 * c-continued-statement-offset: 4
124 * c-argdecl-indent: 4