Lines Matching refs:kcp
779 struct key_call_private *kcp = (struct key_call_private *)vp; in key_call_destroy() local
781 if (kcp != NULL && kcp->client != NULL) { in key_call_destroy()
782 (void) check_rdev(kcp); in key_call_destroy()
783 clnt_destroy(kcp->client); in key_call_destroy()
784 free(kcp); in key_call_destroy()
793 struct key_call_private *kcp; in _key_call_fini() local
795 if ((kcp = pthread_getspecific(key_call_key)) != NULL) { in _key_call_fini()
796 key_call_destroy(kcp); in _key_call_fini()
807 struct key_call_private *kcp = NULL; in getkeyserv_handle() local
810 kcp = thr_get_storage(&key_call_key, sizeof (*kcp), key_call_destroy); in getkeyserv_handle()
811 if (kcp == NULL) { in getkeyserv_handle()
820 if (kcp->client && in getkeyserv_handle()
821 (!check_rdev(kcp) || kcp->pid != getpid() || stale)) { in getkeyserv_handle()
822 clnt_destroy(kcp->client); in getkeyserv_handle()
823 kcp->client = NULL; in getkeyserv_handle()
825 if (kcp->client) { in getkeyserv_handle()
830 clnt_control(kcp->client, CLSET_VERS, (void *)&vers); in getkeyserv_handle()
831 if (!_update_did(kcp->client, vers)) { in getkeyserv_handle()
838 if (clnt_control(kcp->client, CLGET_FD, (void *)&fd) && in getkeyserv_handle()
841 kcp->fd = fd; in getkeyserv_handle()
842 return (kcp->client); in getkeyserv_handle()
845 if ((kcp->client = clnt_door_create(KEY_PROG, vers, 0)) == NULL) in getkeyserv_handle()
848 kcp->pid = getpid(); in getkeyserv_handle()
849 set_rdev(kcp); in getkeyserv_handle()
850 (void) fcntl(kcp->fd, F_SETFD, FD_CLOEXEC); /* close on exec */ in getkeyserv_handle()
852 return (kcp->client); in getkeyserv_handle()
974 set_rdev(struct key_call_private *kcp) in set_rdev() argument
979 if (clnt_control(kcp->client, CLGET_FD, (char *)&fd) != TRUE || in set_rdev()
982 kcp->fd = -1; in set_rdev()
985 kcp->fd = fd; in set_rdev()
986 kcp->rdev = stbuf.st_rdev; in set_rdev()
990 check_rdev(struct key_call_private *kcp) in check_rdev() argument
994 if (kcp->fd == -1) in check_rdev()
997 if (fstat(kcp->fd, &stbuf) == -1) { in check_rdev()
998 syslog(LOG_DEBUG, "keyserv_client: can't stat %d", kcp->fd); in check_rdev()
1001 clnt_control(kcp->client, CLSET_FD_NCLOSE, NULL); in check_rdev()
1005 if (kcp->rdev != stbuf.st_rdev) { in check_rdev()
1008 kcp->fd, kcp->rdev, stbuf.st_rdev); in check_rdev()
1010 clnt_control(kcp->client, CLSET_FD_NCLOSE, NULL); in check_rdev()