| 1 | /*
|
|---|
| 2 | * Unix SMB/CIFS implementation.
|
|---|
| 3 | * RPC Pipe client / server routines
|
|---|
| 4 | * Copyright (C) Guenther Deschner 2008.
|
|---|
| 5 | *
|
|---|
| 6 | * This program is free software; you can redistribute it and/or modify
|
|---|
| 7 | * it under the terms of the GNU General Public License as published by
|
|---|
| 8 | * the Free Software Foundation; either version 3 of the License, or
|
|---|
| 9 | * (at your option) any later version.
|
|---|
| 10 | *
|
|---|
| 11 | * This program is distributed in the hope that it will be useful,
|
|---|
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|---|
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|---|
| 14 | * GNU General Public License for more details.
|
|---|
| 15 | *
|
|---|
| 16 | * You should have received a copy of the GNU General Public License
|
|---|
| 17 | * along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|---|
| 18 | */
|
|---|
| 19 |
|
|---|
| 20 | #include "includes.h"
|
|---|
| 21 |
|
|---|
| 22 | /*******************************************************************
|
|---|
| 23 | inits a structure.
|
|---|
| 24 | ********************************************************************/
|
|---|
| 25 |
|
|---|
| 26 | void init_lsa_String(struct lsa_String *name, const char *s)
|
|---|
| 27 | {
|
|---|
| 28 | name->string = s;
|
|---|
| 29 | name->size = 2 * strlen_m(s);
|
|---|
| 30 | name->length = name->size;
|
|---|
| 31 | }
|
|---|
| 32 |
|
|---|
| 33 | /*******************************************************************
|
|---|
| 34 | inits a structure.
|
|---|
| 35 | ********************************************************************/
|
|---|
| 36 |
|
|---|
| 37 | void init_lsa_StringLarge(struct lsa_StringLarge *name, const char *s)
|
|---|
| 38 | {
|
|---|
| 39 | name->string = s;
|
|---|
| 40 | }
|
|---|
| 41 |
|
|---|
| 42 | /*******************************************************************
|
|---|
| 43 | inits a structure.
|
|---|
| 44 | ********************************************************************/
|
|---|
| 45 |
|
|---|
| 46 | void init_lsa_AsciiString(struct lsa_AsciiString *name, const char *s)
|
|---|
| 47 | {
|
|---|
| 48 | name->string = s;
|
|---|
| 49 | }
|
|---|
| 50 |
|
|---|
| 51 | /*******************************************************************
|
|---|
| 52 | inits a structure.
|
|---|
| 53 | ********************************************************************/
|
|---|
| 54 |
|
|---|
| 55 | void init_lsa_AsciiStringLarge(struct lsa_AsciiStringLarge *name, const char *s)
|
|---|
| 56 | {
|
|---|
| 57 | name->string = s;
|
|---|
| 58 | }
|
|---|
| 59 |
|
|---|
| 60 | /*******************************************************************
|
|---|
| 61 | Inits an lsa_QosInfo structure.
|
|---|
| 62 | ********************************************************************/
|
|---|
| 63 |
|
|---|
| 64 | void init_lsa_sec_qos(struct lsa_QosInfo *r,
|
|---|
| 65 | uint32_t len,
|
|---|
| 66 | uint16_t impersonation_level,
|
|---|
| 67 | uint8_t context_mode,
|
|---|
| 68 | uint8_t effective_only)
|
|---|
| 69 | {
|
|---|
| 70 | DEBUG(5, ("init_lsa_sec_qos\n"));
|
|---|
| 71 |
|
|---|
| 72 | r->len = len;
|
|---|
| 73 | r->impersonation_level = impersonation_level;
|
|---|
| 74 | r->context_mode = context_mode;
|
|---|
| 75 | r->effective_only = effective_only;
|
|---|
| 76 | }
|
|---|
| 77 |
|
|---|
| 78 | /*******************************************************************
|
|---|
| 79 | Inits an lsa_ObjectAttribute structure.
|
|---|
| 80 | ********************************************************************/
|
|---|
| 81 |
|
|---|
| 82 | void init_lsa_obj_attr(struct lsa_ObjectAttribute *r,
|
|---|
| 83 | uint32_t len,
|
|---|
| 84 | uint8_t *root_dir,
|
|---|
| 85 | const char *object_name,
|
|---|
| 86 | uint32_t attributes,
|
|---|
| 87 | struct security_descriptor *sec_desc,
|
|---|
| 88 | struct lsa_QosInfo *sec_qos)
|
|---|
| 89 | {
|
|---|
| 90 | DEBUG(5,("init_lsa_obj_attr\n"));
|
|---|
| 91 |
|
|---|
| 92 | r->len = len;
|
|---|
| 93 | r->root_dir = root_dir;
|
|---|
| 94 | r->object_name = object_name;
|
|---|
| 95 | r->attributes = attributes;
|
|---|
| 96 | r->sec_desc = sec_desc;
|
|---|
| 97 | r->sec_qos = sec_qos;
|
|---|
| 98 | }
|
|---|
| 99 |
|
|---|
| 100 | /*******************************************************************
|
|---|
| 101 | Inits a lsa_TranslatedSid structure.
|
|---|
| 102 | ********************************************************************/
|
|---|
| 103 |
|
|---|
| 104 | void init_lsa_translated_sid(struct lsa_TranslatedSid *r,
|
|---|
| 105 | enum lsa_SidType sid_type,
|
|---|
| 106 | uint32_t rid,
|
|---|
| 107 | uint32_t sid_index)
|
|---|
| 108 | {
|
|---|
| 109 | r->sid_type = sid_type;
|
|---|
| 110 | r->rid = rid;
|
|---|
| 111 | r->sid_index = sid_index;
|
|---|
| 112 | }
|
|---|
| 113 |
|
|---|
| 114 | /*******************************************************************
|
|---|
| 115 | Inits a lsa_TranslatedName2 structure.
|
|---|
| 116 | ********************************************************************/
|
|---|
| 117 |
|
|---|
| 118 | void init_lsa_translated_name2(struct lsa_TranslatedName2 *r,
|
|---|
| 119 | enum lsa_SidType sid_type,
|
|---|
| 120 | const char *name,
|
|---|
| 121 | uint32_t sid_index,
|
|---|
| 122 | uint32_t unknown)
|
|---|
| 123 | {
|
|---|
| 124 | r->sid_type = sid_type;
|
|---|
| 125 | init_lsa_String(&r->name, name);
|
|---|
| 126 | r->sid_index = sid_index;
|
|---|
| 127 | r->unknown = unknown;
|
|---|
| 128 | }
|
|---|