* Copyright (C) 1987 by the Massachusetts Institute of Technology
*
* $Log$
- * Revision 1.10 1987-08-19 18:39:04 wesommer
- * Added list_users query.
+ * Revision 1.11 1987-08-19 22:03:52 wesommer
+ * Added the trigger_dcm function, which fires off a DCM to do the
+ * update.
*
+ * Revision 1.10 87/08/19 18:39:04 wesommer
+ * Added list_users query.
+ *
* Revision 1.9 87/08/04 02:41:22 wesommer
* Clean up messages.
*
#include <krb.h>
#include <errno.h>
+#include "query.h"
#include "sms_server.h"
extern char buf1[];
extern int nclients;
extern char *whoami;
extern char *malloc();
+extern int errno;
extern void clist_delete(), do_auth(), do_shutdown();
void do_call();
case SMS_SHUTDOWN:
do_shutdown(cl);
return;
+
+ case SMS_DO_UPDATE:
+ trigger_dcm(cl);
+ return;
}
}
com_err(whoami, 0, "Access check complete.");
}
+
+struct query pseudo_query = {
+ "trigger_dcm",
+ "tdcm",
+};
+
+trigger_dcm(cl)
+ client *cl;
+{
+ register int pid;
+
+ cl->reply.sms_argc = 0;
+
+ if (cl->reply.sms_status = check_query_access(&pseudo_query, 0, cl) )
+ return;
+
+ pid = vfork();
+ switch (pid) {
+ case 0:
+ execl("/u1/sms/bin/dcm", "dcm", 0);
+ exit(1);
+
+ case -1:
+ cl->reply.sms_status = errno;
+ return;
+
+ default:
+ return;
+ }
+}
+