#include "passdb.h"
#include "auth.h"
#include "rpc_server/srv_access_check.h"
+#include "../lib/tsocket/tsocket.h"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_RPC_SRV
{
NTSTATUS status;
char *user_name = NULL;
+ char *rhost;
fstring wks;
+ int rc;
DEBUG(5,("_samr_ChangePasswordUser2: %d\n", __LINE__));
return NT_STATUS_NO_MEMORY;
}
+ rc = get_remote_hostname(p->remote_address,
+ &rhost,
+ talloc_tos());
+ if (rc < 0) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ if (strequal(rhost,"UNKNOWN")) {
+ rhost = tsocket_address_inet_addr_string(p->remote_address,
+ talloc_tos());
+ if (rhost == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ }
+
/*
* UNIX username case mangling not required, pass_oem_change
* is case insensitive.
*/
status = pass_oem_change(user_name,
- p->client_id->name,
+ rhost,
r->in.lm_password->data,
r->in.lm_verifier->hash,
r->in.nt_password->data,
NTSTATUS status;
char *user_name = NULL;
const char *wks = NULL;
+ char *rhost;
+ int rc;
DEBUG(5,("_samr_OemChangePasswordUser2: %d\n", __LINE__));
return NT_STATUS_INVALID_PARAMETER;
}
+ rc = get_remote_hostname(p->remote_address,
+ &rhost,
+ talloc_tos());
+ if (rc < 0) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ if (strequal(rhost,"UNKNOWN")) {
+ rhost = tsocket_address_inet_addr_string(p->remote_address,
+ talloc_tos());
+ if (rhost == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ }
+
status = pass_oem_change(user_name,
- p->client_id->name,
+ rhost,
r->in.password->data,
r->in.hash->hash,
0,
struct samr_DomInfo1 *dominfo = NULL;
struct userPwdChangeFailureInformation *reject = NULL;
uint32_t tmp;
+ char *rhost;
+ int rc;
DEBUG(5,("_samr_ChangePasswordUser3: %d\n", __LINE__));
return NT_STATUS_NO_MEMORY;
}
+ rc = get_remote_hostname(p->remote_address,
+ &rhost,
+ talloc_tos());
+ if (rc < 0) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ if (strequal(rhost,"UNKNOWN")) {
+ rhost = tsocket_address_inet_addr_string(p->remote_address,
+ talloc_tos());
+ if (rhost == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ }
+
/*
* UNIX username case mangling not required, pass_oem_change
* is case insensitive.
*/
status = pass_oem_change(user_name,
- p->client_id->name,
+ rhost,
r->in.lm_password->data,
r->in.lm_verifier->hash,
r->in.nt_password->data,
uint32_t acc_required = 0;
uint32_t fields = 0;
bool ret;
+ char *rhost;
+ int rc;
DEBUG(5,("_samr_SetUserInfo: %d\n", __LINE__));
return NT_STATUS_NO_SUCH_USER;
}
+ rc = get_remote_hostname(p->remote_address,
+ &rhost,
+ talloc_tos());
+ if (rc < 0) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ if (strequal(rhost,"UNKNOWN")) {
+ rhost = tsocket_address_inet_addr_string(p->remote_address,
+ talloc_tos());
+ if (rhost == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ }
+
/* ================ BEGIN Privilege BLOCK ================ */
become_root();
status = set_user_info_23(p->mem_ctx,
&info->info23,
- p->client_id->name,
+ rhost,
pwd);
break;
dump_data(100, info->info24.password.data, 516);
status = set_user_info_24(p->mem_ctx,
- p->client_id->name,
+ rhost,
&info->info24, pwd);
break;
dump_data(100, info->info25.password.data, 532);
status = set_user_info_25(p->mem_ctx,
- p->client_id->name,
+ rhost,
&info->info25, pwd);
break;
dump_data(100, info->info26.password.data, 516);
status = set_user_info_26(p->mem_ctx,
- p->client_id->name,
+ rhost,
&info->info26, pwd);
break;