Changeset 740 for vendor/current/source4/torture/rpc/eventlog.c
- Timestamp:
- Nov 14, 2012, 12:59:34 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified vendor/current/source4/torture/rpc/eventlog.c ¶
r414 r740 22 22 23 23 #include "includes.h" 24 #include "torture/torture.h"25 24 #include "librpc/gen_ndr/ndr_eventlog.h" 26 25 #include "librpc/gen_ndr/ndr_eventlog_c.h" 27 #include "librpc/gen_ndr/ndr_lsa.h" 28 #include "torture/rpc/rpc.h" 26 #include "torture/rpc/torture_rpc.h" 29 27 #include "param/param.h" 30 28 … … 39 37 40 38 static bool get_policy_handle(struct torture_context *tctx, 41 struct dcerpc_ pipe *p,39 struct dcerpc_binding_handle *b, 42 40 struct policy_handle *handle) 43 41 { … … 59 57 60 58 torture_assert_ntstatus_ok(tctx, 61 dcerpc_eventlog_OpenEventLogW (p, tctx, &r),59 dcerpc_eventlog_OpenEventLogW_r(b, tctx, &r), 62 60 "OpenEventLog failed"); 63 61 … … 75 73 struct policy_handle handle; 76 74 uint32_t number = 0; 77 78 if (!get_policy_handle(tctx, p, &handle)) 75 struct dcerpc_binding_handle *b = p->binding_handle; 76 77 if (!get_policy_handle(tctx, b, &handle)) 79 78 return false; 80 79 … … 84 83 85 84 torture_assert_ntstatus_ok(tctx, 86 dcerpc_eventlog_GetNumRecords (p, tctx, &r),85 dcerpc_eventlog_GetNumRecords_r(b, tctx, &r), 87 86 "GetNumRecords failed"); 88 87 torture_assert_ntstatus_ok(tctx, r.out.result, 88 "GetNumRecords failed"); 89 89 torture_comment(tctx, "%d records\n", *r.out.number); 90 90 … … 92 92 93 93 torture_assert_ntstatus_ok(tctx, 94 dcerpc_eventlog_CloseEventLog(p, tctx, &cr), 94 dcerpc_eventlog_CloseEventLog_r(b, tctx, &cr), 95 "CloseEventLog failed"); 96 torture_assert_ntstatus_ok(tctx, cr.out.result, 95 97 "CloseEventLog failed"); 96 98 return true; … … 104 106 struct eventlog_CloseEventLog cr; 105 107 struct policy_handle handle; 108 struct dcerpc_binding_handle *b = p->binding_handle; 106 109 107 110 uint32_t sent_size = 0; 108 111 uint32_t real_size = 0; 109 112 110 if (!get_policy_handle(tctx, p, &handle))113 if (!get_policy_handle(tctx, b, &handle)) 111 114 return false; 112 115 … … 119 122 r.out.real_size = &real_size; 120 123 121 status = dcerpc_eventlog_ReadEventLogW(p, tctx, &r); 124 torture_assert_ntstatus_ok(tctx, dcerpc_eventlog_ReadEventLogW_r(b, tctx, &r), 125 "ReadEventLog failed"); 122 126 123 127 torture_assert_ntstatus_equal(tctx, r.out.result, NT_STATUS_INVALID_PARAMETER, … … 139 143 r.out.real_size = &real_size; 140 144 141 status = dcerpc_eventlog_ReadEventLogW(p, tctx, &r); 145 torture_assert_ntstatus_ok(tctx, dcerpc_eventlog_ReadEventLogW_r(b, tctx, &r), 146 "ReadEventLogW failed"); 142 147 143 148 if (NT_STATUS_EQUAL(r.out.result, NT_STATUS_END_OF_FILE)) { … … 154 159 r.out.data = talloc_array(tctx, uint8_t, r.in.number_of_bytes); 155 160 156 status = dcerpc_eventlog_ReadEventLogW(p, tctx, &r); 157 158 torture_assert_ntstatus_ok(tctx, status, "ReadEventLog failed"); 161 torture_assert_ntstatus_ok(tctx, dcerpc_eventlog_ReadEventLogW_r(b, tctx, &r), 162 "ReadEventLogW failed"); 163 164 torture_assert_ntstatus_ok(tctx, r.out.result, "ReadEventLog failed"); 159 165 160 166 /* Decode a user-marshalled record */ … … 166 172 dump_data(0, blob.data, blob.length); 167 173 168 ndr_err = ndr_pull_struct_blob_all(&blob, tctx, 169 lp_iconv_convenience(tctx->lp_ctx), &rec, 174 ndr_err = ndr_pull_struct_blob_all(&blob, tctx, &rec, 170 175 (ndr_pull_flags_fn_t)ndr_pull_EVENTLOGRECORD); 171 176 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { … … 186 191 } 187 192 188 torture_assert_ntstatus_ok(tctx, status,193 torture_assert_ntstatus_ok(tctx, r.out.result, 189 194 "ReadEventLog failed parsing event log record"); 190 195 … … 195 200 196 201 torture_assert_ntstatus_ok(tctx, 197 dcerpc_eventlog_CloseEventLog(p, tctx, &cr), 202 dcerpc_eventlog_CloseEventLog_r(b, tctx, &cr), 203 "CloseEventLog failed"); 204 torture_assert_ntstatus_ok(tctx, cr.out.result, 198 205 "CloseEventLog failed"); 199 206 … … 207 214 struct eventlog_CloseEventLog cr; 208 215 struct policy_handle handle; 216 struct dcerpc_binding_handle *b = p->binding_handle; 209 217 210 218 uint32_t record_number = 0; … … 212 220 struct lsa_String servername, *strings; 213 221 214 if (!get_policy_handle(tctx, p, &handle))222 if (!get_policy_handle(tctx, b, &handle)) 215 223 return false; 216 224 … … 238 246 239 247 torture_assert_ntstatus_ok(tctx, 240 dcerpc_eventlog_ReportEventW (p, tctx, &r),248 dcerpc_eventlog_ReportEventW_r(b, tctx, &r), 241 249 "ReportEventW failed"); 242 250 … … 246 254 247 255 torture_assert_ntstatus_ok(tctx, 248 dcerpc_eventlog_CloseEventLog(p, tctx, &cr), 249 "CloseEventLog failed"); 256 dcerpc_eventlog_CloseEventLog_r(b, tctx, &cr), 257 "CloseEventLog failed"); 258 torture_assert_ntstatus_ok(tctx, cr.out.result, 259 "CloseEventLog failed"); 260 250 261 return true; 251 262 } … … 257 268 struct eventlog_CloseEventLog cr; 258 269 struct policy_handle handle; 259 260 if (!get_policy_handle(tctx, p, &handle)) 270 struct dcerpc_binding_handle *b = p->binding_handle; 271 272 if (!get_policy_handle(tctx, b, &handle)) 261 273 return false; 262 274 … … 264 276 265 277 /* Huh? Does this RPC always return access denied? */ 278 torture_assert_ntstatus_ok(tctx, 279 dcerpc_eventlog_FlushEventLog_r(b, tctx, &r), 280 "FlushEventLog failed"); 281 266 282 torture_assert_ntstatus_equal(tctx, 267 dcerpc_eventlog_FlushEventLog(p, tctx, &r),283 r.out.result, 268 284 NT_STATUS_ACCESS_DENIED, 269 285 "FlushEventLog failed"); … … 272 288 273 289 torture_assert_ntstatus_ok(tctx, 274 dcerpc_eventlog_CloseEventLog(p, tctx, &cr), 290 dcerpc_eventlog_CloseEventLog_r(b, tctx, &cr), 291 "CloseEventLog failed"); 292 torture_assert_ntstatus_ok(tctx, cr.out.result, 275 293 "CloseEventLog failed"); 276 294 … … 284 302 struct eventlog_CloseEventLog cr; 285 303 struct policy_handle handle; 286 287 if (!get_policy_handle(tctx, p, &handle)) 304 struct dcerpc_binding_handle *b = p->binding_handle; 305 306 if (!get_policy_handle(tctx, b, &handle)) 288 307 return false; 289 308 … … 292 311 293 312 torture_assert_ntstatus_ok(tctx, 294 dcerpc_eventlog_ClearEventLogW (p, tctx, &r),313 dcerpc_eventlog_ClearEventLogW_r(b, tctx, &r), 295 314 "ClearEventLog failed"); 296 297 cr.in.handle = cr.out.handle = &handle; 298 299 torture_assert_ntstatus_ok(tctx, 300 dcerpc_eventlog_CloseEventLog(p, tctx, &cr), 315 torture_assert_ntstatus_ok(tctx, r.out.result, 316 "ClearEventLog failed"); 317 318 cr.in.handle = cr.out.handle = &handle; 319 320 torture_assert_ntstatus_ok(tctx, 321 dcerpc_eventlog_CloseEventLog_r(b, tctx, &cr), 322 "CloseEventLog failed"); 323 torture_assert_ntstatus_ok(tctx, cr.out.result, 301 324 "CloseEventLog failed"); 302 325 … … 307 330 struct dcerpc_pipe *p) 308 331 { 309 NTSTATUS status;310 332 struct eventlog_GetLogInformation r; 311 333 struct eventlog_CloseEventLog cr; 312 334 struct policy_handle handle; 313 335 uint32_t bytes_needed = 0; 314 315 if (!get_policy_handle(tctx, p, &handle)) 336 struct dcerpc_binding_handle *b = p->binding_handle; 337 338 if (!get_policy_handle(tctx, b, &handle)) 316 339 return false; 317 340 … … 322 345 r.out.bytes_needed = &bytes_needed; 323 346 324 status = dcerpc_eventlog_GetLogInformation(p, tctx, &r); 325 326 torture_assert_ntstatus_equal(tctx, status, NT_STATUS_INVALID_LEVEL, 347 torture_assert_ntstatus_ok(tctx, dcerpc_eventlog_GetLogInformation_r(b, tctx, &r), 348 "GetLogInformation failed"); 349 350 torture_assert_ntstatus_equal(tctx, r.out.result, NT_STATUS_INVALID_LEVEL, 327 351 "GetLogInformation failed"); 328 352 329 353 r.in.level = 0; 330 354 331 status = dcerpc_eventlog_GetLogInformation(p, tctx, &r); 332 333 torture_assert_ntstatus_equal(tctx, status, NT_STATUS_BUFFER_TOO_SMALL, 355 torture_assert_ntstatus_ok(tctx, dcerpc_eventlog_GetLogInformation_r(b, tctx, &r), 356 "GetLogInformation failed"); 357 358 torture_assert_ntstatus_equal(tctx, r.out.result, NT_STATUS_BUFFER_TOO_SMALL, 334 359 "GetLogInformation failed"); 335 360 … … 337 362 r.out.buffer = talloc_array(tctx, uint8_t, bytes_needed); 338 363 339 status = dcerpc_eventlog_GetLogInformation(p, tctx, &r); 340 341 torture_assert_ntstatus_ok(tctx, status, "GetLogInformation failed"); 342 343 cr.in.handle = cr.out.handle = &handle; 344 345 torture_assert_ntstatus_ok(tctx, 346 dcerpc_eventlog_CloseEventLog(p, tctx, &cr), 364 torture_assert_ntstatus_ok(tctx, dcerpc_eventlog_GetLogInformation_r(b, tctx, &r), 365 "GetLogInformation failed"); 366 367 torture_assert_ntstatus_ok(tctx, r.out.result, "GetLogInformation failed"); 368 369 cr.in.handle = cr.out.handle = &handle; 370 371 torture_assert_ntstatus_ok(tctx, 372 dcerpc_eventlog_CloseEventLog_r(b, tctx, &cr), 373 "CloseEventLog failed"); 374 torture_assert_ntstatus_ok(tctx, cr.out.result, 347 375 "CloseEventLog failed"); 348 376 … … 356 384 struct policy_handle handle; 357 385 struct eventlog_CloseEventLog cr; 358 359 if (!get_policy_handle(tctx, p, &handle)) 360 return false; 361 362 cr.in.handle = cr.out.handle = &handle; 363 364 torture_assert_ntstatus_ok(tctx, 365 dcerpc_eventlog_CloseEventLog(p, tctx, &cr), 386 struct dcerpc_binding_handle *b = p->binding_handle; 387 388 if (!get_policy_handle(tctx, b, &handle)) 389 return false; 390 391 cr.in.handle = cr.out.handle = &handle; 392 393 torture_assert_ntstatus_ok(tctx, 394 dcerpc_eventlog_CloseEventLog_r(b, tctx, &cr), 395 "CloseEventLog failed"); 396 torture_assert_ntstatus_ok(tctx, cr.out.result, 366 397 "CloseEventLog failed"); 367 398 … … 372 403 struct dcerpc_pipe *p) 373 404 { 374 NTSTATUS status;375 405 struct policy_handle handle, backup_handle; 376 406 struct eventlog_BackupEventLogW r; 377 struct eventlog_OpenBackupEventLogW b ;407 struct eventlog_OpenBackupEventLogW br; 378 408 struct eventlog_CloseEventLog cr; 379 409 const char *tmp; 380 410 struct lsa_String backup_filename; 381 411 struct eventlog_OpenUnknown0 unknown0; 382 383 if (!get_policy_handle(tctx, p, &handle)) 412 struct dcerpc_binding_handle *b = p->binding_handle; 413 414 if (torture_setting_bool(tctx, "samba3", false)) { 415 torture_skip(tctx, "skipping BackupLog test against samba"); 416 } 417 418 if (!get_policy_handle(tctx, b, &handle)) 384 419 return false; 385 420 … … 390 425 r.in.backup_filename = &backup_filename; 391 426 392 status = dcerpc_eventlog_BackupEventLogW(p, tctx, &r); 393 torture_assert_ntstatus_equal(tctx, status, 427 torture_assert_ntstatus_ok(tctx, dcerpc_eventlog_BackupEventLogW_r(b, tctx, &r), 428 "BackupEventLogW failed"); 429 torture_assert_ntstatus_equal(tctx, r.out.result, 394 430 NT_STATUS_OBJECT_PATH_SYNTAX_BAD, "BackupEventLogW failed"); 395 431 … … 400 436 r.in.backup_filename = &backup_filename; 401 437 402 status = dcerpc_eventlog_BackupEventLogW(p, tctx, &r); 403 torture_assert_ntstatus_ok(tctx, status, "BackupEventLogW failed"); 404 405 status = dcerpc_eventlog_BackupEventLogW(p, tctx, &r); 406 torture_assert_ntstatus_equal(tctx, status, 438 torture_assert_ntstatus_ok(tctx, dcerpc_eventlog_BackupEventLogW_r(b, tctx, &r), 439 "BackupEventLogW failed"); 440 torture_assert_ntstatus_ok(tctx, r.out.result, "BackupEventLogW failed"); 441 442 torture_assert_ntstatus_ok(tctx, dcerpc_eventlog_BackupEventLogW_r(b, tctx, &r), 443 "BackupEventLogW failed"); 444 torture_assert_ntstatus_equal(tctx, r.out.result, 407 445 NT_STATUS_OBJECT_NAME_COLLISION, "BackupEventLogW failed"); 408 446 … … 410 448 411 449 torture_assert_ntstatus_ok(tctx, 412 dcerpc_eventlog_CloseEventLog(p, tctx, &cr), 450 dcerpc_eventlog_CloseEventLog_r(b, tctx, &cr), 451 "BackupLog failed"); 452 torture_assert_ntstatus_ok(tctx, cr.out.result, 413 453 "BackupLog failed"); 414 454 … … 416 456 unknown0.unknown1 = 0x0001; 417 457 418 b.in.unknown0 = &unknown0; 419 b.in.backup_logname = &backup_filename; 420 b.in.major_version = 1; 421 b.in.minor_version = 1; 422 b.out.handle = &backup_handle; 423 424 status = dcerpc_eventlog_OpenBackupEventLogW(p, tctx, &b); 425 426 torture_assert_ntstatus_ok(tctx, status, "OpenBackupEventLogW failed"); 458 br.in.unknown0 = &unknown0; 459 br.in.backup_logname = &backup_filename; 460 br.in.major_version = 1; 461 br.in.minor_version = 1; 462 br.out.handle = &backup_handle; 463 464 torture_assert_ntstatus_ok(tctx, dcerpc_eventlog_OpenBackupEventLogW_r(b, tctx, &br), 465 "OpenBackupEventLogW failed"); 466 467 torture_assert_ntstatus_ok(tctx, br.out.result, "OpenBackupEventLogW failed"); 427 468 428 469 cr.in.handle = cr.out.handle = &backup_handle; 429 470 430 471 torture_assert_ntstatus_ok(tctx, 431 dcerpc_eventlog_CloseEventLog(p, tctx, &cr), 472 dcerpc_eventlog_CloseEventLog_r(b, tctx, &cr), 473 "CloseEventLog failed"); 474 torture_assert_ntstatus_ok(tctx, cr.out.result, 432 475 "CloseEventLog failed"); 433 476 … … 441 484 struct torture_test *test; 442 485 443 suite = torture_suite_create(mem_ctx, " EVENTLOG");486 suite = torture_suite_create(mem_ctx, "eventlog"); 444 487 tcase = torture_suite_add_rpc_iface_tcase(suite, "eventlog", 445 488 &ndr_table_eventlog);
Note:
See TracChangeset
for help on using the changeset viewer.