diff -Nuar ppp-2.4.7/chat/Makefile.linux ppp-2.4.7-fixed/chat/Makefile.linux 
 | 
--- ppp-2.4.7/chat/Makefile.linux    2014-08-09 20:31:39.000000000 +0800 
 | 
+++ ppp-2.4.7-fixed/chat/Makefile.linux    2019-08-11 16:34:20.884222551 +0800 
 | 
@@ -21,7 +21,7 @@ 
 | 
     $(CC) -o chat chat.o 
 | 
  
 | 
 chat.o:    chat.c 
 | 
-    $(CC) -c $(CFLAGS) -o chat.o chat.c 
 | 
+    $(CC) -c $(CFLAGS) -static -o chat.o chat.c 
 | 
  
 | 
 install: chat 
 | 
     mkdir -p $(BINDIR) $(MANDIR) 
 | 
diff -Nuar ppp-2.4.7/pppd/auth.c ppp-2.4.7-fixed/pppd/auth.c 
 | 
--- ppp-2.4.7/pppd/auth.c    2014-08-09 20:31:39.000000000 +0800 
 | 
+++ ppp-2.4.7-fixed/pppd/auth.c    2019-08-11 16:34:20.884222551 +0800 
 | 
@@ -1322,7 +1322,8 @@ 
 | 
     int hadchap; 
 | 
  
 | 
     hadchap = -1; 
 | 
-    ao->neg_upap = !refuse_pap && (passwd[0] != 0 || get_pap_passwd(NULL)); 
 | 
+    /* modify by guowenxue, add don't set passwd support */ 
 | 
+    ao->neg_upap = !refuse_pap; // && (passwd[0] != 0 || get_pap_passwd(NULL)); 
 | 
     ao->neg_chap = (!refuse_chap || !refuse_mschap || !refuse_mschap_v2) 
 | 
     && (passwd[0] != 0 || 
 | 
         (hadchap = have_chap_secret(user, (explicit_remote? remote_name: 
 | 
diff -Nuar ppp-2.4.7/pppd/Makefile.linux ppp-2.4.7-fixed/pppd/Makefile.linux 
 | 
--- ppp-2.4.7/pppd/Makefile.linux    2014-08-09 20:31:39.000000000 +0800 
 | 
+++ ppp-2.4.7-fixed/pppd/Makefile.linux    2019-08-11 16:35:13.888223567 +0800 
 | 
@@ -33,12 +33,12 @@ 
 | 
 # CC = gcc 
 | 
 # 
 | 
 COPTS = -O2 -pipe -Wall -g 
 | 
-LIBS = 
 | 
+LIBS = -lpthread 
 | 
  
 | 
-# Uncomment the next 2 lines to include support for Microsoft's 
 | 
+# Uncomment the next line to include support for Microsoft's 
 | 
 # MS-CHAP authentication protocol.  Also, edit plugins/radius/Makefile.linux. 
 | 
 CHAPMS=y 
 | 
-USE_CRYPT=y 
 | 
+#USE_CRYPT=y 
 | 
 # Don't use MSLANMAN unless you really know what you're doing. 
 | 
 #MSLANMAN=y 
 | 
 # Uncomment the next line to include support for MPPE.  CHAPMS (above) must 
 | 
@@ -79,6 +79,7 @@ 
 | 
 MAXOCTETS=y 
 | 
  
 | 
 INCLUDE_DIRS= -I../include 
 | 
+OPENSSL_INCLUDE_DIR= /usr/include/openssl 
 | 
  
 | 
 COMPILE_FLAGS= -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP 
 | 
  
 | 
@@ -132,7 +133,8 @@ 
 | 
  
 | 
 ifdef NEEDDES 
 | 
 ifndef USE_CRYPT 
 | 
-LIBS     += -ldes $(LIBS) 
 | 
+CFLAGS   += -I$(OPENSSL_INCLUDE_DIR) 
 | 
+LIBS     += -lcrypto -lpthread 
 | 
 else 
 | 
 CFLAGS   += -DUSE_CRYPT=1 
 | 
 endif 
 | 
diff -Nuar ppp-2.4.7/pppd/plugins/rp-pppoe/pppoe.h ppp-2.4.7-fixed/pppd/plugins/rp-pppoe/pppoe.h 
 | 
--- ppp-2.4.7/pppd/plugins/rp-pppoe/pppoe.h    2014-08-09 20:31:39.000000000 +0800 
 | 
+++ ppp-2.4.7-fixed/pppd/plugins/rp-pppoe/pppoe.h    2019-08-11 16:34:20.884222551 +0800 
 | 
@@ -47,6 +47,8 @@ 
 | 
 #include <sys/socket.h> 
 | 
 #endif 
 | 
  
 | 
+#include <netinet/in.h> 
 | 
+ 
 | 
 /* Ugly header files on some Linux boxes... */ 
 | 
 #if defined(HAVE_LINUX_IF_H) 
 | 
 #include <linux/if.h> 
 | 
@@ -84,8 +86,6 @@ 
 | 
 #include <linux/if_ether.h> 
 | 
 #endif 
 | 
  
 | 
-#include <netinet/in.h> 
 | 
- 
 | 
 #ifdef HAVE_NETINET_IF_ETHER_H 
 | 
 #include <sys/types.h> 
 | 
  
 | 
diff -Nuar ppp-2.4.7/pppd/pppcrypt.c ppp-2.4.7-fixed/pppd/pppcrypt.c 
 | 
--- ppp-2.4.7/pppd/pppcrypt.c    2014-08-09 20:31:39.000000000 +0800 
 | 
+++ ppp-2.4.7-fixed/pppd/pppcrypt.c    2019-08-11 16:34:20.888222551 +0800 
 | 
@@ -64,7 +64,7 @@ 
 | 
     des_key[7] = Get7Bits(key, 49); 
 | 
  
 | 
 #ifndef USE_CRYPT 
 | 
-    des_set_odd_parity((des_cblock *)des_key); 
 | 
+    DES_set_odd_parity((DES_cblock *)des_key); 
 | 
 #endif 
 | 
 } 
 | 
  
 | 
@@ -158,25 +158,25 @@ 
 | 
 } 
 | 
  
 | 
 #else /* USE_CRYPT */ 
 | 
-static des_key_schedule    key_schedule; 
 | 
+static DES_key_schedule    key_schedule; 
 | 
  
 | 
 bool 
 | 
 DesSetkey(key) 
 | 
 u_char *key; 
 | 
 { 
 | 
-    des_cblock des_key; 
 | 
+    DES_cblock des_key; 
 | 
     MakeKey(key, des_key); 
 | 
-    des_set_key(&des_key, key_schedule); 
 | 
+    DES_set_key(&des_key, &key_schedule); 
 | 
     return (1); 
 | 
 } 
 | 
  
 | 
 bool 
 | 
-DesEncrypt(clear, key, cipher) 
 | 
+DesEncrypt(clear, cipher) 
 | 
 u_char *clear;    /* IN  8 octets */ 
 | 
 u_char *cipher;    /* OUT 8 octets */ 
 | 
 { 
 | 
-    des_ecb_encrypt((des_cblock *)clear, (des_cblock *)cipher, 
 | 
-        key_schedule, 1); 
 | 
+    DES_ecb_encrypt((DES_cblock *)clear, (DES_cblock *)cipher, 
 | 
+        &key_schedule, 1); 
 | 
     return (1); 
 | 
 } 
 | 
  
 | 
@@ -185,8 +185,8 @@ 
 | 
 u_char *cipher;    /* IN  8 octets */ 
 | 
 u_char *clear;    /* OUT 8 octets */ 
 | 
 { 
 | 
-    des_ecb_encrypt((des_cblock *)cipher, (des_cblock *)clear, 
 | 
-        key_schedule, 0); 
 | 
+    DES_ecb_encrypt((DES_cblock *)cipher, (DES_cblock *)clear, 
 | 
+        &key_schedule, 0); 
 | 
     return (1); 
 | 
 } 
 | 
  
 |