]> andersk Git - moira.git/blob - lib/mr_access.c
f386d80639b0f5882058467662c4ad17c538aa38
[moira.git] / lib / mr_access.c
1 /*
2  *      $Source$
3  *      $Author$
4  *      $Header$
5  *
6  *      Copyright (C) 1987, 1990 by the Massachusetts Institute of Technology
7  *      For copying and distribution information, please see the file
8  *      <mit-copyright.h>.
9  */
10
11 #ifndef lint
12 static char *rcsid_sms_access_c = "$Header$";
13 #endif lint
14
15 #include <mit-copyright.h>
16 #include "mr_private.h"
17 #include <string.h>
18
19
20 /*
21  * Check access to a named query.
22  */
23 int mr_access(name, argc, argv)
24     char *name;                 /* Query name */
25     int argc;                   /* Arg count */
26     char **argv;                /* Args */
27 {
28     register char **nargv = (char **)malloc(sizeof(char *) * (argc+1));
29     register int status = 0;
30     nargv[0] = name;
31     memcpy((char *)(nargv+1), (char *)argv, sizeof(char *) * argc);
32     status = mr_access_internal(argc+1, nargv);
33     free(nargv);
34     return status;
35 }
36 /*
37  * Check access to a named query, where the query name is argv[0]
38  * and the arguments are the rest of argv[].
39  */
40 int mr_access_internal(argc, argv)
41     int argc;                   /* Arg count */
42     char **argv;                /* Args */
43 {
44     int status;
45     mr_params params_st;
46     register mr_params *params = NULL;
47     mr_params *reply = NULL;
48     
49     CHECK_CONNECTED;
50
51     params = &params_st;
52     params->mr_version_no = sending_version_no;
53     params->mr_procno = MR_ACCESS;
54     params->mr_argc = argc;
55     params->mr_argl = NULL;
56     params->mr_argv = argv;
57         
58     if ((status = mr_do_call(params, &reply)) == 0)
59         status = reply->mr_status;
60
61     mr_destroy_reply(reply);
62
63     return status;
64 }
This page took 0.076805 seconds and 3 git commands to generate.