Changeset 745 for trunk/server/source3/rpcclient/cmd_eventlog.c
- Timestamp:
- Nov 27, 2012, 4:43:17 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 581,587,591,594,597,600,615,618,740
- Property svn:mergeinfo changed
-
trunk/server/source3/rpcclient/cmd_eventlog.c
r414 r745 21 21 #include "includes.h" 22 22 #include "rpcclient.h" 23 #include "../librpc/gen_ndr/cli_eventlog.h" 23 #include "../librpc/gen_ndr/ndr_eventlog.h" 24 #include "../librpc/gen_ndr/ndr_eventlog_c.h" 25 #include "rpc_client/init_lsa.h" 24 26 25 27 static NTSTATUS get_eventlog_handle(struct rpc_pipe_client *cli, … … 28 30 struct policy_handle *handle) 29 31 { 30 NTSTATUS status ;32 NTSTATUS status, result; 31 33 struct eventlog_OpenUnknown0 unknown0; 32 34 struct lsa_String logname, servername; 35 struct dcerpc_binding_handle *b = cli->binding_handle; 33 36 34 37 unknown0.unknown0 = 0x005c; … … 38 41 init_lsa_String(&servername, NULL); 39 42 40 status = rpccli_eventlog_OpenEventLogW(cli, mem_ctx,43 status = dcerpc_eventlog_OpenEventLogW(b, mem_ctx, 41 44 &unknown0, 42 45 &logname, … … 44 47 0x00000001, /* major */ 45 48 0x00000001, /* minor */ 46 handle); 47 if (!NT_STATUS_IS_OK(status)) { 48 return status; 49 } 50 51 return NT_STATUS_OK; 49 handle, 50 &result); 51 if (!NT_STATUS_IS_OK(status)) { 52 return status; 53 } 54 55 return result; 52 56 } 53 57 … … 58 62 { 59 63 NTSTATUS status = NT_STATUS_OK; 60 struct policy_handle handle; 64 NTSTATUS result = NT_STATUS_OK; 65 struct policy_handle handle; 66 struct dcerpc_binding_handle *b = cli->binding_handle; 61 67 62 68 uint32_t flags = EVENTLOG_BACKWARDS_READ | … … 98 104 uint32_t pos = 0; 99 105 100 status = rpccli_eventlog_ReadEventLogW(cli, mem_ctx,106 status = dcerpc_eventlog_ReadEventLogW(b, mem_ctx, 101 107 &handle, 102 108 flags, … … 105 111 data, 106 112 &sent_size, 107 &real_size); 108 if (NT_STATUS_EQUAL(status, NT_STATUS_BUFFER_TOO_SMALL) && 113 &real_size, 114 &result); 115 if (!NT_STATUS_IS_OK(status)) { 116 return status; 117 } 118 if (NT_STATUS_EQUAL(result, NT_STATUS_BUFFER_TOO_SMALL) && 109 119 real_size > 0 ) { 110 120 number_of_bytes = real_size; … … 113 123 goto done; 114 124 } 115 status = rpccli_eventlog_ReadEventLogW(cli, mem_ctx,125 status = dcerpc_eventlog_ReadEventLogW(b, mem_ctx, 116 126 &handle, 117 127 flags, … … 120 130 data, 121 131 &sent_size, 122 &real_size); 132 &real_size, 133 &result); 134 if (!NT_STATUS_IS_OK(status)) { 135 return status; 136 } 123 137 } 124 138 125 if (!NT_STATUS_EQUAL( status, NT_STATUS_END_OF_FILE) &&126 !NT_STATUS_IS_OK( status)) {139 if (!NT_STATUS_EQUAL(result, NT_STATUS_END_OF_FILE) && 140 !NT_STATUS_IS_OK(result)) { 127 141 goto done; 128 142 } … … 136 150 blob = data_blob_const(data + pos, size); 137 151 /* dump_data(0, blob.data, blob.length); */ 138 ndr_err = ndr_pull_struct_blob_all(&blob, mem_ctx, NULL,&r,152 ndr_err = ndr_pull_struct_blob_all(&blob, mem_ctx, &r, 139 153 (ndr_pull_flags_fn_t)ndr_pull_EVENTLOGRECORD); 140 154 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { … … 156 170 offset++; 157 171 158 } while (NT_STATUS_IS_OK( status));159 160 done: 161 rpccli_eventlog_CloseEventLog(cli, mem_ctx, &handle);172 } while (NT_STATUS_IS_OK(result)); 173 174 done: 175 dcerpc_eventlog_CloseEventLog(b, mem_ctx, &handle, &result); 162 176 163 177 return status; … … 169 183 const char **argv) 170 184 { 171 NTSTATUS status ;185 NTSTATUS status, result; 172 186 struct policy_handle handle; 173 187 uint32_t number = 0; 188 struct dcerpc_binding_handle *b = cli->binding_handle; 174 189 175 190 if (argc != 2) { … … 183 198 } 184 199 185 status = rpccli_eventlog_GetNumRecords(cli, mem_ctx,200 status = dcerpc_eventlog_GetNumRecords(b, mem_ctx, 186 201 &handle, 187 &number); 188 if (!NT_STATUS_IS_OK(status)) { 202 &number, 203 &result); 204 if (!NT_STATUS_IS_OK(status)) { 205 goto done; 206 } 207 if (!NT_STATUS_IS_OK(result)) { 208 status = result; 189 209 goto done; 190 210 } … … 193 213 194 214 done: 195 rpccli_eventlog_CloseEventLog(cli, mem_ctx, &handle);215 dcerpc_eventlog_CloseEventLog(b, mem_ctx, &handle, &result); 196 216 197 217 return status; … … 203 223 const char **argv) 204 224 { 205 NTSTATUS status ;225 NTSTATUS status, result; 206 226 struct policy_handle handle; 207 227 uint32_t oldest_entry = 0; 228 struct dcerpc_binding_handle *b = cli->binding_handle; 208 229 209 230 if (argc != 2) { … … 217 238 } 218 239 219 status = rpccli_eventlog_GetOldestRecord(cli, mem_ctx,240 status = dcerpc_eventlog_GetOldestRecord(b, mem_ctx, 220 241 &handle, 221 &oldest_entry); 222 if (!NT_STATUS_IS_OK(status)) { 242 &oldest_entry, 243 &result); 244 if (!NT_STATUS_IS_OK(status)) { 245 goto done; 246 } 247 if (!NT_STATUS_IS_OK(result)) { 248 status = result; 223 249 goto done; 224 250 } … … 227 253 228 254 done: 229 rpccli_eventlog_CloseEventLog(cli, mem_ctx, &handle);255 dcerpc_eventlog_CloseEventLog(b, mem_ctx, &handle, &result); 230 256 231 257 return status; … … 237 263 const char **argv) 238 264 { 239 NTSTATUS status; 240 struct policy_handle handle; 265 NTSTATUS status, result; 266 struct policy_handle handle; 267 struct dcerpc_binding_handle *b = cli->binding_handle; 241 268 242 269 uint16_t num_of_strings = 1; … … 266 293 init_lsa_String(&servername, NULL); 267 294 268 status = rpccli_eventlog_ReportEventW(cli, mem_ctx,295 status = dcerpc_eventlog_ReportEventW(b, mem_ctx, 269 296 &handle, 270 297 time(NULL), … … 280 307 0, /* flags */ 281 308 &record_number, 282 &time_written); 283 284 if (!NT_STATUS_IS_OK(status)) { 309 &time_written, 310 &result); 311 312 if (!NT_STATUS_IS_OK(status)) { 313 goto done; 314 } 315 if (!NT_STATUS_IS_OK(result)) { 316 status = result; 285 317 goto done; 286 318 } … … 290 322 291 323 done: 292 rpccli_eventlog_CloseEventLog(cli, mem_ctx, &handle);324 dcerpc_eventlog_CloseEventLog(b, mem_ctx, &handle, &result); 293 325 294 326 return status; … … 300 332 const char **argv) 301 333 { 302 NTSTATUS status; 303 struct policy_handle handle; 334 NTSTATUS status, result; 335 struct policy_handle handle; 336 struct dcerpc_binding_handle *b = cli->binding_handle; 304 337 305 338 uint16_t num_of_strings = 1; … … 330 363 init_lsa_String(&sourcename, "rpcclient"); 331 364 332 status = rpccli_eventlog_ReportEventAndSourceW(cli, mem_ctx,365 status = dcerpc_eventlog_ReportEventAndSourceW(b, mem_ctx, 333 366 &handle, 334 367 time(NULL), … … 345 378 0, /* flags */ 346 379 &record_number, 347 &time_written); 348 if (!NT_STATUS_IS_OK(status)) { 380 &time_written, 381 &result); 382 if (!NT_STATUS_IS_OK(status)) { 383 goto done; 384 } 385 if (!NT_STATUS_IS_OK(result)) { 386 status = result; 349 387 goto done; 350 388 } … … 354 392 355 393 done: 356 rpccli_eventlog_CloseEventLog(cli, mem_ctx, &handle);394 dcerpc_eventlog_CloseEventLog(b, mem_ctx, &handle, &result); 357 395 358 396 return status; … … 364 402 const char **argv) 365 403 { 366 NTSTATUS status ;404 NTSTATUS status, result; 367 405 struct policy_handle log_handle; 368 406 struct lsa_String module_name, reg_module_name; 369 407 struct eventlog_OpenUnknown0 unknown0; 408 struct dcerpc_binding_handle *b = cli->binding_handle; 370 409 371 410 unknown0.unknown0 = 0x005c; … … 380 419 init_lsa_String(®_module_name, NULL); 381 420 382 status = rpccli_eventlog_RegisterEventSourceW(cli, mem_ctx,421 status = dcerpc_eventlog_RegisterEventSourceW(b, mem_ctx, 383 422 &unknown0, 384 423 &module_name, … … 386 425 1, /* major_version */ 387 426 1, /* minor_version */ 388 &log_handle); 389 if (!NT_STATUS_IS_OK(status)) { 390 goto done; 391 } 392 393 done: 394 rpccli_eventlog_DeregisterEventSource(cli, mem_ctx, &log_handle); 427 &log_handle, 428 &result); 429 if (!NT_STATUS_IS_OK(status)) { 430 goto done; 431 } 432 if (!NT_STATUS_IS_OK(result)) { 433 status = result; 434 goto done; 435 } 436 437 done: 438 dcerpc_eventlog_DeregisterEventSource(b, mem_ctx, &log_handle, &result); 395 439 396 440 return status; … … 402 446 const char **argv) 403 447 { 404 NTSTATUS status ;448 NTSTATUS status, result; 405 449 struct policy_handle handle; 406 450 struct lsa_String backup_filename; 407 451 const char *tmp; 452 struct dcerpc_binding_handle *b = cli->binding_handle; 408 453 409 454 if (argc != 3) { … … 425 470 init_lsa_String(&backup_filename, tmp); 426 471 427 status = rpccli_eventlog_BackupEventLogW(cli, mem_ctx,472 status = dcerpc_eventlog_BackupEventLogW(b, mem_ctx, 428 473 &handle, 429 &backup_filename); 430 431 done: 432 rpccli_eventlog_CloseEventLog(cli, mem_ctx, &handle); 474 &backup_filename, 475 &result); 476 if (!NT_STATUS_IS_OK(status)) { 477 goto done; 478 } 479 if (!NT_STATUS_IS_OK(result)) { 480 status = result; 481 goto done; 482 } 483 484 done: 485 dcerpc_eventlog_CloseEventLog(b, mem_ctx, &handle, &result); 433 486 434 487 return status; … … 440 493 const char **argv) 441 494 { 442 NTSTATUS status ;495 NTSTATUS status, result; 443 496 struct policy_handle handle; 444 497 uint8_t *buffer = NULL; 445 498 uint32_t buf_size = 0; 446 499 uint32_t bytes_needed = 0; 500 struct dcerpc_binding_handle *b = cli->binding_handle; 447 501 448 502 if (argc != 2) { … … 456 510 } 457 511 458 status = rpccli_eventlog_GetLogInformation(cli, mem_ctx,512 status = dcerpc_eventlog_GetLogInformation(b, mem_ctx, 459 513 &handle, 460 514 0, /* level */ 461 515 buffer, 462 516 buf_size, 463 &bytes_needed); 464 if (!NT_STATUS_IS_OK(status) && 465 !NT_STATUS_EQUAL(status, NT_STATUS_BUFFER_TOO_SMALL)) { 517 &bytes_needed, 518 &result); 519 if (!NT_STATUS_IS_OK(status)) { 520 goto done; 521 } 522 if (!NT_STATUS_IS_OK(result) && 523 !NT_STATUS_EQUAL(result, NT_STATUS_BUFFER_TOO_SMALL)) { 466 524 goto done; 467 525 } … … 474 532 } 475 533 476 status = rpccli_eventlog_GetLogInformation(cli, mem_ctx,534 status = dcerpc_eventlog_GetLogInformation(b, mem_ctx, 477 535 &handle, 478 536 0, /* level */ 479 537 buffer, 480 538 buf_size, 481 &bytes_needed); 482 if (!NT_STATUS_IS_OK(status)) { 483 goto done; 484 } 485 486 done: 487 rpccli_eventlog_CloseEventLog(cli, mem_ctx, &handle); 539 &bytes_needed, 540 &result); 541 if (!NT_STATUS_IS_OK(status)) { 542 goto done; 543 } 544 if (!NT_STATUS_IS_OK(result)) { 545 status = result; 546 goto done; 547 } 548 549 done: 550 dcerpc_eventlog_CloseEventLog(b, mem_ctx, &handle, &result); 488 551 489 552 return status;
Note:
See TracChangeset
for help on using the changeset viewer.