Lines Matching refs:logon

93 	struct sdb_logon *logon;
107 logon = &session->logon;
111 bcopy(logon->ssn_key, ssn_key,
123 * to smbrdr_smb_connect. We allocate a logon structure to hold the
124 * user details and attempt to logon using smbrdr_session_setupx.
128 * On success, the logon structure will be returned. Otherwise a null
135 struct sdb_logon *logon;
149 logon = &session->logon;
150 if (logon->type != SDB_LOGON_NONE) {
151 if (strcasecmp(logon->username, username) == 0) {
154 return ((logon->type == SDB_LOGON_GUEST)
158 old_logon = *logon;
161 logon = smbrdr_logon_init(session, username, pwd);
163 if (logon == NULL) {
170 if (smbrdr_session_setupx(logon) < 0) {
171 free(logon);
177 ret = (logon->type == SDB_LOGON_GUEST)
180 session->logon = *logon;
181 free(logon);
200 smbrdr_session_setupx(struct sdb_logon *logon)
221 if ((session = logon->session) == NULL)
233 if (smbrdr_sign_init(session, logon) < 0) {
260 data_bytes = logon->auth.ci_len + logon->auth.cs_len + null_size;
264 if (logon->type == SDB_LOGON_ANONYMOUS) {
266 * Anonymous logon: no username or domain name.
288 data_bytes += strlen_fn(logon->username) + null_size;
299 logon->auth.ci_len, /* CaseInsensitivePassLength */
300 logon->auth.cs_len, /* CaseSensitivePassLength */
304 logon->auth.ci_len, /* ci length spec */
305 logon->auth.ci, /* CaseInsensitivePassword */
306 logon->auth.cs_len, /* cs length spec */
307 logon->auth.cs, /* CaseSensitivePassword */
308 logon->username, /* AccountName */
387 logon->uid = smb_hdr.uid;
389 logon->type = SDB_LOGON_GUEST;
394 logon->state = SDB_LSTATE_SETUP;
404 * section 4.1.3. The logon structure should have been obtained from a
410 smbrdr_logoffx(struct sdb_logon *logon)
418 if (logon->state != SDB_LSTATE_SETUP) {
420 bzero(logon, sizeof (struct sdb_logon));
424 if ((session = logon->session) == 0) {
425 bzero(logon, sizeof (struct sdb_logon));
429 logon->state = SDB_LSTATE_LOGGING_OFF;
430 smbrdr_netuse_logoff(logon->uid);
434 bzero(logon, sizeof (struct sdb_logon));
439 session, logon, 0);
442 logon->state = SDB_LSTATE_SETUP;
444 logon->username, xlate_nt_status(status));
450 logon->state = SDB_LSTATE_SETUP;
453 "smbrdr_logoffx: %s: encode failed", logon->username);
460 logon->username, xlate_nt_status(status));
466 bzero(logon, sizeof (struct sdb_logon));
475 * Find a slot for account logon information. The account information
484 struct sdb_logon *logon;
488 logon = (struct sdb_logon *)malloc(sizeof (sdb_logon_t));
489 if (logon == 0)
492 bzero(logon, sizeof (struct sdb_logon));
493 logon->session = session;
498 logon->type = SDB_LOGON_ANONYMOUS;
499 logon->auth.ci_len = 1;
500 *(logon->auth.ci) = 0;
501 logon->auth.cs_len = 0;
503 logon->type = SDB_LOGON_USER;
506 session->challenge_len, smbrdr_lmcompl, &logon->auth);
510 rc = smb_auth_gen_session_key(&logon->auth,
511 logon->ssn_key);
515 free(logon);
520 (void) strlcpy(logon->username, username, MAX_ACCOUNT_NAME);
521 logon->state = SDB_LSTATE_INIT;
522 return (logon);