--- ppp-2.4.7/pppd/plugins/Makefile.linux.old 2019-05-09 23:06:56.499058276 +0000 +++ ppp-2.4.7/pppd/plugins/Makefile.linux 2019-05-09 23:11:21.040252628 +0000 @@ -16,7 +16,7 @@ MANDIR = $(DESTDIR)/share/man/man8 LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION) -SUBDIRS := rp-pppoe pppoatm pppol2tp +SUBDIRS := dhcp rp-pppoe pppoatm pppol2tp # Uncomment the next line to include the radius authentication plugin SUBDIRS += radius PLUGINS := minconn.so passprompt.so passwordfd.so winbind.so --- ppp-2.4.7/pppd/plugins/dhcp/README.old 2002-09-30 11:33:49.000000000 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/README 2019-05-09 23:11:37.408470308 +0000 @@ -37,7 +37,7 @@ This option specified the local IP address of the system running this proxy, as should be identified to the DHCP server in the - 'giaddr' field of DHCP requests. Normal server behavor should + 'giaddr' field of DHCP requests. Normal server behaviour should be to send DHCP responses to this address. The default is the primary address bound to the dhcp interface. diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/clientpacket.c ppp-2.4.7/pppd/plugins/dhcp/clientpacket.c --- ppp-2.4.7/pppd/plugins/dhcp.old/clientpacket.c 2002-08-31 12:19:20.000000000 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/clientpacket.c 2019-05-09 23:42:33.566347764 +0000 @@ -179,8 +179,8 @@ { int bytes; struct udp_dhcp_packet packet; - u_int32_t source, dest; - u_int16_t check; + uint32_t source, dest; + uint16_t check; memset(&packet, 0, sizeof(struct udp_dhcp_packet)); bytes = read(fd, &packet, sizeof(struct udp_dhcp_packet)); diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/dhcpc.c ppp-2.4.7/pppd/plugins/dhcp/dhcpc.c --- ppp-2.4.7/pppd/plugins/dhcp.old/dhcpc.c 2019-05-09 23:41:38.732319544 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/dhcpc.c 2019-05-09 23:42:33.566347764 +0000 @@ -56,11 +56,11 @@ #include "socket.h" #include "debug.h" -static void (*dhcp_old_ip_choose_hook)(u_int32_t *addrp); +static void (*dhcp_old_ip_choose_hook)(uint32_t *addrp); static int dhcp_state; -static u_int32_t requested_ip; /* = 0 */ -u_int32_t assigned_ip; /* value supplied to remote ppp */ +static uint32_t requested_ip; /* = 0 */ +uint32_t assigned_ip; /* value supplied to remote ppp */ static unsigned long server_addr; unsigned long lease, renew_timeout; unsigned long xid = 0; @@ -118,7 +118,7 @@ void dhcp_release(void *ptr, int arg); void dhcp_renew(void *dummy); void dhcp_request_new(); -void dhcp_ip_choose(u_int32_t *addrp); +void dhcp_ip_choose(uint32_t *addrp); void dhcp_read_options(void); @@ -453,8 +453,8 @@ return; } -void dhcp_ip_choose(u_int32_t *addrp) { - u_int32_t entryvalue; +void dhcp_ip_choose(uint32_t *addrp) { + uint32_t entryvalue; dbglog("DHCPC: ip_choose_hook entered with peer name %s",peer_authname); diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/dhcpc.h ppp-2.4.7/pppd/plugins/dhcp/dhcpc.h --- ppp-2.4.7/pppd/plugins/dhcp.old/dhcpc.h 2002-08-31 11:54:23.000000000 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/dhcpc.h 2019-05-09 23:42:33.566347764 +0000 @@ -24,9 +24,9 @@ unsigned char *hostname; /* Optional hostname to use */ int ifindex; /* Index number of the interface to use */ unsigned char arp[6]; /* Our arp address */ - u_int32_t giaddr; /* Fill in this value on all packets we generate */ - u_int32_t siaddr; /* If defined, only talk to this server (never broadcast) */ - u_int32_t subnet_selection; /* If non zero, send and require SS option */ + uint32_t giaddr; /* Fill in this value on all packets we generate */ + uint32_t siaddr; /* If defined, only talk to this server (never broadcast) */ + uint32_t subnet_selection; /* If non zero, send and require SS option */ }; extern struct client_config_t client_config; diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/dhcpd.h ppp-2.4.7/pppd/plugins/dhcp/dhcpd.h --- ppp-2.4.7/pppd/plugins/dhcp.old/dhcpd.h 2002-08-31 11:52:31.000000000 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/dhcpd.h 2019-05-09 23:42:33.566347764 +0000 @@ -101,9 +101,9 @@ }; struct server_config_t { - u_int32_t server; /* Our IP, in network order */ - u_int32_t start; /* Start address of leases, network order */ - u_int32_t end; /* End of leases, network order */ + uint32_t server; /* Our IP, in network order */ + uint32_t start; /* Start address of leases, network order */ + uint32_t end; /* End of leases, network order */ struct option_set *options; /* List of DHCP options loaded from the config file */ char *interface; /* The name of the interface to use */ int ifindex; /* Index number of the interface to use */ @@ -122,7 +122,7 @@ char *lease_file; char *pidfile; char *notify_file; /* What to run whenever leases are written */ - u_int32_t siaddr; /* next server bootp option */ + uint32_t siaddr; /* next server bootp option */ char *sname; /* bootp server name */ char *boot_file; /* bootp boot file option */ }; diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/leases.h ppp-2.4.7/pppd/plugins/dhcp/leases.h --- ppp-2.4.7/pppd/plugins/dhcp.old/leases.h 2002-08-23 13:17:14.000000000 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/leases.h 2019-05-09 23:42:33.566347764 +0000 @@ -4,20 +4,20 @@ struct dhcpOfferedAddr { - u_int8_t chaddr[16]; - u_int32_t yiaddr; /* network order */ - u_int32_t expires; /* host order */ + uint8_t chaddr[16]; + uint32_t yiaddr; /* network order */ + uint32_t expires; /* host order */ }; -void clear_lease(u_int8_t *chaddr, u_int32_t yiaddr); -struct dhcpOfferedAddr *add_lease(u_int8_t *chaddr, u_int32_t yiaddr, unsigned long lease); +void clear_lease(uint8_t *chaddr, uint32_t yiaddr); +struct dhcpOfferedAddr *add_lease(uint8_t *chaddr, uint32_t yiaddr, unsigned long lease); int lease_expired(struct dhcpOfferedAddr *lease); struct dhcpOfferedAddr *oldest_expired_lease(void); -struct dhcpOfferedAddr *find_lease_by_chaddr(u_int8_t *chaddr); -struct dhcpOfferedAddr *find_lease_by_yiaddr(u_int32_t yiaddr); -u_int32_t find_address(int check_expired); -int check_ip(u_int32_t addr); +struct dhcpOfferedAddr *find_lease_by_chaddr(uint8_t *chaddr); +struct dhcpOfferedAddr *find_lease_by_yiaddr(uint32_t yiaddr); +uint32_t find_address(int check_expired); +int check_ip(uint32_t addr); #endif diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/options.c ppp-2.4.7/pppd/plugins/dhcp/options.c --- ppp-2.4.7/pppd/plugins/dhcp.old/options.c 2002-08-31 11:52:37.000000000 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/options.c 2019-05-09 23:42:33.566347764 +0000 @@ -148,17 +148,17 @@ /* add a one to four byte option to a packet */ -int add_simple_option(unsigned char *optionptr, unsigned char code, u_int32_t data) +int add_simple_option(unsigned char *optionptr, unsigned char code, uint32_t data) { char length = 0; int i; unsigned char option[2 + 4]; unsigned char *u8; - u_int16_t *u16; - u_int32_t *u32; - u_int32_t aligned; + uint16_t *u16; + uint32_t *u32; + uint32_t aligned; u8 = (unsigned char *) &aligned; - u16 = (u_int16_t *) &aligned; + u16 = (uint16_t *) &aligned; u32 = &aligned; for (i = 0; options[i].code; i++) diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/options.h ppp-2.4.7/pppd/plugins/dhcp/options.h --- ppp-2.4.7/pppd/plugins/dhcp.old/options.h 2002-08-23 13:06:28.000000000 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/options.h 2019-05-09 23:42:33.566347764 +0000 @@ -33,7 +33,7 @@ unsigned char *get_option(struct dhcpMessage *packet, int code); int end_option(unsigned char *optionptr); int add_option_string(unsigned char *optionptr, unsigned char *string); -int add_simple_option(unsigned char *optionptr, unsigned char code, u_int32_t data); +int add_simple_option(unsigned char *optionptr, unsigned char code, uint32_t data); struct option_set *find_option(struct option_set *opt_list, char code); void attach_option(struct option_set **opt_list, struct dhcp_option *option, char *buffer, int length); diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/packet.c ppp-2.4.7/pppd/plugins/dhcp/packet.c --- ppp-2.4.7/pppd/plugins/dhcp.old/packet.c 2019-05-09 23:41:38.732319544 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/packet.c 2019-05-09 23:42:33.566347764 +0000 @@ -83,13 +83,13 @@ } -u_int16_t checksum(void *addr, int count) +uint16_t checksum(void *addr, int count) { /* Compute Internet Checksum for "count" bytes * beginning at location "addr". */ register int32_t sum = 0; - u_int16_t *source = (u_int16_t *) addr; + uint16_t *source = (uint16_t *) addr; while( count > 1 ) { /* This is the inner loop */ @@ -110,8 +110,8 @@ /* Constuct a ip/udp header for a packet, and specify the source and dest hardware address */ -int raw_packet(struct dhcpMessage *payload, u_int32_t source_ip, int source_port, - u_int32_t dest_ip, int dest_port, unsigned char *dest_arp, int ifindex) +int raw_packet(struct dhcpMessage *payload, uint32_t source_ip, int source_port, + uint32_t dest_ip, int dest_port, unsigned char *dest_arp, int ifindex) { int fd; int result; @@ -169,8 +169,8 @@ /* Let the kernel do all the work for packet generation */ -int kernel_packet(struct dhcpMessage *payload, u_int32_t source_ip, int source_port, - u_int32_t dest_ip, int dest_port) +int kernel_packet(struct dhcpMessage *payload, uint32_t source_ip, int source_port, + uint32_t dest_ip, int dest_port) { int n = 1; int fd, result; diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/packet.h ppp-2.4.7/pppd/plugins/dhcp/packet.h --- ppp-2.4.7/pppd/plugins/dhcp.old/packet.h 2002-08-23 13:04:56.000000000 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/packet.h 2019-05-09 23:42:33.566347764 +0000 @@ -5,22 +5,22 @@ #include <netinet/ip.h> struct dhcpMessage { - u_int8_t op; - u_int8_t htype; - u_int8_t hlen; - u_int8_t hops; - u_int32_t xid; - u_int16_t secs; - u_int16_t flags; - u_int32_t ciaddr; - u_int32_t yiaddr; - u_int32_t siaddr; - u_int32_t giaddr; - u_int8_t chaddr[16]; - u_int8_t sname[64]; - u_int8_t file[128]; - u_int32_t cookie; - u_int8_t options[308]; /* 312 - cookie */ + uint8_t op; + uint8_t htype; + uint8_t hlen; + uint8_t hops; + uint32_t xid; + uint16_t secs; + uint16_t flags; + uint32_t ciaddr; + uint32_t yiaddr; + uint32_t siaddr; + uint32_t giaddr; + uint8_t chaddr[16]; + uint8_t sname[64]; + uint8_t file[128]; + uint32_t cookie; + uint8_t options[308]; /* 312 - cookie */ }; struct udp_dhcp_packet { @@ -31,11 +31,11 @@ void init_header(struct dhcpMessage *packet, char type); int get_packet(struct dhcpMessage *packet, int fd); -u_int16_t checksum(void *addr, int count); -int raw_packet(struct dhcpMessage *payload, u_int32_t source_ip, int source_port, - u_int32_t dest_ip, int dest_port, unsigned char *dest_arp, int ifindex); -int kernel_packet(struct dhcpMessage *payload, u_int32_t source_ip, int source_port, - u_int32_t dest_ip, int dest_port); +uint16_t checksum(void *addr, int count); +int raw_packet(struct dhcpMessage *payload, uint32_t source_ip, int source_port, + uint32_t dest_ip, int dest_port, unsigned char *dest_arp, int ifindex); +int kernel_packet(struct dhcpMessage *payload, uint32_t source_ip, int source_port, + uint32_t dest_ip, int dest_port); #endif diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/socket.c ppp-2.4.7/pppd/plugins/dhcp/socket.c --- ppp-2.4.7/pppd/plugins/dhcp.old/socket.c 2019-05-09 23:41:38.732319544 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/socket.c 2019-05-09 23:42:33.566347764 +0000 @@ -43,7 +43,7 @@ #include "debug.h" -int read_interface(char *interface, int *ifindex, u_int32_t *addr, unsigned char *arp) +int read_interface(char *interface, int *ifindex, uint32_t *addr, unsigned char *arp) { int fd; struct ifreq ifr; diff -Naur ppp-2.4.7/pppd/plugins/dhcp.old/socket.h ppp-2.4.7/pppd/plugins/dhcp/socket.h --- ppp-2.4.7/pppd/plugins/dhcp.old/socket.h 2002-08-23 13:06:28.000000000 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/socket.h 2019-05-09 23:42:33.566347764 +0000 @@ -2,7 +2,7 @@ #ifndef _SOCKET_H #define _SOCKET_H -int read_interface(char *interface, int *ifindex, u_int32_t *addr, unsigned char *arp); +int read_interface(char *interface, int *ifindex, uint32_t *addr, unsigned char *arp); int listen_socket(unsigned int ip, int port, char *inf); int raw_socket(int ifindex); --- ppp-2.4.7/pppd/plugins/dhcp/Makefile.linux.old 2019-05-09 23:54:56.595427092 +0000 +++ ppp-2.4.7/pppd/plugins/dhcp/Makefile.linux 2019-05-09 23:56:53.012746364 +0000 @@ -1,6 +1,11 @@ PLUGIN=dhcpc.so CFLAGS=$(COPTS) -I../.. -I../../../include -fPIC +INSTALL = install +DESTDIR = $(INSTROOT)/usr +LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION) + +VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h) all: $(PLUGIN) --- ppp-ppp-2.4.8/pppd/plugins/dhcp/Makefile.linux.old 2020-02-26 04:02:43.528569753 +0000 +++ ppp-ppp-2.4.8/pppd/plugins/dhcp/Makefile.linux 2020-02-26 04:03:07.425957036 +0000 @@ -14,7 +14,7 @@ $(INSTALL) -s -c -m 755 dhcpc.so $(LIBDIR) dhcpc.so: dhcpc.o clientpacket.o packet.o socket.o options.o - $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ + $(CC) $(LDFLAGS) -shared $(CFLAGS) -o $@ $^ clean: