1
0
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:
Andrew Bartlett
2006-01-09 22:12:53 +00:00
committed by Gerald (Jerry) Carter
parent ab58decf82
commit 88198c4881
68 changed files with 1378 additions and 876 deletions

View File

@@ -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);