[makioka]/home/nob# tar zxvf ppp-2.3b2.tar.gz -C /usr/local/src
[makioka]/usr/local/src/ppp-2.3b2# ./configure
[makioka]/usr/local/src/ppp-2.3b2# make 略 ===> pppstats cc -O -I.. -c pppstats.c In file included from pppstats.c:50: ../net/ppp_defs.h:81: redefinition of `u_int32_t' /usr/include/machine/types.h:62: `u_int32_t' previously declared here *** Error code 1
#if !defined(__BIT_TYPES_DEFINED__) && !defined(_BITYPES) #ifdef UINT32_T typedef UINT32_T u_int32_t; #else typedef unsigned int u_int32_t; #endif #endifの部分をcomment outする。
[makioka]/usr/local/src/ppp-2.3b2# make ===> chat ===> pppd ===> pppstats cc -O -I.. -c pppstats.c cc -O -I.. -o pppstats pppstats.o
MAN8= chat.0を
MAN8= chat.8としてから、rootでmake install
net/ppp-deflate.c optional ppp net/zlib.c optional pppを追加する。
#ifdef VJC
MALLOC(sc->sc_comp, struct slcompress *, sizeof(struct slcompress),
M_DEVBUF, M_NOWAIT);
if (sc->sc_comp)
vj_compress_init(sc->sc_comp, -1);
#endif
という部分であるが
#ifdef VJC
MALLOC(sc->sc_comp, struct vjcompress *, sizeof(struct vjcompress),
M_DEVBUF, M_NOWAIT);
if (sc->sc_comp)
vj_compress_init(sc->sc_comp, -1);
#endif
と変更。
ifdef VJC
struct slcompress *sc_comp; /* vjc control buffer */
#endif
を
ifdef VJC
struct vjcompress *sc_comp; /* vjc control buffer */
#endif
にした。
loading kernel inflate.o: Definition of symbol `_inflate' (multiply defined) zlib.o: Definition of symbol `_inflate' (multiply defined) *** Error code 1 Stop.まですすんだ。^_^v
/*
* Call inflate, supplying more input or output as needed.
*/
for (;;) {
r = inflate(&state->strm, flush);
if (r != Z_OK) {
#if !DEFLATE_DEBUG
if (state->debug)
#endif
/sys/net/zlib.cの
#define NEEDBYTE {if(z->avail_in==0)goto empty;r=Z_OK;}
#define NEXTBYTE (z->avail_in--,z->total_in++,*z->next_in++)
int inflate(z, f)
z_stream *z;
int f;
この2ヵ所の"inflate"を"inflateP"に変更した。
Sep 25 21:11:35 cs1 pppd[146]: pppd 2.3.0 started by root, uid 0 Sep 25 21:11:35 cs1 pppd[147]: pppd 2.3.0 started by root, uid 0と、これまでのところ問題なく稼働している。
2.2まででみられた、接続先のModemがhang upした場合に、
経路情報が残ってしまう問題が解決されたような気がする。
金原さん、ありがとうございました。2.2以前pppdでarpがおかしくなるという現象は,pppごしに ftp でファイ ルを転送している最中にモデムの電源を切るなどしてpppdを終了させてや る(pppdにSIGHUPを送る)と確実に再現できるようです。