ZERO_STRUCT(user_info.info16);
user_info.info16.acct_flags = acct_flags;
- status = dcerpc_samr_SetUserInfo(b, mem_ctx,
- &user_pol,
- 16,
- &user_info,
- &result);
+ status = dcerpc_samr_SetUserInfo2(b, mem_ctx,
+ &user_pol,
+ UserControlInformation,
+ &user_info,
+ &result);
if (!NT_STATUS_IS_OK(status)) {
dcerpc_samr_DeleteUser(b, mem_ctx,
&user_pol,
status = dcerpc_samr_SetUserInfo2(b, mem_ctx,
&user_pol,
- 26,
+ UserInternal5InformationNew,
&user_info,
&result);
status = dcerpc_samr_SetUserInfo2(b, mem_ctx,
&user_pol,
- 24,
+ UserInternal5Information,
&user_info,
&result);
}
struct netlogon_creds_CredentialState *creds = NULL;
uint32_t netlogon_flags = 0;
NTSTATUS status;
- const char *machine_account = NULL;
- const char *machine_domain = NULL;
- const char *machine_password = NULL;
int flags = 0;
if (!dc_name) {
cli_credentials_set_old_password(cli_creds, NULL, CRED_SPECIFIED);
if (use_kerberos) {
- flags |= CLI_FULL_CONNECTION_USE_KERBEROS;
+ cli_credentials_set_kerberos_state(cli_creds,
+ CRED_MUST_USE_KERBEROS);
}
- machine_account = cli_credentials_get_username(cli_creds);
- machine_domain = cli_credentials_get_domain(cli_creds);
- machine_password = cli_credentials_get_password(cli_creds);
-
- status = cli_full_connection(&cli, NULL,
- dc_name,
- NULL, 0,
- "IPC$", "IPC",
- machine_account,
- machine_domain,
- machine_password,
- flags,
- SMB_SIGNING_IPC_DEFAULT);
+ status = cli_full_connection_creds(&cli, NULL,
+ dc_name,
+ NULL, 0,
+ "IPC$", "IPC",
+ cli_creds,
+ flags,
+ SMB_SIGNING_IPC_DEFAULT);
if (!NT_STATUS_IS_OK(status)) {
status = cli_full_connection(&cli, NULL,
libnet_join_set_error_string(mem_ctx, r,
"failed to verify domain membership after joining: %s",
get_friendly_nt_error_msg(status));
- return WERR_SETUP_NOT_JOINED;
+ return WERR_NERR_SETUPNOTJOINED;
}
return WERR_OK;
err = smbconf_init_reg(r, &ctx, NULL);
if (!SBC_ERROR_IS_OK(err)) {
- werr = WERR_NO_SUCH_SERVICE;
+ werr = WERR_SERVICE_DOES_NOT_EXIST;
goto done;
}
err = smbconf_set_global_parameter(ctx, "security", "user");
if (!SBC_ERROR_IS_OK(err)) {
- werr = WERR_NO_SUCH_SERVICE;
+ werr = WERR_SERVICE_DOES_NOT_EXIST;
goto done;
}
err = smbconf_set_global_parameter(ctx, "workgroup",
r->in.domain_name);
if (!SBC_ERROR_IS_OK(err)) {
- werr = WERR_NO_SUCH_SERVICE;
+ werr = WERR_SERVICE_DOES_NOT_EXIST;
goto done;
}
err = smbconf_set_global_parameter(ctx, "security", "domain");
if (!SBC_ERROR_IS_OK(err)) {
- werr = WERR_NO_SUCH_SERVICE;
+ werr = WERR_SERVICE_DOES_NOT_EXIST;
goto done;
}
err = smbconf_set_global_parameter(ctx, "workgroup",
r->out.netbios_domain_name);
if (!SBC_ERROR_IS_OK(err)) {
- werr = WERR_NO_SUCH_SERVICE;
+ werr = WERR_SERVICE_DOES_NOT_EXIST;
goto done;
}
if (r->out.domain_is_ad) {
err = smbconf_set_global_parameter(ctx, "security", "ads");
if (!SBC_ERROR_IS_OK(err)) {
- werr = WERR_NO_SUCH_SERVICE;
+ werr = WERR_SERVICE_DOES_NOT_EXIST;
goto done;
}
err = smbconf_set_global_parameter(ctx, "realm",
r->out.dns_domain_name);
if (!SBC_ERROR_IS_OK(err)) {
- werr = WERR_NO_SUCH_SERVICE;
+ werr = WERR_SERVICE_DOES_NOT_EXIST;
goto done;
}
}
err = smbconf_init_reg(r, &ctx, NULL);
if (!SBC_ERROR_IS_OK(err)) {
- werr = WERR_NO_SUCH_SERVICE;
+ werr = WERR_SERVICE_DOES_NOT_EXIST;
goto done;
}
err = smbconf_set_global_parameter(ctx, "security", "user");
if (!SBC_ERROR_IS_OK(err)) {
- werr = WERR_NO_SUCH_SERVICE;
+ werr = WERR_SERVICE_DOES_NOT_EXIST;
goto done;
}
err = smbconf_delete_global_parameter(ctx, "workgroup");
if (!SBC_ERROR_IS_OK(err)) {
- werr = WERR_NO_SUCH_SERVICE;
+ werr = WERR_SERVICE_DOES_NOT_EXIST;
goto done;
}
if (!r->in.domain_name) {
libnet_join_set_error_string(mem_ctx, r,
"No domain name defined");
- return WERR_INVALID_PARAM;
+ return WERR_INVALID_PARAMETER;
}
if (strlen(r->in.machine_name) > 15) {
"\"%s\" is %u chars long\n",
r->in.machine_name,
(unsigned int)strlen(r->in.machine_name));
- return WERR_INVALID_PARAM;
+ return WERR_INVALID_PARAMETER;
}
if (!libnet_parse_domain_dc(mem_ctx, r->in.domain_name,
&r->in.dc_name)) {
libnet_join_set_error_string(mem_ctx, r,
"Failed to parse domain name");
- return WERR_INVALID_PARAM;
+ return WERR_INVALID_PARAMETER;
}
if (!r->in.admin_domain) {
ads_status = libnet_join_post_processing_ads(mem_ctx, r);
if (!ADS_ERR_OK(ads_status)) {
- return WERR_GENERAL_FAILURE;
+ return WERR_GEN_FAILURE;
}
}
#endif /* HAVE_ADS */
"failed to find DC for domain %s - %s",
r->in.domain_name,
get_friendly_nt_error_msg(status));
- return WERR_DCNOTFOUND;
+ return WERR_NERR_DCNOTFOUND;
}
dc = strip_hostname(info->dc_unc);
info->dc_address[1] != '\\') {
DBG_ERR("ill-formed DC address '%s'\n",
info->dc_address);
- return WERR_DCNOTFOUND;
+ return WERR_NERR_DCNOTFOUND;
}
numeric_dcip = info->dc_address + 2;
DBG_ERR(
"cannot parse IP address '%s' of DC '%s'\n",
numeric_dcip, r->in.dc_name);
- return WERR_DCNOTFOUND;
+ return WERR_NERR_DCNOTFOUND;
}
} else {
if (!interpret_string_addr(&ss, r->in.dc_name, 0)) {
DBG_WARNING(
"cannot resolve IP address of DC '%s'\n",
r->in.dc_name);
- return WERR_DCNOTFOUND;
+ return WERR_NERR_DCNOTFOUND;
}
}
ads_status = libnet_join_connect_ads_user(mem_ctx, r);
if (!ADS_ERR_OK(ads_status)) {
- return WERR_DEFAULT_JOIN_REQUIRED;
+ return WERR_NERR_DEFAULTJOINREQUIRED;
}
ads_status = libnet_join_precreate_machine_acct(mem_ctx, r);
"failed to precreate account in ou %s: %s",
r->in.account_ou,
ads_errstr(ads_status));
- return WERR_DEFAULT_JOIN_REQUIRED;
+ return WERR_NERR_DEFAULTJOINREQUIRED;
}
DEBUG(5, ("failed to precreate account in ou %s: %s",
"failed to join domain '%s' over rpc: %s",
r->in.domain_name, get_friendly_nt_error_msg(status));
if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
- return WERR_SETUP_ALREADY_JOINED;
+ return WERR_NERR_SETUPALREADYJOINED;
}
werr = ntstatus_to_werror(status);
goto done;
}
if (!libnet_join_joindomain_store_secrets(mem_ctx, r)) {
- werr = WERR_SETUP_NOT_JOINED;
+ werr = WERR_NERR_SETUPNOTJOINED;
goto done;
}
if (!secrets_fetch_domain_sid(lp_workgroup(), &sid)) {
libnet_unjoin_set_error_string(mem_ctx, r,
"Unable to fetch domain sid: are we joined?");
- return WERR_SETUP_NOT_JOINED;
+ return WERR_NERR_SETUPNOTJOINED;
}
r->in.domain_sid = dom_sid_dup(mem_ctx, &sid);
W_ERROR_HAVE_NO_MEMORY(r->in.domain_sid);
"failed to find DC for domain %s - %s",
r->in.domain_name,
get_friendly_nt_error_msg(status));
- return WERR_DCNOTFOUND;
+ return WERR_NERR_DCNOTFOUND;
}
dc = strip_hostname(info->dc_unc);
"failed to disable machine account via rpc: %s",
get_friendly_nt_error_msg(status));
if (NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_USER)) {
- return WERR_SETUP_NOT_JOINED;
+ return WERR_NERR_SETUPNOTJOINED;
}
return ntstatus_to_werror(status);
}
if (!r->in.domain_name) {
libnet_unjoin_set_error_string(mem_ctx, r,
"No domain name defined");
- return WERR_INVALID_PARAM;
+ return WERR_INVALID_PARAMETER;
}
if (!libnet_parse_domain_dc(mem_ctx, r->in.domain_name,
&r->in.dc_name)) {
libnet_unjoin_set_error_string(mem_ctx, r,
"Failed to parse domain name");
- return WERR_INVALID_PARAM;
+ return WERR_INVALID_PARAMETER;
}
if (IS_DC) {
- return WERR_SETUP_DOMAIN_CONTROLLER;
+ return WERR_NERR_SETUPDOMAINCONTROLLER;
}
if (!r->in.admin_domain) {