[systemd-devel] [PATCH 01/28] dhcp: Add DHCP protocol structures and initial defines

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Wed Nov 13 16:28:34 PST 2013


On Thu, Nov 14, 2013 at 01:10:07AM +0100, Lennart Poettering wrote:
> On Thu, 14.11.13 08:56, Marcel Holtmann (marcel at holtmann.org) wrote:
> 
> > 
> > Hi Lennart,
> > 
> > >> +#define BOOTREQUEST                             1
> > >> +#define BOOTREPLY                               2
> > >> +
> > >> +#define DHCP_DISCOVER                           1
> > >> +#define DHCP_OFFER                              2
> > >> +#define DHCP_REQUEST                            3
> > >> +#define DHCP_DECLINE                            4
> > >> +#define DHCP_ACK                                5
> > >> +#define DHCP_NAK                                6
> > >> +#define DHCP_RELEASE                            7
> > >> +
> > >> +#define DHCP_OVERLOAD_FILE                      1
> > >> +#define DHCP_OVERLOAD_SNAME                     2
> > >> +
> > >> +#define DHCP_OPTION_PAD                         0
> > >> +#define DHCP_OPTION_SUBNET_MASK                 1
> > >> +#define DHCP_OPTION_ROUTER                      3
> > >> +#define DHCP_OPTION_DOMAIN_NAME_SERVER          6
> > >> +#define DHCP_OPTION_HOST_NAME                   12
> > >> +#define DHCP_OPTION_DOMAIN_NAME                 15
> > >> +#define DHCP_OPTION_NTP_SERVER                  42
> > >> +#define DHCP_OPTION_REQUESTED_IP_ADDRESS        50
> > >> +#define DHCP_OPTION_OVERLOAD                    52
> > >> +#define DHCP_OPTION_MESSAGE_TYPE                53
> > >> +#define DHCP_OPTION_PARAMETER_REQUEST_LIST      55
> > >> +#define DHCP_OPTION_END                         255
> > > 
> > > For defines like these I'd really suggest using anonymous enums. It's a
> > > good thing if the compiler knows these things, not just the
> > > pre-processor...
> > 
> > these are wire protocol definitions. What benefit do you gain if the
> > compiler knows them. You always have to handle invalid cases anyway
> > since malicious servers are a reality.
> 
> For example, it's nicer to work with gdb if it can resolve them...
You'll also get an error if you use an enum value of one kind
in a call requiring an enum of different type.

Zbyszek


More information about the systemd-devel mailing list