mirror of
https://github.com/samba-team/samba.git
synced 2025-10-29 04:23:51 +03:00
r12804: This patch reworks the Samba4 sockets layer to use a socket_address
structure that is more generic than just 'IP/port'. It now passes make test, and has been reviewed and updated by metze. (Thankyou *very* much). This passes 'make test' as well as kerberos use (not currently in the testsuite). The original purpose of this patch was to have Samba able to pass a socket address stucture from the BSD layer into the kerberos routines and back again. It also removes nbt_peer_addr, which was being used for a similar purpose. It is a large change, but worthwhile I feel. Andrew Bartlett
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
ab58decf82
commit
88198c4881
@@ -28,7 +28,7 @@
|
||||
|
||||
static int ejs_doauth(MprVarHandle eid,
|
||||
TALLOC_CTX *tmp_ctx, struct MprVar *auth, const char *username,
|
||||
const char *password, const char *domain, const char *remote_host,
|
||||
const char *password, const char *domain, const char *workstation,
|
||||
const char *authtype)
|
||||
{
|
||||
struct auth_usersupplied_info *user_info = NULL;
|
||||
@@ -61,9 +61,9 @@ static int ejs_doauth(MprVarHandle eid,
|
||||
user_info->client.domain_name = domain;
|
||||
user_info->mapped.domain_name = domain;
|
||||
|
||||
user_info->workstation_name = remote_host;
|
||||
user_info->workstation_name = workstation;
|
||||
|
||||
user_info->remote_host = remote_host;
|
||||
user_info->remote_host = NULL;
|
||||
|
||||
user_info->password_state = AUTH_PASSWORD_PLAIN;
|
||||
user_info->password.plaintext = talloc_strdup(user_info, password);
|
||||
@@ -101,13 +101,6 @@ done:
|
||||
/*
|
||||
perform user authentication, returning an array of results
|
||||
|
||||
syntax:
|
||||
var authinfo = new Object();
|
||||
authinfo.username = myname;
|
||||
authinfo.password = mypass;
|
||||
authinfo.domain = mydom;
|
||||
authinfo.rhost = request['REMOTE_HOST'];
|
||||
auth = userAuth(authinfo);
|
||||
*/
|
||||
static int ejs_userAuth(MprVarHandle eid, int argc, struct MprVar **argv)
|
||||
{
|
||||
@@ -115,7 +108,7 @@ static int ejs_userAuth(MprVarHandle eid, int argc, struct MprVar **argv)
|
||||
const char *username;
|
||||
const char *password;
|
||||
const char *domain;
|
||||
const char *remote_host;
|
||||
const char *workstation;
|
||||
struct MprVar auth;
|
||||
struct cli_credentials *creds;
|
||||
|
||||
@@ -136,7 +129,7 @@ static int ejs_userAuth(MprVarHandle eid, int argc, struct MprVar **argv)
|
||||
username = cli_credentials_get_username(creds);
|
||||
password = cli_credentials_get_password(creds);
|
||||
domain = cli_credentials_get_domain(creds);
|
||||
remote_host = cli_credentials_get_workstation(creds);
|
||||
workstation = cli_credentials_get_workstation(creds);
|
||||
|
||||
if (username == NULL || password == NULL || domain == NULL) {
|
||||
mpr_Return(eid, mprCreateUndefinedVar());
|
||||
@@ -147,9 +140,9 @@ static int ejs_userAuth(MprVarHandle eid, int argc, struct MprVar **argv)
|
||||
auth = mprObject("auth");
|
||||
|
||||
if (domain && (strcmp("System User", domain) == 0)) {
|
||||
ejs_doauth(eid, tmp_ctx, &auth, username, password, domain, remote_host, "unix");
|
||||
ejs_doauth(eid, tmp_ctx, &auth, username, password, domain, workstation, "unix");
|
||||
} else {
|
||||
ejs_doauth(eid, tmp_ctx, &auth, username, password, domain, remote_host, "sam");
|
||||
ejs_doauth(eid, tmp_ctx, &auth, username, password, domain, workstation, "sam");
|
||||
}
|
||||
|
||||
mpr_Return(eid, auth);
|
||||
|
||||
Reference in New Issue
Block a user