The patch comes from OpenEmbedded Rebased for ppp-2.4.5. Dongxiao Xu Upstream-Status: Inappropriate [embedded specific] diff -ruN ppp-2.4.5-orig/pppd/ipcp.c ppp-2.4.5/pppd/ipcp.c --- ppp-2.4.5-orig/pppd/ipcp.c 2010-06-30 15:51:12.050166398 +0800 +++ ppp-2.4.5/pppd/ipcp.c 2010-06-30 17:02:33.930393283 +0800 @@ -55,6 +55,8 @@ #include #include #include +#include +#include #include "pppd.h" #include "fsm.h" @@ -2095,6 +2097,14 @@ u_int32_t peerdns1, peerdns2; { FILE *f; + struct stat dirinfo; + + if(stat(_PATH_OUTDIR, &dirinfo)) { + if(mkdir(_PATH_OUTDIR, 0775)) { + error("Failed to create directory %s: %m", _PATH_OUTDIR); + return; + } + } f = fopen(_PATH_RESOLV, "w"); if (f == NULL) { diff -ruN ppp-2.4.5-orig/pppd/pathnames.h ppp-2.4.5/pppd/pathnames.h --- ppp-2.4.5-orig/pppd/pathnames.h 2010-06-30 15:51:12.043682063 +0800 +++ ppp-2.4.5/pppd/pathnames.h 2010-06-30 17:03:20.594371055 +0800 @@ -30,7 +30,8 @@ #define _PATH_TTYOPT _ROOT_PATH "/etc/ppp/options." #define _PATH_CONNERRS _ROOT_PATH "/etc/ppp/connect-errors" #define _PATH_PEERFILES _ROOT_PATH "/etc/ppp/peers/" -#define _PATH_RESOLV _ROOT_PATH "/etc/ppp/resolv.conf" +#define _PATH_OUTDIR _ROOT_PATH _PATH_VARRUN "/ppp" +#define _PATH_RESOLV _PATH_OUTDIR "/resolv.conf" #define _PATH_USEROPT ".ppprc" #define _PATH_PSEUDONYM ".ppp_pseudonym"