Bug 24540

Summary: add '-c' flag to src/bin/domainname to clear domainname
Product: Base System Reporter: Pete Fritchman <petef>
Component: binAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 5.0-CURRENT   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff
none
file.diff none

Description Pete Fritchman 2001-01-22 18:30:00 UTC
Add the "-c" flag to domainname to allow clearing of the current YP/NIS
domain.

How-To-Repeat: 
Set a domainname with domainname(1) and try to clear it using domainname(1).
Comment 1 Garrett A. Wollman 2001-01-22 18:34:39 UTC
<<On Mon, 22 Jan 2001 13:21:08 -0500 (EST), petef@databits.net said:

> Set a domainname with domainname(1) and try to clear it using domainname(1).

"domainname ''" doesn't do it for you?

-GAWollman
Comment 2 Pete Fritchman 2001-01-22 19:05:17 UTC
++ 22/01/01 13:34 -0500 - Garrett Wollman:
>[...]
>> Set a domainname with domainname(1) and try to clear it using domainname(1).
>
>"domainname ''" doesn't do it for you?
>

Nope.

electron# ./domainname -c
electron# ./domainname

electron# ./domainname foo.bar
electron# ./domainname ''
electron# ./domainname
foo.bar
electron# ./domainname -c
electron# ./domainname

electron#

>-GAWollman

-pete

--
Pete Fritchman <petef@databits.net>
Databits Network Services, Inc. <http://databits.net>
Comment 3 Garrett A. Wollman 2001-01-22 20:02:57 UTC
<<On Mon, 22 Jan 2001 11:10:02 -0800 (PST), Pete Fritchman <petef@databits.net> said:

>  electron# ./domainname foo.bar
>  electron# ./domainname ''
>  electron# ./domainname
>  foo.bar

I think this is a bug in sysctl.  Note the following:

root@khavrinen(6)# sysctl -w kern.domainname=''
kern.domainname: foo.bar -> foo.bar

What is happening is that the sysctl() system call is interpreting the
request to set the MIB variable to a zero-length object as if it were
an indication that setting is not requested.  Here is an (untested)
fix (beware cut&paste has bogotified whitespace):



--- kern_sysctl.c       2000/07/28 22:40:04     1.100
+++ kern_sysctl.c       2001/01/22 20:01:38
@@ -862,7 +862,7 @@
                req.oldptr= old;
        }
 
-       if (newlen) {
+       if (new) {
                req.newlen = newlen;
                req.newptr = new;
        }
@@ -1101,7 +1101,7 @@
                req.oldptr= old;
        }
 
-       if (newlen) {
+       if (new) {
                if (!useracc(new, req.newlen, VM_PROT_READ))
                        return (EFAULT);
                req.newlen = newlen;

-GAWollman
Comment 4 dd freebsd_committer freebsd_triage 2001-06-19 01:52:43 UTC
State Changed
From-To: open->closed

`domainname ''` works now.