Module Name: src Committed By: manu Date: Wed Jun 28 02:46:31 UTC 2017
Modified Files: src/external/bsd/dhcp/dist/client: dhclient.c src/external/bsd/dhcp/dist/common: bpf.c comapi.c discover.c dispatch.c dlpi.c execute.c lpf.c nit.c options.c packet.c parse.c raw.c socket.c tr.c tree.c upf.c src/external/bsd/dhcp/dist/dhcpctl: cltest.c omshell.c src/external/bsd/dhcp/dist/includes: dhcpd.h src/external/bsd/dhcp/dist/relay: dhcrelay.c src/external/bsd/dhcp/dist/server: dhcpd.c src/external/bsd/dhcp/dist/tests: t_api.c Log Message: Make DHCP programs compatible with crunchgen(1) DHCP programs are incompatible with crunchgen(1) so far, because libdhcp uses callbacks with the same function names for dhclient, dhcrelay, dhcpd, and omshell. As a result, it is impossible to link correctly in a single binary. The offending symbols are classify, check_collection, dhcp, dhcpv6, bootp, find_class, parse_allow_deny, and dhcp_set_control_state, and the local_port and remote_port variables. This change make each program register an array of callbacks at main() start. libdhcp then uses callbacks through registered function and variable pointers, and DHCP programs can now go trough crunchgen(1). Submitted upstream as ISC-Bugs #45330 with a patch against latest ISC git. The soon to be released 4.3.6 will not include the change, but it is likely to be included in 4.3.7 To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/external/bsd/dhcp/dist/client/dhclient.c cvs rdiff -u -r1.4 -r1.5 src/external/bsd/dhcp/dist/common/bpf.c \ src/external/bsd/dhcp/dist/common/dispatch.c cvs rdiff -u -r1.1.1.3 -r1.2 src/external/bsd/dhcp/dist/common/comapi.c \ src/external/bsd/dhcp/dist/common/nit.c \ src/external/bsd/dhcp/dist/common/tr.c \ src/external/bsd/dhcp/dist/common/upf.c cvs rdiff -u -r1.5 -r1.6 src/external/bsd/dhcp/dist/common/discover.c cvs rdiff -u -r1.1.1.4 -r1.2 src/external/bsd/dhcp/dist/common/dlpi.c \ src/external/bsd/dhcp/dist/common/execute.c \ src/external/bsd/dhcp/dist/common/options.c \ src/external/bsd/dhcp/dist/common/parse.c \ src/external/bsd/dhcp/dist/common/socket.c \ src/external/bsd/dhcp/dist/common/tree.c cvs rdiff -u -r1.1.1.5 -r1.2 src/external/bsd/dhcp/dist/common/lpf.c cvs rdiff -u -r1.3 -r1.4 src/external/bsd/dhcp/dist/common/packet.c cvs rdiff -u -r1.1.1.2 -r1.2 src/external/bsd/dhcp/dist/common/raw.c cvs rdiff -u -r1.1.1.3 -r1.2 src/external/bsd/dhcp/dist/dhcpctl/cltest.c \ src/external/bsd/dhcp/dist/dhcpctl/omshell.c cvs rdiff -u -r1.8 -r1.9 src/external/bsd/dhcp/dist/includes/dhcpd.h cvs rdiff -u -r1.7 -r1.8 src/external/bsd/dhcp/dist/relay/dhcrelay.c cvs rdiff -u -r1.5 -r1.6 src/external/bsd/dhcp/dist/server/dhcpd.c cvs rdiff -u -r1.1.1.3 -r1.2 src/external/bsd/dhcp/dist/tests/t_api.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.