adding srvsvc pipe.
[samba.git] / source / rpc_parse / parse_svc.c
1
2 /* 
3  *  Unix SMB/Netbios implementation.
4  *  Version 1.9.
5  *  RPC Pipe client / server routines
6  *  Copyright (C) Andrew Tridgell              1992-1997,
7  *  Copyright (C) Luke Kenneth Casson Leighton 1996-1997,
8  *  Copyright (C) Paul Ashton                       1997.
9  *  
10  *  This program is free software; you can redistribute it and/or modify
11  *  it under the terms of the GNU General Public License as published by
12  *  the Free Software Foundation; either version 2 of the License, or
13  *  (at your option) any later version.
14  *  
15  *  This program is distributed in the hope that it will be useful,
16  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  *  GNU General Public License for more details.
19  *  
20  *  You should have received a copy of the GNU General Public License
21  *  along with this program; if not, write to the Free Software
22  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23  */
24
25
26 #include "includes.h"
27
28 extern int DEBUGLEVEL;
29
30 /*******************************************************************
31  make_svc_q_open_policy
32  ********************************************************************/
33 void make_svc_q_open_policy(SVC_Q_OPEN_POLICY *q_u,
34                                 char *server, uint16 unknown)  
35 {
36         DEBUG(5,("make_svc_q_open_policy\n"));
37
38         make_buf_unistr2(&(q_u->uni_srv_name), &(q_u->ptr_srv_name), server);
39         q_u->unknown = unknown;
40
41 }
42
43 /*******************************************************************
44 reads or writes a SVC_Q_OPEN_POLICY structure.
45 ********************************************************************/
46 void svc_io_q_open_policy(char *desc, SVC_Q_OPEN_POLICY *q_u, prs_struct *ps, int depth)
47 {
48         if (q_u == NULL) return;
49
50         prs_debug(ps, depth, desc, "svc_io_q_open_policy");
51         depth++;
52
53         prs_align(ps);
54
55         prs_uint32("ptr_srv_name", ps, depth, &(q_u->ptr_srv_name));
56         smb_io_unistr2("", &(q_u->uni_srv_name), q_u->ptr_srv_name, ps, depth); 
57         prs_align(ps);
58
59         prs_uint32("unknown", ps, depth, &(q_u->unknown));
60         prs_align(ps);
61 }
62
63 /*******************************************************************
64  make_svc_r_open_policy
65  ********************************************************************/
66 void make_svc_r_open_policy(SVC_R_OPEN_POLICY *r_u, POLICY_HND *hnd,
67                                 uint32 status)  
68 {
69         DEBUG(5,("make_svc_r_unknown_0: %d\n", __LINE__));
70
71         memcpy(&(r_u->pol), hnd, sizeof(r_u->pol));
72         r_u->status = status;
73 }
74
75 /*******************************************************************
76 reads or writes a structure.
77 ********************************************************************/
78 void svc_io_r_open_policy(char *desc,  SVC_R_OPEN_POLICY *r_u, prs_struct *ps, int depth)
79 {
80         if (r_u == NULL) return;
81
82         prs_debug(ps, depth, desc, "svc_io_r_open_policy");
83         depth++;
84
85         prs_align(ps);
86
87         smb_io_pol_hnd("", &(r_u->pol), ps, depth);
88
89         prs_uint32("status      ", ps, depth, &(r_u->status));
90 }
91
92 /*******************************************************************
93 makes an SVC_Q_CLOSE structure.
94 ********************************************************************/
95 void make_svc_q_close(SVC_Q_CLOSE *q_c, POLICY_HND *hnd)
96 {
97         if (q_c == NULL || hnd == NULL) return;
98
99         DEBUG(5,("make_svc_q_close\n"));
100
101 }
102
103 /*******************************************************************
104 reads or writes a structure.
105 ********************************************************************/
106 void svc_io_q_close(char *desc,  SVC_Q_CLOSE *q_u, prs_struct *ps, int depth)
107 {
108         if (q_u == NULL) return;
109
110         prs_debug(ps, depth, desc, "svc_io_q_close");
111         depth++;
112
113         prs_align(ps);
114
115         smb_io_pol_hnd("", &(q_u->pol), ps, depth); 
116         prs_align(ps);
117 }
118
119 /*******************************************************************
120 reads or writes a structure.
121 ********************************************************************/
122 void svc_io_r_close(char *desc,  SVC_R_CLOSE *r_u, prs_struct *ps, int depth)
123 {
124         if (r_u == NULL) return;
125
126         prs_debug(ps, depth, desc, "svc_io_r_close");
127         depth++;
128
129         prs_align(ps);
130
131         smb_io_pol_hnd("", &(r_u->pol), ps, depth); 
132         prs_align(ps);
133
134         prs_uint32("status", ps, depth, &(r_u->status));
135 }
136