~ubuntu-branches/ubuntu/vivid/samba/vivid

« back to all changes in this revision

Viewing changes to source4/torture/rpc/rpc.c

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2011-12-21 13:18:04 UTC
  • mfrom: (0.39.21 sid)
  • Revision ID: package-import@ubuntu.com-20111221131804-xtlr39wx6njehxxr
Tags: 2:3.6.1-3ubuntu1
* Merge from Debian testing.  Remaining changes:
  + debian/patches/VERSION.patch:
    - set SAMBA_VERSION_SUFFIX to Ubuntu.
  + debian/patches/error-trans.fix-276472:
    - Add the translation of Unix Error code -ENOTSUP to NT Error Code
    - NT_STATUS_NOT_SUPPORTED to prevent the Permission denied error.
  + debian/smb.conf:
    - add "(Samba, Ubuntu)" to server string.
    - comment out the default [homes] share, and add a comment about
      "valid users = %S" to show users how to restrict access to
      \\server\username to only username.
    - Set 'usershare allow guests', so that usershare admins are 
      allowed to create public shares in addition to authenticated
      ones.
    - add map to guest = Bad user, maps bad username to guest access.
  + debian/samba-common.config:
    - Do not change priority to high if dhclient3 is installed.
    - Use priority medium instead of high for the workgroup question.
  + debian/control:
    - Don't build against or suggest ctdb.
    - Add dependency on samba-common-bin to samba.
  + Add ufw integration:
    - Created debian/samba.ufw.profile
    - debian/rules, debian/samba.dirs, debian/samba.files: install
      profile
    - debian/control: have samba suggest ufw
  + Add apport hook:
    - Created debian/source_samba.py.
    - debian/rules, debian/samba.dirs, debian/samba-common-bin.files: install
  + Switch to upstart:
    - Add debian/samba.{nmbd,smbd}.upstart.
  + debian/samba.logrotate, debian/samba-common.dhcp, debian/samba.if-up:
    - Make them upstart compatible
  + debian/samba.postinst: 
    - Avoid scary pdbedit warnings on first import.
  + debian/samba-common.postinst: Add more informative error message for
    the case where smb.conf was manually deleted
  + debian/patches/fix-debuglevel-name-conflict.patch: don't use 'debug_level'
    as a global variable name in an NSS module 
  + Dropped:
    - debian/patches/error-trans.fix-276472
    - debian/patches/fix-debuglevel-name-conflict.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
*/
20
20
 
21
21
#include "includes.h"
22
 
#include "auth/credentials/credentials.h"
23
22
#include "lib/cmdline/popt_common.h"
24
 
#include "librpc/rpc/dcerpc.h"
25
 
#include "torture/rpc/rpc.h"
 
23
#include "torture/rpc/torture_rpc.h"
26
24
#include "torture/smbtorture.h"
27
25
#include "librpc/ndr/ndr_table.h"
28
26
#include "../lib/util/dlinklist.h"
153
151
 
154
152
        torture_assert_ntstatus_ok(tctx, status, "Error connecting to server");
155
153
 
156
 
        return true;
 
154
        return NT_STATUS_IS_OK(status);
157
155
}
158
156
 
159
157
static bool torture_rpc_setup_machine_bdc(struct torture_context *tctx,
185
183
 
186
184
        torture_assert_ntstatus_ok(tctx, status, "Error connecting to server");
187
185
 
188
 
        return true;
 
186
        return NT_STATUS_IS_OK(status);
189
187
}
190
188
 
191
189
_PUBLIC_ struct torture_rpc_tcase *torture_suite_add_machine_workstation_rpc_iface_tcase(
261
259
 
262
260
        torture_assert_ntstatus_ok(tctx, status, "Error connecting to server");
263
261
 
264
 
        return true;
 
262
        return NT_STATUS_IS_OK(status);
265
263
}
266
264
 
267
265
static bool torture_rpc_setup (struct torture_context *tctx, void **data)
280
278
 
281
279
        torture_assert_ntstatus_ok(tctx, status, "Error connecting to server");
282
280
 
283
 
        return true;
 
281
        return NT_STATUS_IS_OK(status);
284
282
}
285
283
 
286
284
 
354
352
        return fn(tctx, tcase_data->pipe, tcase_data->credentials);
355
353
}
356
354
 
 
355
static bool torture_rpc_wrap_test_join(struct torture_context *tctx,
 
356
                                       struct torture_tcase *tcase,
 
357
                                       struct torture_test *test)
 
358
{
 
359
        bool (*fn) (struct torture_context *, struct dcerpc_pipe *, struct cli_credentials *, struct test_join *);
 
360
        struct torture_rpc_tcase_data *tcase_data =
 
361
                (struct torture_rpc_tcase_data *)tcase->data;
 
362
 
 
363
        fn = test->fn;
 
364
 
 
365
        return fn(tctx, tcase_data->pipe, tcase_data->credentials, tcase_data->join_ctx);
 
366
}
 
367
 
357
368
_PUBLIC_ struct torture_test *torture_rpc_tcase_add_test(
358
369
                                        struct torture_rpc_tcase *tcase, 
359
370
                                        const char *name, 
396
407
        return test;
397
408
}
398
409
 
 
410
_PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_join(
 
411
                                        struct torture_rpc_tcase *tcase,
 
412
                                        const char *name,
 
413
                                        bool (*fn) (struct torture_context *, struct dcerpc_pipe *,
 
414
                                                    struct cli_credentials *, struct test_join *))
 
415
{
 
416
        struct torture_test *test;
 
417
 
 
418
        test = talloc(tcase, struct torture_test);
 
419
 
 
420
        test->name = talloc_strdup(test, name);
 
421
        test->description = NULL;
 
422
        test->run = torture_rpc_wrap_test_join;
 
423
        test->dangerous = false;
 
424
        test->data = NULL;
 
425
        test->fn = fn;
 
426
 
 
427
        DLIST_ADD(tcase->tcase.tests, test);
 
428
 
 
429
        return test;
 
430
}
 
431
 
399
432
_PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_ex(
400
433
                                        struct torture_rpc_tcase *tcase, 
401
434
                                        const char *name, 
421
454
 
422
455
NTSTATUS torture_rpc_init(void)
423
456
{
424
 
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "RPC");
 
457
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "rpc");
425
458
 
426
459
        ndr_table_init();
427
460
 
428
 
        torture_suite_add_simple_test(suite, "LSA", torture_rpc_lsa);
429
 
        torture_suite_add_simple_test(suite, "LSALOOKUP", torture_rpc_lsa_lookup);
430
 
        torture_suite_add_simple_test(suite, "LSA-GETUSER", torture_rpc_lsa_get_user);
 
461
        torture_suite_add_simple_test(suite, "lsa", torture_rpc_lsa);
 
462
        torture_suite_add_simple_test(suite, "lsalookup", torture_rpc_lsa_lookup);
 
463
        torture_suite_add_simple_test(suite, "lsa-getuser", torture_rpc_lsa_get_user);
431
464
        torture_suite_add_suite(suite, torture_rpc_lsa_lookup_sids(suite));
432
465
        torture_suite_add_suite(suite, torture_rpc_lsa_lookup_names(suite));
433
466
        torture_suite_add_suite(suite, torture_rpc_lsa_secrets(suite));
434
467
        torture_suite_add_suite(suite, torture_rpc_lsa_trusted_domains(suite));
 
468
        torture_suite_add_suite(suite, torture_rpc_lsa_forest_trust(suite));
435
469
        torture_suite_add_suite(suite, torture_rpc_lsa_privileges(suite));
436
470
        torture_suite_add_suite(suite, torture_rpc_echo(suite));
437
 
        torture_suite_add_simple_test(suite, "DFS", torture_rpc_dfs);
 
471
        torture_suite_add_suite(suite, torture_rpc_dfs(suite));
438
472
        torture_suite_add_suite(suite, torture_rpc_frsapi(suite));
439
473
        torture_suite_add_suite(suite, torture_rpc_unixinfo(suite));
440
474
        torture_suite_add_suite(suite, torture_rpc_eventlog(suite));
443
477
        torture_suite_add_suite(suite, torture_rpc_handles(suite));
444
478
        torture_suite_add_suite(suite, torture_rpc_object_uuid(suite));
445
479
        torture_suite_add_suite(suite, torture_rpc_winreg(suite));
446
 
        torture_suite_add_simple_test(suite, "SPOOLSS", torture_rpc_spoolss);
 
480
        torture_suite_add_suite(suite, torture_rpc_spoolss(suite));
447
481
        torture_suite_add_suite(suite, torture_rpc_spoolss_notify(suite));
448
482
        torture_suite_add_suite(suite, torture_rpc_spoolss_win(suite));
449
 
        torture_suite_add_suite(suite, torture_rpc_spoolss_printer(suite));
450
 
        torture_suite_add_simple_test(suite, "SAMR", torture_rpc_samr);
451
 
        torture_suite_add_simple_test(suite, "SAMR-USERS", torture_rpc_samr_users);
452
 
        torture_suite_add_simple_test(suite, "SAMR-PASSWORDS", torture_rpc_samr_passwords);
 
483
        torture_suite_add_suite(suite, torture_rpc_spoolss_driver(suite));
 
484
        torture_suite_add_suite(suite, torture_rpc_spoolss_access(suite));
 
485
        torture_suite_add_simple_test(suite, "samr", torture_rpc_samr);
 
486
        torture_suite_add_simple_test(suite, "samr.users", torture_rpc_samr_users);
 
487
        torture_suite_add_simple_test(suite, "samr.passwords", torture_rpc_samr_passwords);
453
488
        torture_suite_add_suite(suite, torture_rpc_netlogon(suite));
454
489
        torture_suite_add_suite(suite, torture_rpc_netlogon_s3(suite));
455
490
        torture_suite_add_suite(suite, torture_rpc_netlogon_admin(suite));
456
491
        torture_suite_add_suite(suite, torture_rpc_remote_pac(suite));
457
 
        torture_suite_add_simple_test(suite, "SAMLOGON", torture_rpc_samlogon);
458
 
        torture_suite_add_simple_test(suite, "SAMSYNC", torture_rpc_samsync);
459
 
        torture_suite_add_simple_test(suite, "SCHANNEL", torture_rpc_schannel);
460
 
        torture_suite_add_simple_test(suite, "SCHANNEL2", torture_rpc_schannel2);
461
 
        torture_suite_add_simple_test(suite, "BENCH-SCHANNEL1", torture_rpc_schannel_bench1);
 
492
        torture_suite_add_simple_test(suite, "samlogon", torture_rpc_samlogon);
 
493
        torture_suite_add_simple_test(suite, "samsync", torture_rpc_samsync);
 
494
        torture_suite_add_simple_test(suite, "schannel", torture_rpc_schannel);
 
495
        torture_suite_add_simple_test(suite, "schannel2", torture_rpc_schannel2);
 
496
        torture_suite_add_simple_test(suite, "bench-schannel1", torture_rpc_schannel_bench1);
462
497
        torture_suite_add_suite(suite, torture_rpc_srvsvc(suite));
463
498
        torture_suite_add_suite(suite, torture_rpc_svcctl(suite));
464
499
        torture_suite_add_suite(suite, torture_rpc_samr_accessmask(suite));
465
500
        torture_suite_add_suite(suite, torture_rpc_samr_workstation_auth(suite));
466
501
        torture_suite_add_suite(suite, torture_rpc_samr_passwords_pwdlastset(suite));
 
502
        torture_suite_add_suite(suite, torture_rpc_samr_passwords_badpwdcount(suite));
 
503
        torture_suite_add_suite(suite, torture_rpc_samr_passwords_lockout(suite));
467
504
        torture_suite_add_suite(suite, torture_rpc_samr_user_privileges(suite));
468
505
        torture_suite_add_suite(suite, torture_rpc_samr_large_dc(suite));
469
506
        torture_suite_add_suite(suite, torture_rpc_epmapper(suite));
470
507
        torture_suite_add_suite(suite, torture_rpc_initshutdown(suite));
471
508
        torture_suite_add_suite(suite, torture_rpc_oxidresolve(suite));
472
509
        torture_suite_add_suite(suite, torture_rpc_remact(suite));
473
 
        torture_suite_add_simple_test(suite, "MGMT", torture_rpc_mgmt);
474
 
        torture_suite_add_simple_test(suite, "SCANNER", torture_rpc_scanner);
475
 
        torture_suite_add_simple_test(suite, "AUTOIDL", torture_rpc_autoidl);
476
 
        torture_suite_add_simple_test(suite, "COUNTCALLS", torture_rpc_countcalls);
477
 
        torture_suite_add_simple_test(suite, "MULTIBIND", torture_multi_bind);
478
 
        torture_suite_add_simple_test(suite, "AUTHCONTEXT", torture_bind_authcontext);
479
 
        torture_suite_add_simple_test(suite, "BINDSAMBA3", torture_bind_samba3);
480
 
        torture_suite_add_simple_test(suite, "NETLOGSAMBA3", torture_netlogon_samba3);
481
 
        torture_suite_add_simple_test(suite, "SAMBA3SESSIONKEY", torture_samba3_sessionkey);
482
 
        torture_suite_add_simple_test(suite, "SAMBA3-SRVSVC", torture_samba3_rpc_srvsvc);
483
 
        torture_suite_add_simple_test(suite, "SAMBA3-SHARESEC",
484
 
                            torture_samba3_rpc_sharesec);
485
 
        torture_suite_add_simple_test(suite, "SAMBA3-GETUSERNAME",
486
 
                            torture_samba3_rpc_getusername);
487
 
        torture_suite_add_simple_test(suite, "SAMBA3-RANDOMAUTH2",
488
 
                                      torture_samba3_rpc_randomauth2);
489
 
        torture_suite_add_simple_test(suite, "SAMBA3-LSA", torture_samba3_rpc_lsa);
490
 
        torture_suite_add_simple_test(suite, "SAMBA3-SPOOLSS", torture_samba3_rpc_spoolss);
491
 
        torture_suite_add_simple_test(suite, "SAMBA3-WKSSVC", torture_samba3_rpc_wkssvc);
492
 
        torture_suite_add_simple_test(suite, "SAMBA3-WINREG", torture_samba3_rpc_winreg);
 
510
        torture_suite_add_simple_test(suite, "mgmt", torture_rpc_mgmt);
 
511
        torture_suite_add_simple_test(suite, "scanner", torture_rpc_scanner);
 
512
        torture_suite_add_simple_test(suite, "autoidl", torture_rpc_autoidl);
 
513
        torture_suite_add_simple_test(suite, "countcalls", torture_rpc_countcalls);
 
514
        torture_suite_add_simple_test(suite, "multibind", torture_multi_bind);
 
515
        torture_suite_add_simple_test(suite, "authcontext", torture_bind_authcontext);
 
516
        torture_suite_add_suite(suite, torture_rpc_samba3(suite));
493
517
        torture_rpc_drsuapi_tcase(suite);
494
518
        torture_rpc_drsuapi_cracknames_tcase(suite);
495
519
        torture_suite_add_suite(suite, torture_rpc_dssetup(suite));
496
520
        torture_suite_add_suite(suite, torture_rpc_browser(suite));
497
 
        torture_suite_add_simple_test(suite, "SAMBA3-REGCONFIG", torture_samba3_regconfig);
498
 
        torture_suite_add_simple_test(suite, "ALTERCONTEXT", torture_rpc_alter_context);
499
 
        torture_suite_add_simple_test(suite, "JOIN", torture_rpc_join);
500
 
        torture_suite_add_simple_test(suite, "DSSYNC", torture_rpc_dssync);
501
 
        torture_suite_add_simple_test(suite, "BENCH-RPC", torture_bench_rpc);
502
 
        torture_suite_add_simple_test(suite, "ASYNCBIND", torture_async_bind);
 
521
        torture_suite_add_simple_test(suite, "altercontext", torture_rpc_alter_context);
 
522
        torture_suite_add_simple_test(suite, "join", torture_rpc_join);
 
523
        torture_drs_rpc_dsgetinfo_tcase(suite);
 
524
        torture_suite_add_simple_test(suite, "bench-rpc", torture_bench_rpc);
 
525
        torture_suite_add_simple_test(suite, "asyncbind", torture_async_bind);
503
526
        torture_suite_add_suite(suite, torture_rpc_ntsvcs(suite));
 
527
        torture_suite_add_suite(suite, torture_rpc_bind(suite));
 
528
        torture_suite_add_suite(suite, torture_rpc_backupkey(suite));
504
529
 
505
530
        suite->description = talloc_strdup(suite, "DCE/RPC protocol and interface tests");
506
531