History log of /haiku/src/add-ons/kernel/network/ppp/shared/libkernelppp/KPPPLCP.cpp
Revision Date Author Comments
# ceff2b88 05-Apr-2017 Alexander von Gluck IV <kallisti5@unixzen.com>

ppp: Basic build fixes on x86_64


# e3724c38 04-Jan-2014 mshlyn <linlongzhou@163.com>

PPP: Port to the new stack.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

This is a squash of the 42 commits by @mshlyn, as I couldn't find a
way to break them into logical chunks. I did not include these in the build,
as it appears that they only partially work anyway, and much more cleanup is
still needed. However, this is a huge improvement on what was in the tree
before, which looked horrendous and didn't even compile (as it was designed
for the old stack).

Mostly fixes #812.


# fc1cf1a3 26-Mar-2007 Axel Dörfler <axeld@pinc-software.de>

Style cleanup, patch by Vasilis Kaoutsis - thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20430 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f13f213 16-Jul-2006 Waldemar Kornewald <wkornew@nowhere.fake>

* Made the PPP code more single-threaded.
* Removed ppp_up code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18161 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 758b1d0e 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixes that make Haiku build with gcc 4. Mainly out of the following
categories:
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
declarations).
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
Otherwise the an inner class with that name is considered as friend.
gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96


# abdb7d1a 10-Oct-2005 Waldemar Kornewald <wkornew@nowhere.fake>

- updated email-address
- removed profiles, ppp_up, and some TODOs
- simplified KPPPReportManager and reports API, KPPPInterface::Up()+Down(), and PPPInterfaceListener (also removed some features from the last one)
- KPPPInterface now sends the last PPP_CONNECTION_REPORT message to every newly registered report receiver
- added net_server to the build, but removed old net_server testing-stuff

all changes are completely untested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14338 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84b580c4 20-Nov-2004 Waldemar Kornewald <wkornew@nowhere.fake>

DialOnDemand will be handled differently. Instead of setting it manually in the prefs we have one default interface. Still not finished.
Moved ppp_up code to KPPPManager.
Experimenting with IPCP DialOnDemand support.
Many changes I do not remember.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10117 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f3689bb 01-Jun-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Finished doxygen comments for the PPP API.
Minor changes to simplify PAP authenticator.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7730 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13013331 19-May-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Added *many* Doxygen comments. More will follow. Documentation is no fun at all, really.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7617 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce0b86e9 05-Apr-2004 Waldemar Kornewald <wkornew@nowhere.fake>

* IPCP: I think this fixed the default route bug. At least it does not crash anymore.
* PPP stack: Fixed a bug that was introduced with the settings_tools change.
* Modem: Renamed "Interface" to "Port" and made it use any device (i.e.: a complete path must be supplied) and made it assume that the device is a port (termios.h API).
* Fixed a compilation warning.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7167 a95241bf-73f2-0310-859d-f6bbb57e9c96


# abf44d1a 02-Mar-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Some changes I did a long time ago. I think this also contains a fix for the last dead-lock I could find.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6857 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9ad2df8 24-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Added profile and interface naming support.
Added 'K' prefix to all kernel classes to resolve naming issue with doxygen.
Began some small doxygen comments.
Minor changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6282 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cfb4dca 19-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Replaced all printf and spawn_thread functions with their kernel counterparts.
IPCP: changed route initialization a little bit. Still cannot remove default route correctly.
Renamed interface_id to ppp_interface_id.
Some minor changes.
Worked on libppp.a (userland PPP library).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc14c996 07-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

I like it better this way. dprintf is not available in userland. ;)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5980 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e586f3a6 06-Jan-2004 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Apparantly, the build is stricter when you start it from the root of the tree.
It only complains of an undefined function (dprintf) when I use jam from there,
not when I start it in this subdir.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5941 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8deb4227 06-Jan-2004 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Fix compilation error:
/boot/home/openbeos-cvs/stable/src/add-ons/kernel/network/ppp/shared/libkernelppp/KPPPLCP.cpp: In method `status_t PPPLCP::Receive(struct mbuf *, short unsigned int)':
/boot/home/openbeos-cvs/stable/src/add-ons/kernel/network/ppp/shared/libkernelppp/KPPPLCP.cpp:221: implicit declaration of function `int printf(...)'

{We're in kernel land now, so we use dprintf instead of printf}


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5940 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 86c13dda 05-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Yeah! It finally works! The default route was missing, that was the only problem!
I established a connection with PPPoE and pinged goole and osnews. Net+ loaded half of www.osnews.com but then crashed because of a bug in our DNS resolver.
There is one more bug to fix: our core stack module does not remove the routes when an interface is deleted.
Thus, there will always remain the route(s) from the last connection(s).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5910 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca43389a 21-Nov-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Some small changes and fixes.

Most important:
Finished IPCP and PAP modules.
Both of them are untested at the moment.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5442 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e0ad752 07-Nov-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Fixed many bugs and added debug output.
You can now successfully (dis-)connect to(/from) a PPP server using the PPPoE device module.
To be useful we need the PAP and IPCP modules (in the works).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5276 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e7452421 23-Oct-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Mostly fixes and smaller API changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5119 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92a8026e 02-Oct-2003 Waldemar Kornewald <wkornew@nowhere.fake>

As the netstack has a bug I cannot work on the interface module before this is fixed. So I changed the API of the libkernelppp.a (although, this was planned for a later release).
PPPEncapsulator was removed. PPPProtocol is now a protocol and an encapsulator.
PPPDevice, PPPProtocol, and PPPInterface derive from PPPLayer. This base class simplifies the packet passing process and gives PPPDevice more flexibility as it now can add layers between itself and PPPInterface (which was not possible before). This feature will probably be used by the HDLC framing module.
Also, PPPProtocol will always send to the next layer which might either be another protocol, an encapsulator protocol, or the PPPInterface. No distinction is necessary anymore.

This all reduced the list template usage and made some methods simpler.
With this step I could reduce the size of the libkernelppp.a binary from >200K to 143K.

Now, I will go hunting bugs! :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4928 a95241bf-73f2-0310-859d-f6bbb57e9c96


# de2f76e1 22-Sep-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Moved libkernelppp.a to add-ons/kernel/network/ppp/shared.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4788 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc1cf1a3d24bc28201c314c56be8d2816550f3f6 26-Mar-2007 Axel Dörfler <axeld@pinc-software.de>

Style cleanup, patch by Vasilis Kaoutsis - thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20430 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f13f213de8e2b44640b88a2b3d42ed921f637cb 16-Jul-2006 Waldemar Kornewald <wkornew@nowhere.fake>

* Made the PPP code more single-threaded.
* Removed ppp_up code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18161 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 758b1d0e05fe1042cce6e00d194a147802d4f9be 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixes that make Haiku build with gcc 4. Mainly out of the following
categories:
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
declarations).
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
Otherwise the an inner class with that name is considered as friend.
gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96


# abdb7d1abbf1686ecb8f7132e576d332f6cc01ed 10-Oct-2005 Waldemar Kornewald <wkornew@nowhere.fake>

- updated email-address
- removed profiles, ppp_up, and some TODOs
- simplified KPPPReportManager and reports API, KPPPInterface::Up()+Down(), and PPPInterfaceListener (also removed some features from the last one)
- KPPPInterface now sends the last PPP_CONNECTION_REPORT message to every newly registered report receiver
- added net_server to the build, but removed old net_server testing-stuff

all changes are completely untested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14338 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84b580c425e26370792255dbb5e1879250434372 20-Nov-2004 Waldemar Kornewald <wkornew@nowhere.fake>

DialOnDemand will be handled differently. Instead of setting it manually in the prefs we have one default interface. Still not finished.
Moved ppp_up code to KPPPManager.
Experimenting with IPCP DialOnDemand support.
Many changes I do not remember.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10117 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f3689bb79f1fa6e5bf21e925e17463016c3372e 01-Jun-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Finished doxygen comments for the PPP API.
Minor changes to simplify PAP authenticator.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7730 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13013331d0ead841705a7f4e458b972c76aee627 19-May-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Added *many* Doxygen comments. More will follow. Documentation is no fun at all, really.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7617 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce0b86e9ddb0d244e360d7bf25c3126c9ba66004 05-Apr-2004 Waldemar Kornewald <wkornew@nowhere.fake>

* IPCP: I think this fixed the default route bug. At least it does not crash anymore.
* PPP stack: Fixed a bug that was introduced with the settings_tools change.
* Modem: Renamed "Interface" to "Port" and made it use any device (i.e.: a complete path must be supplied) and made it assume that the device is a port (termios.h API).
* Fixed a compilation warning.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7167 a95241bf-73f2-0310-859d-f6bbb57e9c96


# abf44d1a2b878b33fcf39a6cf0d0b1625d78edfe 02-Mar-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Some changes I did a long time ago. I think this also contains a fix for the last dead-lock I could find.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6857 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9ad2df864f15e206e629cc58bc9d4deb2935f12 24-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Added profile and interface naming support.
Added 'K' prefix to all kernel classes to resolve naming issue with doxygen.
Began some small doxygen comments.
Minor changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6282 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cfb4dcac25af9c27f1b69ea71ba47d12e1c64fb 19-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Replaced all printf and spawn_thread functions with their kernel counterparts.
IPCP: changed route initialization a little bit. Still cannot remove default route correctly.
Renamed interface_id to ppp_interface_id.
Some minor changes.
Worked on libppp.a (userland PPP library).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc14c99624ab65133ed537fcf482f89702b9f2fe 07-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

I like it better this way. dprintf is not available in userland. ;)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5980 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e586f3a6804022faa514ec9e1943c12550db7cd8 06-Jan-2004 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Apparantly, the build is stricter when you start it from the root of the tree.
It only complains of an undefined function (dprintf) when I use jam from there,
not when I start it in this subdir.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5941 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8deb422714c11007b8347f8435571e2b9c242cac 06-Jan-2004 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Fix compilation error:
/boot/home/openbeos-cvs/stable/src/add-ons/kernel/network/ppp/shared/libkernelppp/KPPPLCP.cpp: In method `status_t PPPLCP::Receive(struct mbuf *, short unsigned int)':
/boot/home/openbeos-cvs/stable/src/add-ons/kernel/network/ppp/shared/libkernelppp/KPPPLCP.cpp:221: implicit declaration of function `int printf(...)'

{We're in kernel land now, so we use dprintf instead of printf}


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5940 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 86c13dda5a831b614ef044139c2e89f4f3352621 05-Jan-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Yeah! It finally works! The default route was missing, that was the only problem!
I established a connection with PPPoE and pinged goole and osnews. Net+ loaded half of www.osnews.com but then crashed because of a bug in our DNS resolver.
There is one more bug to fix: our core stack module does not remove the routes when an interface is deleted.
Thus, there will always remain the route(s) from the last connection(s).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5910 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca43389a750b879b6e3bcabc6c3913fa33e4a3ad 21-Nov-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Some small changes and fixes.

Most important:
Finished IPCP and PAP modules.
Both of them are untested at the moment.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5442 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e0ad75221194c01b01ad7f13afe0a7aa6256a83 07-Nov-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Fixed many bugs and added debug output.
You can now successfully (dis-)connect to(/from) a PPP server using the PPPoE device module.
To be useful we need the PAP and IPCP modules (in the works).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5276 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e7452421930cdbbd8c549e77bbedbdc52472c78d 23-Oct-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Mostly fixes and smaller API changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5119 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92a8026e02acf7895727ebda87c3bebacd3fa082 02-Oct-2003 Waldemar Kornewald <wkornew@nowhere.fake>

As the netstack has a bug I cannot work on the interface module before this is fixed. So I changed the API of the libkernelppp.a (although, this was planned for a later release).
PPPEncapsulator was removed. PPPProtocol is now a protocol and an encapsulator.
PPPDevice, PPPProtocol, and PPPInterface derive from PPPLayer. This base class simplifies the packet passing process and gives PPPDevice more flexibility as it now can add layers between itself and PPPInterface (which was not possible before). This feature will probably be used by the HDLC framing module.
Also, PPPProtocol will always send to the next layer which might either be another protocol, an encapsulator protocol, or the PPPInterface. No distinction is necessary anymore.

This all reduced the list template usage and made some methods simpler.
With this step I could reduce the size of the libkernelppp.a binary from >200K to 143K.

Now, I will go hunting bugs! :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4928 a95241bf-73f2-0310-859d-f6bbb57e9c96


# de2f76e1fee624debe0d0af54ae6c9b18e9c1994 22-Sep-2003 Waldemar Kornewald <wkornew@nowhere.fake>

Moved libkernelppp.a to add-ons/kernel/network/ppp/shared.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4788 a95241bf-73f2-0310-859d-f6bbb57e9c96