summaryrefslogtreecommitdiffstats
path: root/sys/netncp/ncp_conn.c
diff options
context:
space:
mode:
authorbp <bp@FreeBSD.org>2001-03-22 10:38:16 +0000
committerbp <bp@FreeBSD.org>2001-03-22 10:38:16 +0000
commit6d0dd9119c5e23240326fb7d9ceca42689c0ef36 (patch)
tree18a884675140a5b5d13d5eaab8f7f8f8f80dc968 /sys/netncp/ncp_conn.c
parent8da937dc1c3df023b9362ec91fdefe30b23c882b (diff)
downloadFreeBSD-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.c25
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
*/
OpenPOWER on IntegriCloud