1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20: #include <rpcsvc/nis.h>
21:
22: #include "nis_xdr.h"
23: #include "nis_intern.h"
24:
25: nis_result *
26: nis_remove (const_nis_name name, const nis_object *obj)
27: {
28: nis_result *res;
29: nis_error status;
30: struct ns_request req;
31:
32: res = calloc (1, sizeof (nis_result));
33: if (res == NULL)
34: return NULL;
35:
36: req.ns_name = (char *)name;
37:
38: if (obj != NULL)
39: {
40: req.ns_object.ns_object_len = 1;
41: req.ns_object.ns_object_val = nis_clone_object (obj, NULL);
42: }
43: else
44: {
45: req.ns_object.ns_object_len = 0;
46: req.ns_object.ns_object_val = NULL;
47: }
48:
49: if ((status = __do_niscall (name, NIS_REMOVE, (xdrproc_t) _xdr_ns_request,
50: (caddr_t) &req, (xdrproc_t) _xdr_nis_result,
51: (caddr_t) res, MASTER_ONLY,
52: NULL)) != RPC_SUCCESS)
53: NIS_RES_STATUS (res) = status;
54:
55: nis_destroy_object (req.ns_object.ns_object_val);
56:
57: return res;
58: }
59: libnsl_hidden_def (nis_remove)