*/
#ifndef lint
-static char *rcsid_sms_glue_c = "$Header$";
+static char *rcsid_mr_glue_c = "$Header$";
#endif lint
#include <mit-copyright.h>
-#include "sms_server.h"
+#include "mr_server.h"
#include <sys/types.h>
#include <sys/signal.h>
#include <sys/wait.h>
static int already_connected = 0;
-#define CHECK_CONNECTED { if (!already_connected) return SMS_NOT_CONNECTED; }
+#define CHECK_CONNECTED { if (!already_connected) return MR_NOT_CONNECTED; }
static client pseudo_client;
extern int errno;
extern time_t now;
void reapchild();
-sms_connect(server)
+mr_connect(server)
char *server;
{
register int status;
extern int query_timeout;
- if (already_connected) return SMS_ALREADY_CONNECTED;
+ if (already_connected) return MR_ALREADY_CONNECTED;
initialize_sms_error_table();
initialize_krb_error_table();
bzero((char *)&pseudo_client, sizeof(pseudo_client)); /* XXX */
query_timeout = 0;
- status = sms_open_database();
+ status = mr_open_database();
if (!status) already_connected = 1;
signal(SIGCHLD, reapchild);
return status;
}
-sms_disconnect()
+mr_disconnect()
{
CHECK_CONNECTED;
- sms_close_database();
+ mr_close_database();
already_connected = 0;
return 0;
}
-sms_noop()
+mr_noop()
{
CHECK_CONNECTED;
return 0;
/*
* This routine is rather bogus, as it only fills in who you claim to be.
*/
-sms_auth(prog)
+mr_auth(prog)
char *prog;
{
struct passwd *pw;
strcat(buf, "@");
strcat(buf, pseudo_client.kname.realm);
strcpy(pseudo_client.clname, buf);
- pseudo_client.users_id = get_users_id(pseudo_client.kname.name);
+ pseudo_client.users_id = 0;
+ name_to_id(pseudo_client.kname.name, "USER", &pseudo_client.users_id);
pseudo_client.client_id = pseudo_client.users_id;
strcpy(pseudo_client.entity, prog);
- pseudo_client.args = (sms_params *) malloc(sizeof(sms_params));
- pseudo_client.args->sms_version_no = SMS_VERSION_2;
+ pseudo_client.args = (mr_params *) malloc(sizeof(mr_params));
+ pseudo_client.args->mr_version_no = MR_VERSION_2;
return 0;
}
char **argv;
struct hint *arg;
{
- if (sms_trim_args(argc, argv) == SMS_NO_MEM) {
- com_err(whoami, SMS_NO_MEM, "while trimmming args");
+ if (mr_trim_args(argc, argv) == MR_NO_MEM) {
+ com_err(whoami, MR_NO_MEM, "while trimmming args");
}
(*arg->proc)(argc, argv, arg->hint);
}
-int sms_query(name, argc, argv, callproc, callarg)
+int mr_query(name, argc, argv, callproc, callarg)
char *name; /* Query name */
int argc; /* Arg count */
char **argv; /* Args */
time(&now);
hints.proc = callproc;
hints.hint = callarg;
- return sms_process_query(&pseudo_client, name, argc, argv,
- callback, &hints);
+ next_incremental();
+ return mr_process_query(&pseudo_client, name, argc,
+ mr_copy_args(argv, argc), callback, &hints);
+
}
-int sms_access(name, argc, argv)
+int mr_access(name, argc, argv)
char *name; /* Query name */
int argc; /* Arg count */
char **argv; /* Args */
{
time(&now);
- return sms_check_access(&pseudo_client, name, argc, argv);
+ return mr_check_access(&pseudo_client, name, argc,
+ mr_copy_args(argv, argc));
}
-int sms_query_internal(argc, argv, callproc, callarg)
+int mr_query_internal(argc, argv, callproc, callarg)
int argc;
char **argv;
int (*callproc)();
time(&now);
hints.proc = callproc;
hints.hint = callarg;
- return sms_process_query(&pseudo_client, argv[0], argc-1, argv+1,
- callback, &hints);
+ next_incremental();
+ return mr_process_query(&pseudo_client, argv[0], argc-1,
+ mr_copy_args(argv+1, argc-1), callback, &hints);
}
-int sms_access_internal(argc, argv)
+int mr_access_internal(argc, argv)
int argc;
char **argv;
{
time(&now);
- return sms_check_access(&pseudo_client, argv[0], argc-1, argv+1);
+ return mr_check_access(&pseudo_client, argv[0], argc-1,
+ mr_copy_args(argv+1, argc-1));
}
-sms_shutdown(why)
+mr_shutdown(why)
char *why;
{
fprintf(stderr, "Sorry, not implemented\n");
return(errno);
default:
- return(SMS_SUCCESS);
+ return(MR_SUCCESS);
}
}
int pid;
while ((pid = wait3(&status, WNOHANG, (struct rusage *)0)) > 0) {
+ if (pid == inc_pid) {
+ inc_running = 0;
+ next_incremental();
+ }
if (status.w_termsig != 0 || status.w_retcode != 0)
com_err(whoami, 0, "%d: child exits with signal %d status %d",
pid, status.w_termsig, status.w_retcode);