diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index 0ae8d3fad96..62d65fabc72 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -237,3 +237,14 @@ jailed(cred) return (cred->cr_prison != NULL); } + +/* + * Return the correct hostname for the passed credential. + */ +const char * +getcredhostname(cred) + struct ucred *cred; +{ + + return (jailed(cred) ? cred->cr_prison->pr_host : hostname); +} diff --git a/sys/sys/jail.h b/sys/sys/jail.h index 6becd8b407a..f9f7b814c13 100644 --- a/sys/sys/jail.h +++ b/sys/sys/jail.h @@ -68,6 +68,7 @@ extern int jail_sysvipc_allowed; struct ucred; struct sockaddr; int jailed __P((struct ucred *cred)); +const char *getcredhostname __P((struct ucred *cred)); int prison_check __P((struct ucred *cred1, struct ucred *cred2)); void prison_free __P((struct prison *pr)); u_int32_t prison_getip __P((struct ucred *cred));