Deleted Added
full compact
39c39
< __FBSDID("$FreeBSD: head/sys/kern/kern_mib.c 176367 2008-02-17 16:44:48Z antoine $");
---
> __FBSDID("$FreeBSD: head/sys/kern/kern_mib.c 180291 2008-07-05 13:10:10Z rwatson $");
210a211,217
> /*
> * This mutex is used to protect the hostname and domainname variables, and
> * perhaps in the future should also protect hostid, hostuid, and others.
> */
> struct mtx hostname_mtx;
> MTX_SYSINIT(hostname_mtx, &hostname_mtx, "hostname", MTX_DEF);
>
243,245c250,261
< } else
< error = sysctl_handle_string(oidp,
< hostname, sizeof hostname, req);
---
> } else {
> mtx_lock(&hostname_mtx);
> bcopy(hostname, tmphostname, MAXHOSTNAMELEN);
> mtx_unlock(&hostname_mtx);
> error = sysctl_handle_string(oidp, tmphostname,
> sizeof tmphostname, req);
> if (req->newptr != NULL && error == 0) {
> mtx_lock(&hostname_mtx);
> bcopy(tmphostname, hostname, MAXHOSTNAMELEN);
> mtx_unlock(&hostname_mtx);
> }
> }
331,333c347
< char domainname[MAXHOSTNAMELEN];
< SYSCTL_STRING(_kern, KERN_NISDOMAINNAME, domainname, CTLFLAG_RW,
< &domainname, sizeof(domainname), "Name of the current YP/NIS domain");
---
> char domainname[MAXHOSTNAMELEN]; /* Protected by hostname_mtx. */
334a349,370
> static int
> sysctl_domainname(SYSCTL_HANDLER_ARGS)
> {
> char tmpdomainname[MAXHOSTNAMELEN];
> int error;
>
> mtx_lock(&hostname_mtx);
> bcopy(domainname, tmpdomainname, MAXHOSTNAMELEN);
> mtx_unlock(&hostname_mtx);
> error = sysctl_handle_string(oidp, tmpdomainname,
> sizeof tmpdomainname, req);
> if (req->newptr != NULL && error == 0) {
> mtx_lock(&hostname_mtx);
> bcopy(tmpdomainname, domainname, MAXHOSTNAMELEN);
> mtx_unlock(&hostname_mtx);
> }
> return (error);
> }
>
> SYSCTL_PROC(_kern, KERN_NISDOMAINNAME, domainname, CTLTYPE_STRING|CTLFLAG_RW,
> 0, 0, sysctl_domainname, "A", "NAme of the current YP/NIS domain");
>