This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problems with ppp and Windows


Hi Øyvind,

I've put together a memory allocation debug feature patch...

http://ecos.sourceware.org/ml/ecos-discuss/2004-06/msg00161.html

It looks useful, thanks for that.


I think the proper place to add some debug notification is at the usage points of network mallocs. In the case of PPP, after the MALLOC() failed, it ought to have done something about it or printed some debug, rather than just carrying on broken.

Does it make any sense at all to bring up the PPP connection if these initial allocations fail?

Well that depends. If only a VJC allocation fails then it may be possible to bring up a PPP interface that refuses to negotiate VJC. I don't know if we really need to worry about providing this kind of fallback operation though.


Note that I saw the lockup on accept() even if the VJC compression
buffers could be allocated.

Your generic malloc fail patch should be pretty useful then, to catch any kind of allocation failing.


For PPP there are a bunch of configuration options that aren't covered by the cyg_ppp_options_t structure. I've added a few options here to handle authorisation for dialin connections. Similarly you could extend it to disable things like VJ compression to reduce the memory requirements.

Care to share? :-)

Certainly. I'm just experimenting with it at the moment though, so I'm not yet confident that it should go into the eCos tree. But in the meantime if you want to investigate, here's a summary:


. Set auth_required = 1 if you want to require authentication from the other end.
. Set wo->neg_chap and wo->neg_upap to 1 depending on which you want to use for authentication (see lcp.c)
. You can extend cyg_ppp_options_t to accomodate the above 3 options.
. Finally fix up the functions in auth.c to do your username/password lookup (maybe you want them in a fixed array, or read a password file off a disk or whatever). For CHAP, you can use get_secret() to look up the user/pass. For PAP, use check_passwd(), ensuring that have_pap_secret() returns 1. Also think about whether you will accept the IPs offered by the peer, and see function ip_addr_check().


Cheers,
Kelvin.


-- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]