Lines Matching refs:kcp
777 struct key_call_private *kcp = (struct key_call_private *)vp; in key_call_destroy() local
779 if (kcp != NULL && kcp->client != NULL) { in key_call_destroy()
780 (void) check_rdev(kcp); in key_call_destroy()
781 clnt_destroy(kcp->client); in key_call_destroy()
782 free(kcp); in key_call_destroy()
791 struct key_call_private *kcp; in _key_call_fini() local
793 if ((kcp = pthread_getspecific(key_call_key)) != NULL) { in _key_call_fini()
794 key_call_destroy(kcp); in _key_call_fini()
805 struct key_call_private *kcp = NULL; in getkeyserv_handle() local
808 kcp = thr_get_storage(&key_call_key, sizeof (*kcp), key_call_destroy); in getkeyserv_handle()
809 if (kcp == NULL) { in getkeyserv_handle()
818 if (kcp->client && in getkeyserv_handle()
819 (!check_rdev(kcp) || kcp->pid != getpid() || stale)) { in getkeyserv_handle()
820 clnt_destroy(kcp->client); in getkeyserv_handle()
821 kcp->client = NULL; in getkeyserv_handle()
823 if (kcp->client) { in getkeyserv_handle()
828 clnt_control(kcp->client, CLSET_VERS, (void *)&vers); in getkeyserv_handle()
829 if (!_update_did(kcp->client, vers)) { in getkeyserv_handle()
836 if (clnt_control(kcp->client, CLGET_FD, (void *)&fd) && in getkeyserv_handle()
839 kcp->fd = fd; in getkeyserv_handle()
840 return (kcp->client); in getkeyserv_handle()
843 if ((kcp->client = clnt_door_create(KEY_PROG, vers, 0)) == NULL) in getkeyserv_handle()
846 kcp->pid = getpid(); in getkeyserv_handle()
847 set_rdev(kcp); in getkeyserv_handle()
848 (void) fcntl(kcp->fd, F_SETFD, FD_CLOEXEC); /* close on exec */ in getkeyserv_handle()
850 return (kcp->client); in getkeyserv_handle()
972 set_rdev(struct key_call_private *kcp) in set_rdev() argument
977 if (clnt_control(kcp->client, CLGET_FD, (char *)&fd) != TRUE || in set_rdev()
980 kcp->fd = -1; in set_rdev()
983 kcp->fd = fd; in set_rdev()
984 kcp->rdev = stbuf.st_rdev; in set_rdev()
988 check_rdev(struct key_call_private *kcp) in check_rdev() argument
992 if (kcp->fd == -1) in check_rdev()
995 if (fstat(kcp->fd, &stbuf) == -1) { in check_rdev()
996 syslog(LOG_DEBUG, "keyserv_client: can't stat %d", kcp->fd); in check_rdev()
999 clnt_control(kcp->client, CLSET_FD_NCLOSE, NULL); in check_rdev()
1003 if (kcp->rdev != stbuf.st_rdev) { in check_rdev()
1006 kcp->fd, kcp->rdev, stbuf.st_rdev); in check_rdev()
1008 clnt_control(kcp->client, CLSET_FD_NCLOSE, NULL); in check_rdev()