History log of /haiku/src/add-ons/kernel/network/ppp/shared/libkernelppp/KPPPConfigurePacket.cpp
Revision Date Author Comments
# 7e66a287 28-Aug-2019 Jaroslaw Pelczar <jarek@jpelczar.com>

libkernelppp: Use arpa/inet.h for htons macros

Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: I6a9c8ef664d266b4d720fcf85525e73d82e6bd43
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1760
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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