Changeset 862 for trunk/server/librpc
- Timestamp:
- May 13, 2014, 11:39:04 AM (11 years ago)
- Location:
- trunk/server
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 860
- Property svn:mergeinfo changed
-
trunk/server/librpc/idl/dcerpc.idl
r745 r862 468 468 const uint8 DCERPC_FRAG_LEN_OFFSET = 8; 469 469 const uint8 DCERPC_AUTH_LEN_OFFSET = 10; 470 const uint8 DCERPC_CALL_ID_OFFSET = 12; 470 471 471 472 /* little-endian flag */ -
trunk/server/librpc/idl/ntprinting.idl
r752 r862 31 31 ); 32 32 33 /* Samba 3 tdb storage format: drivers 33 /* 34 * First the string flags and then the Samba 3 tdb storage 35 * format: drivers 34 36 * "dffffffff" followed by a remaining buffer of "f" array */ 35 37 36 38 typedef [flag(NDR_NOALIGN),public] struct { 39 [skip] uint32 string_flags; 40 37 41 uint32 version; 38 utf8string name;39 utf8string environment;40 utf8string driverpath;41 utf8string datafile;42 utf8string configfile;43 utf8string helpfile;44 utf8string monitorname;45 utf8string defaultdatatype;46 [flag( STR_UTF8|STR_NOTERM|NDR_REMAINING)] string_array dependent_files;42 [flag(ndr_ntprinting_string_flags(r->string_flags))] string name; 43 [flag(ndr_ntprinting_string_flags(r->string_flags))] string environment; 44 [flag(ndr_ntprinting_string_flags(r->string_flags))] string driverpath; 45 [flag(ndr_ntprinting_string_flags(r->string_flags))] string datafile; 46 [flag(ndr_ntprinting_string_flags(r->string_flags))] string configfile; 47 [flag(ndr_ntprinting_string_flags(r->string_flags))] string helpfile; 48 [flag(ndr_ntprinting_string_flags(r->string_flags))] string monitorname; 49 [flag(ndr_ntprinting_string_flags(r->string_flags))] string defaultdatatype; 50 [flag((ndr_ntprinting_string_flags(r->string_flags)&~STR_NULLTERM)|STR_NOTERM|NDR_REMAINING)] string_array dependent_files; 47 51 } ntprinting_driver; 48 52 … … 58 62 59 63 typedef [flag(NDR_NOALIGN),public] struct { 64 [skip] uint32 string_flags; 65 60 66 /* uint32 devicemode_ptr; */ 61 utf8string devicename;62 utf8string formname;67 [flag(ndr_ntprinting_string_flags(r->string_flags))] string devicename; 68 [flag(ndr_ntprinting_string_flags(r->string_flags))] string formname; 63 69 uint16 specversion; 64 70 uint16 driverversion; … … 96 102 } ntprinting_devicemode; 97 103 98 /* Samba 3 tdb storage format: printer_data 104 /* 105 * First the string flags and then the Samba 3 tdb storage 106 * format: printer_data 99 107 * "p" ptr to printer_data 100 108 * "fdB" */ 101 109 102 110 typedef [flag(NDR_NOALIGN),public] struct { 111 [skip] uint32 string_flags; 112 103 113 uint32 ptr; 104 utf8string name;114 [flag(ndr_ntprinting_string_flags(r->string_flags))] string name; 105 115 uint32 type; 106 116 DATA_BLOB data; 107 117 } ntprinting_printer_data; 108 118 109 /* Samba 3 tdb storage format: printer_info 110 * "dddddddddddfffffPfffff" */ 119 /* 120 * First the string flags and then the Samba 3 tdb storage 121 * format: printer_info 122 * "dddddddddddfffffPfffff" 123 */ 111 124 112 125 typedef [flag(NDR_NOALIGN),public] struct { 126 [skip] uint32 string_flags; 127 113 128 uint32 attributes; 114 129 uint32 priority; … … 122 137 uint32 c_setprinter; 123 138 uint32 setuptime; 124 utf8string servername;125 utf8string printername;126 utf8string sharename;127 utf8string portname;128 utf8string drivername;129 utf8string comment;130 utf8string location;131 utf8string sepfile;132 utf8string printprocessor;133 utf8string datatype;134 utf8string parameters;139 [flag(ndr_ntprinting_string_flags(r->string_flags))] string servername; 140 [flag(ndr_ntprinting_string_flags(r->string_flags))] string printername; 141 [flag(ndr_ntprinting_string_flags(r->string_flags))] string sharename; 142 [flag(ndr_ntprinting_string_flags(r->string_flags))] string portname; 143 [flag(ndr_ntprinting_string_flags(r->string_flags))] string drivername; 144 [flag(ndr_ntprinting_string_flags(r->string_flags))] string comment; 145 [flag(ndr_ntprinting_string_flags(r->string_flags))] string location; 146 [flag(ndr_ntprinting_string_flags(r->string_flags))] string sepfile; 147 [flag(ndr_ntprinting_string_flags(r->string_flags))] string printprocessor; 148 [flag(ndr_ntprinting_string_flags(r->string_flags))] string datatype; 149 [flag(ndr_ntprinting_string_flags(r->string_flags))] string parameters; 135 150 } ntprinting_printer_info; 136 151 -
trunk/server/librpc/idl/security.idl
r752 r862 594 594 SECINFO_SACL = 0x00000008, 595 595 SECINFO_LABEL = 0x00000010, 596 SECINFO_ATTRIBUTE = 0x00000020, 597 SECINFO_SCOPE = 0x00000040, 598 SECINFO_BACKUP = 0x00010000, 596 599 SECINFO_UNPROTECTED_SACL = 0x10000000, 597 600 SECINFO_UNPROTECTED_DACL = 0x20000000, -
trunk/server/librpc/idl/spoolss.idl
r752 r862 1304 1304 SPOOLSS_DRIVER_VERSION_NT35 = 1, 1305 1305 SPOOLSS_DRIVER_VERSION_NT4 = 2, 1306 SPOOLSS_DRIVER_VERSION_200X = 3 1306 SPOOLSS_DRIVER_VERSION_200X = 3, 1307 SPOOLSS_DRIVER_VERSION_2012 = 4 1307 1308 } spoolss_DriverOSVersion; 1308 1309 -
trunk/server/librpc/ndr/ndr_ntprinting.c
r752 r862 23 23 #include "../librpc/gen_ndr/ndr_ntprinting.h" 24 24 25 _PUBLIC_ uint32_t ndr_ntprinting_string_flags(uint32_t string_flags) 26 { 27 uint32_t flags = LIBNDR_FLAG_STR_NULLTERM; 28 29 if (string_flags & LIBNDR_FLAG_STR_ASCII) { 30 flags |= LIBNDR_FLAG_STR_ASCII; 31 } else { 32 flags |= LIBNDR_FLAG_STR_UTF8; 33 } 34 35 return flags; 36 } 37 25 38 _PUBLIC_ enum ndr_err_code ndr_pull_ntprinting_printer(struct ndr_pull *ndr, int ndr_flags, struct ntprinting_printer *r) 26 39 { … … 44 57 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr); 45 58 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0); 59 r->devmode->string_flags = r->info.string_flags; 46 60 NDR_CHECK(ndr_pull_ntprinting_devicemode(ndr, NDR_SCALARS|NDR_BUFFERS, r->devmode)); 47 61 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0); … … 60 74 r->printer_data = talloc_realloc(ndr, r->printer_data, struct ntprinting_printer_data, r->count + 1); 61 75 NDR_ERR_HAVE_NO_MEMORY(r->printer_data); 76 r->printer_data[r->count].string_flags = r->info.string_flags; 62 77 NDR_CHECK(ndr_pull_ntprinting_printer_data(ndr, NDR_SCALARS, &r->printer_data[r->count])); 63 78 r->count++; -
trunk/server/librpc/ndr/ndr_ntprinting.h
r745 r862 23 23 #include "../librpc/gen_ndr/ndr_ntprinting.h" 24 24 25 _PUBLIC_ uint32_t ndr_ntprinting_string_flags(uint32_t string_flags); 26 25 27 _PUBLIC_ enum ndr_err_code ndr_pull_ntprinting_printer(struct ndr_pull *ndr, int ndr_flags, struct ntprinting_printer *r); -
trunk/server/librpc/rpc/dcerpc_util.c
r745 r862 46 46 } else { 47 47 return RSVAL(blob->data, DCERPC_FRAG_LEN_OFFSET); 48 } 49 } 50 51 uint32_t dcerpc_get_call_id(const DATA_BLOB *blob) 52 { 53 if (CVAL(blob->data,DCERPC_DREP_OFFSET) & DCERPC_DREP_LE) { 54 return IVAL(blob->data, DCERPC_CALL_ID_OFFSET); 55 } else { 56 return RIVAL(blob->data, DCERPC_CALL_ID_OFFSET); 48 57 } 49 58 } … … 224 233 ofs = state->buffer.length; 225 234 235 if (frag_len < ofs) { 236 /* 237 * something is wrong, let the caller deal with it 238 */ 239 *_vector = NULL; 240 *_count = 0; 241 return 0; 242 } 243 226 244 state->buffer.data = talloc_realloc(state, 227 245 state->buffer.data, … … 293 311 } 294 312 313 if (state->pkt->frag_length != state->buffer.length) { 314 tevent_req_nterror(req, NT_STATUS_RPC_PROTOCOL_ERROR); 315 return; 316 } 317 295 318 tevent_req_done(req); 296 319 } -
trunk/server/librpc/rpc/rpc_common.h
r745 r862 136 136 void dcerpc_set_frag_length(DATA_BLOB *blob, uint16_t v); 137 137 uint16_t dcerpc_get_frag_length(const DATA_BLOB *blob); 138 uint32_t dcerpc_get_call_id(const DATA_BLOB *blob); 138 139 void dcerpc_set_auth_length(DATA_BLOB *blob, uint16_t v); 139 140 uint8_t dcerpc_get_endian_flag(DATA_BLOB *blob);
Note:
See TracChangeset
for help on using the changeset viewer.