Lines Matching refs:client_data

422 do_callback(req, client_data)
424 svc_rpc_gss_data *client_data;
438 lock.raw_cred = &client_data->raw_cred;
439 ret = (*cbl->cb.callback)(req, client_data->deleg,
440 client_data->context, &lock, &client_data->cookie);
442 client_data->locked = lock.locked;
443 client_data->deleg = GSS_C_NO_CREDENTIAL;
448 if (client_data->deleg != GSS_C_NO_CREDENTIAL) {
449 (void) gss_release_cred(&minor, &client_data->deleg);
450 client_data->deleg = GSS_C_NO_CREDENTIAL;
468 svc_rpc_gss_data *client_data;
477 client_data = (svc_rpc_gss_data *)svcauth->svc_ah_private;
480 mutex_lock(&client_data->clm);
483 svcauth->raw_cred = client_data->raw_cred;
490 if (!client_data->u_cred_set) {
495 if (!client_data->u_cred_set) {
503 client_data->client_name, oid,
504 &client_data->u_cred.uid,
505 &client_data->u_cred.gid,
506 &client_data->u_cred.gidlist,
509 client_data->u_cred_set = TRUE;
510 client_data->u_cred.gidlen =
514 client_data->time_secs_set =
516 *ucred = &client_data->u_cred;
527 if ((now.tv_sec - client_data->time_secs_set)
531 client_data->u_cred.uid,
532 &client_data->u_cred.gid,
533 &client_data->u_cred.gidlist,
536 client_data->u_cred.gidlen =
540 client_data->time_secs_set = now.tv_sec;
541 *ucred = &client_data->u_cred;
543 client_data->u_cred_set = FALSE;
548 *ucred = &client_data->u_cred;
552 *cookie = client_data->cookie;
554 mutex_unlock(&client_data->clm);
576 svc_rpc_gss_data *client_data;
623 if ((client_data = create_client()) == NULL) {
652 if ((client_data = get_client(&creds.ctx_handle)) == NULL) {
662 mutex_lock(&client_data->clm);
663 if (client_data->stale) {
672 call_res.ctx_handle.length = sizeof (client_data->key);
673 call_res.ctx_handle.value = (char *)&client_data->key;
681 svcauth->svc_ah_private = (caddr_t)client_data;
690 gss_parms->established = client_data->established;
692 gss_parms->qop_rcvd = (uint_t)client_data->qop;
693 gss_parms->context = (void *)client_data->context;
696 if (!client_data->established) {
699 client_data->stale = TRUE;
710 client_data->stale = TRUE;
721 client_data->stale = TRUE;
730 * if the client_data contains server_creds
739 &client_data->context,
743 &client_data->client_name,
754 &client_data->context,
758 &client_data->client_name,
789 client_data->server_creds = sc->cred;
790 client_data->raw_cred.version = creds.version;
791 client_data->raw_cred.service = creds.service;
792 client_data->raw_cred.svc_principal =
796 if ((client_data->raw_cred.mechanism
802 } else if (!set_client_principal(client_data->
803 client_name, &client_data->
820 client_data->server_creds = sc->cred;
854 client_data->stale = TRUE;
870 if (!set_response_verf(rqst, msg, client_data,
873 client_data->stale = TRUE;
886 (void) retrans_add(client_data, msg->rm_xid, &call_res);
900 client_data->seq_num = 1;
903 client_data->expiration =
906 client_data->expiration =
910 client_data->expiration = time_rec + time(0);
912 client_data->expiration = max_lifetime +
914 client_data->established = TRUE;
932 if (client_data->retrans_data &&
933 (client_data->retrans_data->xid == msg->rm_xid)) {
935 retrans_result = &client_data->retrans_data->result;
936 if (set_response_verf(rqst, msg, client_data,
962 if (client_data->retrans_data)
963 retrans_del(client_data);
969 if (!check_verf(msg, client_data->context,
977 if (!client_data->done_docallback) {
978 client_data->done_docallback = TRUE;
979 client_data->qop = gss_parms->qop_rcvd;
980 client_data->raw_cred.qop = __rpc_gss_num_to_qop(
981 client_data->raw_cred.mechanism,
983 client_data->raw_cred.service = creds.service;
984 if (!do_callback(rqst, client_data)) {
986 client_data->stale = TRUE;
995 if (client_data->locked &&
996 gss_parms->qop_rcvd != client_data->qop) {
1004 if (!check_seq(client_data, creds.seq_num,
1005 &client_data->stale)) {
1006 if (client_data->stale)
1024 if (!set_response_verf(rqst, msg, client_data, creds.seq_num)) {
1026 client_data->stale = TRUE;
1038 client_data->stale = TRUE;
1046 if (client_data->locked &&
1047 client_data->raw_cred.service != creds.service) {
1058 rqst->rq_clntcred = (char *)&client_data->raw_cred;
1068 mutex_unlock(&client_data->clm);
1071 mutex_unlock(&client_data->clm);
1179 svc_rpc_gss_data *client_data;
1182 client_data = (svc_rpc_gss_data *) malloc(sizeof (*client_data));
1183 if (client_data == NULL)
1185 memset((char *)client_data, 0, sizeof (*client_data));
1190 client_data->established = FALSE;
1191 client_data->locked = FALSE;
1192 client_data->u_cred_set = FALSE;
1193 client_data->context = GSS_C_NO_CONTEXT;
1194 client_data->expiration = init_lifetime + time(0);
1195 client_data->ref_cnt = 1;
1196 client_data->qop = GSS_C_QOP_DEFAULT;
1197 client_data->done_docallback = FALSE;
1198 client_data->stale = FALSE;
1199 client_data->time_secs_set = 0;
1200 client_data->retrans_data = NULL;
1201 mutex_init(&client_data->clm, USYNC_THREAD, NULL);
1214 free((char *)client_data);
1224 client_data->key = key++;
1225 if (find_client(client_data->key) == NULL) {
1226 insert_client(client_data);
1237 return (client_data);
1247 insert_client(client_data)
1248 svc_rpc_gss_data *client_data;
1251 int index = (client_data->key & HASHMASK);
1253 client_data->prev = NULL;
1255 if ((client_data->next = cl) != NULL)
1256 cl->prev = client_data;
1257 clients[index] = client_data;
1259 client_data->lru_prev = NULL;
1260 if ((client_data->lru_next = lru_first) != NULL)
1261 lru_first->lru_prev = client_data;
1263 lru_last = client_data;
1264 lru_first = client_data;
1328 destroy_client(client_data)
1329 svc_rpc_gss_data *client_data;
1332 int index = (client_data->key & HASHMASK);
1337 if (client_data->prev == NULL)
1338 clients[index] = client_data->next;
1340 client_data->prev->next = client_data->next;
1341 if (client_data->next != NULL)
1342 client_data->next->prev = client_data->prev;
1347 if (client_data->lru_prev == NULL)
1348 lru_first = client_data->lru_next;
1350 client_data->lru_prev->lru_next = client_data->lru_next;
1351 if (client_data->lru_next != NULL)
1352 client_data->lru_next->lru_prev = client_data->lru_prev;
1354 lru_last = client_data->lru_prev;
1359 if (client_data->context != GSS_C_NO_CONTEXT) {
1360 (void) gss_delete_sec_context(&minor, &client_data->context,
1362 if (client_data->client_name)
1363 (void) gss_release_name(&minor, &client_data->client_name);
1364 if (client_data->raw_cred.client_principal)
1365 free((char *)client_data->raw_cred.client_principal);
1366 if (client_data->u_cred.gidlist != NULL)
1367 free((char *)client_data->u_cred.gidlist);
1368 if (client_data->deleg != GSS_C_NO_CREDENTIAL)
1369 (void) gss_release_cred(&minor, &client_data->deleg);
1372 if (client_data->retrans_data != NULL)
1373 retrans_del(client_data);
1375 free(client_data);