diff options
author | bp <bp@FreeBSD.org> | 2001-03-22 10:38:16 +0000 |
---|---|---|
committer | bp <bp@FreeBSD.org> | 2001-03-22 10:38:16 +0000 |
commit | 6d0dd9119c5e23240326fb7d9ceca42689c0ef36 (patch) | |
tree | 18a884675140a5b5d13d5eaab8f7f8f8f80dc968 /sys/netncp/ncp_conn.c | |
parent | 8da937dc1c3df023b9362ec91fdefe30b23c882b (diff) | |
download | FreeBSD-src-6d0dd9119c5e23240326fb7d9ceca42689c0ef36.zip FreeBSD-src-6d0dd9119c5e23240326fb7d9ceca42689c0ef36.tar.gz |
Move bindery authentication ncps to ncp_ncp.c file. ncp_login.c will stay
empty for a while.
Diffstat (limited to 'sys/netncp/ncp_conn.c')
-rw-r--r-- | sys/netncp/ncp_conn.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/sys/netncp/ncp_conn.c b/sys/netncp/ncp_conn.c index c40552b..f1f6983 100644 --- a/sys/netncp/ncp_conn.c +++ b/sys/netncp/ncp_conn.c @@ -352,6 +352,31 @@ ncp_conn_reconnect(struct ncp_conn *ncp) return 0; } +int +ncp_conn_login(struct ncp_conn *conn, struct proc *p, struct ucred *cred) +{ + struct ncp_bindery_object user; + u_char ncp_key[8]; + int error; + + error = ncp_get_encryption_key(conn, ncp_key); + if (error) { + printf("%s: Warning: use unencrypted login\n", __FUNCTION__); + error = ncp_login_unencrypted(conn, conn->li.objtype, + conn->li.user, conn->li.password, p, cred); + } else { + error = ncp_get_bindery_object_id(conn, conn->li.objtype, + conn->li.user, &user, p, cred); + if (error) + return error; + error = ncp_login_encrypted(conn, &user, ncp_key, + conn->li.password, p, cred); + } + if (!error) + conn->flags |= NCPFL_LOGGED | NCPFL_WASLOGGED; + return error; +} + /* * Lookup connection by handle, return a locked conn descriptor */ |