]> andersk Git - moira.git/commitdiff
Added the trigger_dcm function, which fires off a DCM to do the
authorwesommer <wesommer>
Wed, 19 Aug 1987 22:03:52 +0000 (22:03 +0000)
committerwesommer <wesommer>
Wed, 19 Aug 1987 22:03:52 +0000 (22:03 +0000)
update.

server/mr_scall.c

index cb3ebe44b83014603d743eae01a5863bc6c690ac..132f1c15001bc40d4755ea2a32e815edbe716714 100644 (file)
@@ -6,9 +6,13 @@
  *     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.
  * 
@@ -46,11 +50,13 @@ static char *rcsid_sms_scall_c = "$Header$";
 
 #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();
@@ -140,6 +146,10 @@ do_call(cl)
        case SMS_SHUTDOWN:
                do_shutdown(cl);
                return;
+
+       case SMS_DO_UPDATE:
+               trigger_dcm(cl);
+               return;
        }
 }
 
@@ -289,3 +299,34 @@ do_access(cl)
        
        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;
+       }
+}
+
This page took 0.051473 seconds and 5 git commands to generate.