-dhcpcd-4 - DHCP client daemon
+dhcpcd - DHCP client daemon
Copyright 2006-2008 Roy Marples <roy@marples.name>
Compatibility
-------------
-dhcpcd-4.1 is only fully command line compatible with dhcpcd-4.0
+dhcpcd-5.0 is only fully command line compatible with dhcpcd-4.0
For compatibility with older versions, use dhcpcd-4.0
+dhcpcd no longer sends a default ClientID for ethernet interfaces.
+This is so we can re-use the address the kernel DHCP client found.
+To retain the old behaviour of sending a default ClientID based on the
+hardware address for interface, simply add the keyword clientid to dhcpcd.conf.
ChangeLog
---------
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 07, 2008
+.Dd November 17, 2008
.Dt DHCPCD 8 SMM
.Sh NAME
.Nm dhcpcd
encodes the FQDN hostname as specified in
.Li RFC1035 .
.It Fl I , -clientid Ar clientid
-Change the default clientid sent from the interface hardware address.
+Send the
+.Ar clientid .
If the string is of the format 01:02:03 then it is encoded as hex.
-If not set then none is sent.
+For interfaces whose hardware address is longer than 8 bytes we send a default
+clientid of the hardware family and the hardware address.
.El
.Ss Restriciting behaviour
.Nm
.Nm
process.
.Pp
-One of the goals for one instance managing multiple interfaces is more
-intelligent route and configuration management.
-This has not yet been done.
-.Pp
Please report them to http://roy.marples.name/projects/dhcpcd
if (ifo->metric != -1)
iface->metric = ifo->metric;
+ /* If we haven't specified a ClientID and our hardware address
+ * length is greater than DHCP_CHADDR_LEN then we enforce a ClientID
+ * of the hardware address family and the hardware address. */
+ if (!(ifo->options & DHCPCD_CLIENTID) && iface->hwlen > DHCP_CHADDR_LEN)
+ ifo->options |= DHCPCD_CLIENTID;
+
free(iface->clientid);
if (*ifo->clientid) {
iface->clientid = xmalloc(ifo->clientid[0] + 1);
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 07, 2008
+.Dd November 17, 2008
.Dt DHCPCD.CONF 5 SMM
.Sh NAME
.Nm dhcpcd.conf
This is useful for startup scripts which don't disable link messages for
carrier status.
.It Ic clientid Ar string
-Change the default clientid sent from the interface hardware address.
+Send the
+.Ar clientid .
If the string is of the format 01:02:03 then it is encoded as hex.
-If not set then none is sent.
+For interfaces whose hardware address is longer than 8 bytes we send a default
+clientid of the hardware family and the hardware address.
.It Ic duid
Generate an
.Rs
free(p);
break;
case 'D':
- ifo->options |= DHCPCD_DUID;
+ ifo->options |= DHCPCD_CLIENTID | DHCPCD_DUID;
break;
case 'E':
ifo->options |= DHCPCD_LASTLEASE;
syslog(LOG_ERR, "clientid: %m");
return -1;
}
+ ifo->options |= DHCPCD_CLIENTID;
ifo->clientid[0] = (uint8_t)s;
- if (s == 0) {
- ifo->options &= ~DHCPCD_DUID;
- ifo->options &= ~DHCPCD_CLIENTID;
- }
break;
case 'K':
ifo->options &= ~DHCPCD_LINK;
/* Seed our default options */
ifo = xzalloc(sizeof(*ifo));
- ifo->options |= DHCPCD_CLIENTID | DHCPCD_GATEWAY | DHCPCD_DAEMONISE;
+ ifo->options |= DHCPCD_GATEWAY | DHCPCD_DAEMONISE;
ifo->options |= DHCPCD_ARP | DHCPCD_IPV4LL | DHCPCD_LINK;
ifo->timeout = DEFAULT_TIMEOUT;
ifo->reboot = DEFAULT_REBOOT;