summaryrefslogtreecommitdiff
path: root/source4/torture/rpc
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2006-10-18 14:23:19 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:21:24 -0500
commita39f239cb28e4ac6be207d4179bacffce97f1b3e (patch)
treeb9f7e4e7e4c6ad7a5d0107b99c75ee2e9ac2132f /source4/torture/rpc
parent19af876bbb7038f5a40cd87eced81661a2fc2ee6 (diff)
downloadsamba-a39f239cb28e4ac6be207d4179bacffce97f1b3e.tar.gz
samba-a39f239cb28e4ac6be207d4179bacffce97f1b3e.tar.bz2
samba-a39f239cb28e4ac6be207d4179bacffce97f1b3e.zip
r19392: Use torture_setting_* rather than lp_parm_* where possible.
(This used to be commit b28860978fe29c5b10abfb8c59d7182864e21dd6)
Diffstat (limited to 'source4/torture/rpc')
-rw-r--r--source4/torture/rpc/async_bind.c4
-rw-r--r--source4/torture/rpc/bind.c2
-rw-r--r--source4/torture/rpc/drsuapi_cracknames.c3
-rw-r--r--source4/torture/rpc/initshutdown.c2
-rw-r--r--source4/torture/rpc/lsa.c8
-rw-r--r--source4/torture/rpc/mgmt.c2
-rw-r--r--source4/torture/rpc/netlogon.c22
-rw-r--r--source4/torture/rpc/samba3rpc.c39
-rw-r--r--source4/torture/rpc/samlogon.c7
-rw-r--r--source4/torture/rpc/samr.c10
-rw-r--r--source4/torture/rpc/scanner.c2
-rw-r--r--source4/torture/rpc/srvsvc.c2
-rw-r--r--source4/torture/rpc/winreg.c2
13 files changed, 50 insertions, 55 deletions
diff --git a/source4/torture/rpc/async_bind.c b/source4/torture/rpc/async_bind.c
index 952baacbf4..70333845ff 100644
--- a/source4/torture/rpc/async_bind.c
+++ b/source4/torture/rpc/async_bind.c
@@ -50,12 +50,12 @@ BOOL torture_async_bind(struct torture_context *torture)
struct dcerpc_pipe **pipe;
const struct dcerpc_interface_table **table;
- if (!lp_parm_bool(-1, "torture", "async", False)) {
+ if (!torture_setting_bool(torture, "async", False)) {
printf("async bind test disabled - enable async tests to use\n");
return True;
}
- binding_string = lp_parm_string(-1, "torture", "binding");
+ binding_string = torture_setting_string(torture, "binding", NULL);
/* talloc context */
mem_ctx = talloc_init("torture_async_bind");
diff --git a/source4/torture/rpc/bind.c b/source4/torture/rpc/bind.c
index 956609e44e..2ba886a38d 100644
--- a/source4/torture/rpc/bind.c
+++ b/source4/torture/rpc/bind.c
@@ -46,7 +46,7 @@ BOOL torture_multi_bind(struct torture_context *torture)
{
struct dcerpc_pipe *p;
struct dcerpc_binding *binding;
- const char *binding_string = lp_parm_string(-1, "torture", "binding");
+ const char *binding_string = torture_setting_string(torture, "binding", NULL);
TALLOC_CTX *mem_ctx;
NTSTATUS status;
BOOL ret;
diff --git a/source4/torture/rpc/drsuapi_cracknames.c b/source4/torture/rpc/drsuapi_cracknames.c
index fb63212f27..c38045621a 100644
--- a/source4/torture/rpc/drsuapi_cracknames.c
+++ b/source4/torture/rpc/drsuapi_cracknames.c
@@ -797,7 +797,8 @@ BOOL torture_rpc_drsuapi_cracknames(struct torture_context *torture)
ret &= test_DsBind(p, mem_ctx, &priv);
- ret &= test_DsCrackNames(p, mem_ctx, &priv, lp_parm_string(-1, "torture", "host"));
+ ret &= test_DsCrackNames(p, mem_ctx, &priv,
+ torture_setting_string(torture, "host", NULL));
ret &= test_DsUnbind(p, mem_ctx, &priv);
diff --git a/source4/torture/rpc/initshutdown.c b/source4/torture/rpc/initshutdown.c
index 17589040cc..7602d1f83a 100644
--- a/source4/torture/rpc/initshutdown.c
+++ b/source4/torture/rpc/initshutdown.c
@@ -129,7 +129,7 @@ BOOL torture_rpc_initshutdown(struct torture_context *torture)
return False;
}
- if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
+ if (!torture_setting_bool(torture, "dangerous", False)) {
printf("initshutdown tests disabled - enable dangerous tests to use\n");
} else {
ret &= test_Init(p, mem_ctx, "spottyfood", 30);
diff --git a/source4/torture/rpc/lsa.c b/source4/torture/rpc/lsa.c
index 575426a409..36080a25e1 100644
--- a/source4/torture/rpc/lsa.c
+++ b/source4/torture/rpc/lsa.c
@@ -1223,7 +1223,7 @@ static BOOL test_QuerySecurity(struct dcerpc_pipe *p,
NTSTATUS status;
struct lsa_QuerySecurity r;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping QuerySecurity test against Samba4\n");
return True;
}
@@ -1767,7 +1767,7 @@ static BOOL test_QueryDomainInfoPolicy(struct dcerpc_pipe *p,
NTSTATUS status;
int i;
BOOL ret = True;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping QueryDomainInformationPolicy test against Samba4\n");
return True;
}
@@ -1803,7 +1803,7 @@ static BOOL test_QueryInfoPolicy(struct dcerpc_pipe *p,
BOOL ret = True;
printf("\nTesting QueryInfoPolicy\n");
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping QueryInfoPolicy against Samba4\n");
return True;
}
@@ -1841,7 +1841,7 @@ static BOOL test_QueryInfoPolicy2(struct dcerpc_pipe *p,
int i;
BOOL ret = True;
printf("\nTesting QueryInfoPolicy2\n");
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping QueryInfoPolicy2 against Samba4\n");
return True;
}
diff --git a/source4/torture/rpc/mgmt.c b/source4/torture/rpc/mgmt.c
index 51dbdd5b16..0da7fcb8d3 100644
--- a/source4/torture/rpc/mgmt.c
+++ b/source4/torture/rpc/mgmt.c
@@ -180,7 +180,7 @@ BOOL torture_rpc_mgmt(struct torture_context *torture)
struct dcerpc_pipe *p;
TALLOC_CTX *mem_ctx, *loop_ctx;
BOOL ret = True;
- const char *binding = lp_parm_string(-1, "torture", "binding");
+ const char *binding = torture_setting_string(torture, "binding", NULL);
const struct dcerpc_interface_list *l;
struct dcerpc_binding *b;
diff --git a/source4/torture/rpc/netlogon.c b/source4/torture/rpc/netlogon.c
index 92f06c4396..352faa2c14 100644
--- a/source4/torture/rpc/netlogon.c
+++ b/source4/torture/rpc/netlogon.c
@@ -41,7 +41,7 @@ static BOOL test_LogonUasLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
NTSTATUS status;
struct netr_LogonUasLogon r;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping LogonUasLogon test against Samba4\n");
return True;
}
@@ -67,7 +67,7 @@ static BOOL test_LogonUasLogoff(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
NTSTATUS status;
struct netr_LogonUasLogoff r;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping LogonUasLogoff test against Samba4\n");
return True;
}
@@ -629,7 +629,7 @@ static BOOL test_DatabaseSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
int i;
BOOL ret = True;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping DatabaseSync test against Samba4\n");
return True;
}
@@ -695,7 +695,7 @@ static BOOL test_DatabaseDeltas(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
int i;
BOOL ret = True;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping DatabaseDeltas test against Samba4\n");
return True;
}
@@ -829,7 +829,7 @@ static BOOL test_GetDcName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
struct netr_GetDcName r;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping GetDCName test against Samba4\n");
return True;
}
@@ -860,7 +860,7 @@ static BOOL test_LogonControl(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
BOOL ret = True;
int i;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping LogonControl test against Samba4\n");
return True;
}
@@ -892,7 +892,7 @@ static BOOL test_GetAnyDCName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
NTSTATUS status;
struct netr_GetAnyDCName r;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping GetAnyDCName test against Samba4\n");
return True;
}
@@ -926,7 +926,7 @@ static BOOL test_LogonControl2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
BOOL ret = True;
int i;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping LogonControl2 test against Samba4\n");
return True;
}
@@ -1012,7 +1012,7 @@ static BOOL test_DatabaseSync2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
int i;
BOOL ret = True;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping DatabaseSync2 test against Samba4\n");
return True;
}
@@ -1068,7 +1068,7 @@ static BOOL test_LogonControl2Ex(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
BOOL ret = True;
int i;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping DatabaseSync2 test against Samba4\n");
return True;
}
@@ -1174,7 +1174,7 @@ static BOOL test_netr_DsRGetSiteName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct netr_DsRGetSiteName r;
BOOL ret = True;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping DsRGetSiteName test against Samba4\n");
return True;
}
diff --git a/source4/torture/rpc/samba3rpc.c b/source4/torture/rpc/samba3rpc.c
index 76df1a72c7..64a5c46e33 100644
--- a/source4/torture/rpc/samba3rpc.c
+++ b/source4/torture/rpc/samba3rpc.c
@@ -93,7 +93,7 @@ BOOL torture_bind_authcontext(struct torture_context *torture)
}
status = smbcli_full_connection(mem_ctx, &cli,
- lp_parm_string(-1, "torture", "host"),
+ torture_setting_string(torture, "host", NULL),
"IPC$", NULL, cmdline_credentials,
NULL);
if (!NT_STATUS_IS_OK(status)) {
@@ -298,7 +298,7 @@ BOOL torture_bind_samba3(struct torture_context *torture)
}
status = smbcli_full_connection(mem_ctx, &cli,
- lp_parm_string(-1, "torture", "host"),
+ torture_setting_string(torture, "host", NULL),
"IPC$", NULL, cmdline_credentials,
NULL);
if (!NT_STATUS_IS_OK(status)) {
@@ -1125,7 +1125,7 @@ BOOL torture_netlogon_samba3(struct torture_context *torture)
const char *wks_name;
int i;
- wks_name = lp_parm_string(-1, "torture", "wksname");
+ wks_name = torture_setting_string(torture, "wksname", NULL);
if (wks_name == NULL) {
wks_name = get_myname();
}
@@ -1143,7 +1143,7 @@ BOOL torture_netlogon_samba3(struct torture_context *torture)
}
status = smbcli_full_connection(mem_ctx, &cli,
- lp_parm_string(-1, "torture", "host"),
+ torture_setting_string(torture, "host", NULL),
"IPC$", NULL, anon_creds, NULL);
if (!NT_STATUS_IS_OK(status)) {
d_printf("smbcli_full_connection failed: %s\n",
@@ -1285,10 +1285,7 @@ BOOL torture_samba3_sessionkey(struct torture_context *torture)
struct cli_credentials *anon_creds;
const char *wks_name;
- wks_name = lp_parm_string(-1, "torture", "wksname");
- if (wks_name == NULL) {
- wks_name = get_myname();
- }
+ wks_name = torture_setting_string(torture, "wksname", get_myname());
mem_ctx = talloc_init("torture_samba3_sessionkey");
@@ -1304,7 +1301,7 @@ BOOL torture_samba3_sessionkey(struct torture_context *torture)
ret = True;
- if (!lp_parm_bool(-1, "target", "samba3", False)) {
+ if (!torture_setting_bool(torture, "samba3", False)) {
/* Samba3 in the build farm right now does this happily. Need
* to fix :-) */
@@ -1590,7 +1587,7 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
}
status = smbcli_full_connection(
- mem_ctx, &cli, lp_parm_string(-1, "torture", "host"),
+ mem_ctx, &cli, torture_setting_string(torture, "host", NULL),
"IPC$", NULL, cmdline_credentials, NULL);
if (!NT_STATUS_IS_OK(status)) {
d_printf("(%s) smbcli_full_connection failed: %s\n",
@@ -1614,7 +1611,7 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
}
status = smbcli_full_connection(
- mem_ctx, &cli, lp_parm_string(-1, "torture", "host"),
+ mem_ctx, &cli, torture_setting_string(torture, "host", NULL),
"IPC$", NULL, anon_creds, NULL);
if (!NT_STATUS_IS_OK(status)) {
d_printf("(%s) anon smbcli_full_connection failed: %s\n",
@@ -1827,7 +1824,7 @@ BOOL torture_samba3_rpc_srvsvc(struct torture_context *torture)
}
if (!(torture_open_connection_share(
- mem_ctx, &cli, lp_parm_string(-1, "torture", "host"),
+ mem_ctx, &cli, torture_setting_string(torture, "host", NULL),
"IPC$", NULL))) {
talloc_free(mem_ctx);
return False;
@@ -2066,7 +2063,7 @@ BOOL torture_samba3_rpc_sharesec(struct torture_context *torture)
}
if (!(torture_open_connection_share(
- mem_ctx, &cli, lp_parm_string(-1, "torture", "host"),
+ mem_ctx, &cli, torture_setting_string(torture, "host", NULL),
"IPC$", NULL))) {
d_printf("IPC$ connection failed\n");
talloc_free(mem_ctx);
@@ -2079,20 +2076,20 @@ BOOL torture_samba3_rpc_sharesec(struct torture_context *torture)
return False;
}
- sd = get_sharesec(mem_ctx, cli->session, lp_parm_string(-1, "torture",
- "share"));
+ sd = get_sharesec(mem_ctx, cli->session, torture_setting_string(torture,
+ "share", NULL));
ret &= try_tcon(mem_ctx, sd, cli->session,
- lp_parm_string(-1, "torture", "share"),
+ torture_setting_string(torture, "share", NULL),
user_sid, 0, NT_STATUS_ACCESS_DENIED, NT_STATUS_OK);
ret &= try_tcon(mem_ctx, sd, cli->session,
- lp_parm_string(-1, "torture", "share"),
+ torture_setting_string(torture, "share", NULL),
user_sid, SEC_FILE_READ_DATA, NT_STATUS_OK,
NT_STATUS_NETWORK_ACCESS_DENIED);
ret &= try_tcon(mem_ctx, sd, cli->session,
- lp_parm_string(-1, "torture", "share"),
+ torture_setting_string(torture, "share", NULL),
user_sid, SEC_FILE_ALL, NT_STATUS_OK, NT_STATUS_OK);
talloc_free(mem_ctx);
@@ -2114,7 +2111,7 @@ BOOL torture_samba3_rpc_lsa(struct torture_context *torture)
}
if (!(torture_open_connection_share(
- mem_ctx, &cli, lp_parm_string(-1, "torture", "host"),
+ mem_ctx, &cli, torture_setting_string(torture, "host", NULL),
"IPC$", NULL))) {
d_printf("IPC$ connection failed\n");
talloc_free(mem_ctx);
@@ -2392,7 +2389,7 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
}
if (!(torture_open_connection_share(
- mem_ctx, &cli, lp_parm_string(-1, "torture", "host"),
+ mem_ctx, &cli, torture_setting_string(torture, "host", NULL),
"IPC$", NULL))) {
d_printf("IPC$ connection failed\n");
talloc_free(mem_ctx);
@@ -2578,7 +2575,7 @@ BOOL torture_samba3_rpc_wkssvc(struct torture_context *torture)
}
if (!(torture_open_connection_share(
- mem_ctx, &cli, lp_parm_string(-1, "torture", "host"),
+ mem_ctx, &cli, torture_setting_string(torture, "host", NULL),
"IPC$", NULL))) {
d_printf("IPC$ connection failed\n");
talloc_free(mem_ctx);
diff --git a/source4/torture/rpc/samlogon.c b/source4/torture/rpc/samlogon.c
index 28f6424ad3..be0ea08cbd 100644
--- a/source4/torture/rpc/samlogon.c
+++ b/source4/torture/rpc/samlogon.c
@@ -1482,7 +1482,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
char *user_password;
const char *old_user_password;
char *test_machine_account;
- const char *binding = lp_parm_string(-1, "torture", "binding");
+ const char *binding = torture_setting_string(torture, "binding", NULL);
const char *userdomain;
int i;
int ci;
@@ -1508,10 +1508,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
return False;
}
- userdomain = lp_parm_string(-1, "torture", "userdomain");
- if (!userdomain) {
- userdomain = lp_workgroup();
- }
+ userdomain = torture_setting_string(torture, "userdomain", lp_workgroup());
user_ctx = torture_create_testuser(TEST_USER_NAME,
userdomain,
diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c
index 8b37af762d..387e479661 100644
--- a/source4/torture/rpc/samr.c
+++ b/source4/torture/rpc/samr.c
@@ -159,7 +159,7 @@ static BOOL test_QuerySecurity(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
s.in.sec_info = 7;
s.in.sdbuf = r.out.sdbuf;
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping SetSecurity test against Samba4\n");
return True;
}
@@ -383,7 +383,7 @@ static BOOL test_SetUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
TEST_USERINFO_INT(21, logon_hours.bits[3], 21, logon_hours.bits[3], 4,
SAMR_FIELD_LOGON_HOURS);
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping Set Account Flag tests against Samba4\n");
return ret;
}
@@ -1662,7 +1662,7 @@ static BOOL test_alias_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
ret = False;
}
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping MultipleMembers Alias tests against Samba4\n");
return ret;
}
@@ -3315,7 +3315,7 @@ static BOOL test_AddGroupMember(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
return False;
}
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping SetMemberAttributesOfGroup test against Samba4\n");
} else {
/* this one is quite strange. I am using random inputs in the
@@ -3503,7 +3503,7 @@ static BOOL test_OpenDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
ret &= test_QueryDisplayInfo3(p, mem_ctx, &domain_handle);
ret &= test_QueryDisplayInfo_continue(p, mem_ctx, &domain_handle);
- if (lp_parm_bool(-1, "target", "samba4", False)) {
+ if (lp_parm_bool(-1, "torture", "samba4", False)) {
printf("skipping GetDisplayEnumerationIndex test against Samba4\n");
} else {
ret &= test_GetDisplayEnumerationIndex(p, mem_ctx, &domain_handle);
diff --git a/source4/torture/rpc/scanner.c b/source4/torture/rpc/scanner.c
index 89c0cb485e..9c0c973712 100644
--- a/source4/torture/rpc/scanner.c
+++ b/source4/torture/rpc/scanner.c
@@ -143,7 +143,7 @@ BOOL torture_rpc_scanner(struct torture_context *torture)
TALLOC_CTX *mem_ctx, *loop_ctx;
BOOL ret = True;
const struct dcerpc_interface_list *l;
- const char *binding = lp_parm_string(-1, "torture", "binding");
+ const char *binding = torture_setting_string(torture, "binding", NULL);
struct dcerpc_binding *b;
mem_ctx = talloc_init("torture_rpc_scanner");
diff --git a/source4/torture/rpc/srvsvc.c b/source4/torture/rpc/srvsvc.c
index acc705ca1e..f024d1d2ab 100644
--- a/source4/torture/rpc/srvsvc.c
+++ b/source4/torture/rpc/srvsvc.c
@@ -1092,7 +1092,7 @@ BOOL torture_rpc_srvsvc(struct torture_context *torture)
struct dcerpc_pipe *p;
TALLOC_CTX *mem_ctx;
BOOL ret = True;
- const char *binding = lp_parm_string(-1, "torture", "binding");
+ const char *binding = torture_setting_string(torture, "binding", NULL);
struct cli_credentials *anon_credentials;
mem_ctx = talloc_init("torture_rpc_srvsvc");
diff --git a/source4/torture/rpc/winreg.c b/source4/torture/rpc/winreg.c
index 370a023dd5..2516c35276 100644
--- a/source4/torture/rpc/winreg.c
+++ b/source4/torture/rpc/winreg.c
@@ -826,7 +826,7 @@ BOOL torture_rpc_winreg(struct torture_context *torture)
return False;
}
- if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
+ if (!torture_setting_bool(torture, "dangerous", False)) {
printf("winreg_InitiateShutdown disabled - enable dangerous tests to use\n");
} else {
ret &= test_InitiateSystemShutdown(p, mem_ctx, "spottyfood", 30);