OSSP CVS Repository
|1.40||Check-in : Adjust copyright messages for new year 2005. By rse. (diff)|
|1.39||Check-in : Adjust copyright messages for new year 2005. By rse. (diff)|
|1.38||Check-in : - remove trailing whitespaces - adjust copyright messages - consistently use "OSSP l2" - consistently talk about "Flexible Logging" - use standard OSSP ASCII-art By rse. (diff)|
|1.37||Check-in : Upgrade to OSSP sa 1.0.1 By rse. (diff)|
|1.36||Check-in : polish for release By rse. (diff)|
|1.35||Check-in : bump copyright year By rse. (diff)|
Hell, I've seldom seen that it is needed to prepare and adjust such a
lot of subtle details of existing code in order to make a new feature
implementable in a straight-forward way. Anyway, here comes one more
preparation change for the forthcoming channel tree specification
- change l2_util_setparam() to take an l2_env_t parameter which allows the function to report better error messages.
- completely rewrite l2_util_setparam() to support calls l2_channel_configure(ch, "n1=v1,n2=v2,n3=v3") and/or l2_channel_configure(ch, "n1=%x,n2=%x,n3=%x", v1, v2, v3) instead of l2_channel_configure(ch, "n1,n2,n3", v1, v2, v3)
This is both a step forward to make the interface of l2_channel_configure() more flexible (because one now can directly inline values instead of having them to be passed explicitly) and allows the spec parser not having to know the type (integer, floating point or string) of a parameter (which is important if one wants the parser to be independent of the implementing channel handlers).By rse. (diff)
More preparations for forthcoming channel tree specification parser
(especially to allow the parser to determine the handler structure
from a handler name without introducing another and this way redundant
- add "char *name" to l2_handler_t in order to tag each handler structure with the corresponding channel name
- add l2_env_handler() function to add handler to l2_env_t objects. All l2_handler_xxxx are automatically pre-configured there after l2_env_create().
- change l2_channel_create() to take a "const char *name" (handler name) instead of the "l2_handler_t *h" (handler pointer) to make the stuff consistent and more clear.
- adjust l2_test.c to reflect the changes. By rse. (diff)
|1.32||Check-in : - change protocol parameter from "IPPROTO_XXX" to just "xxx" - add support for numerical and textual ports - add UDP support - remove unused iSocket variable - fix massive memory leaks on channel destruction - generally simplify implementation - cleanup coding style By rse. (diff)|
|1.31||Check-in : Partially rewrote the socket channel to use the OSSP socket abstraction library. Channel still needs UDP configuration and writing logic. By ms. (diff)|
|1.30||Check-in : More socket channel configuration parameter adjustments. By ms. (diff)|
|1.29||Check-in : Cleanup before conversion to use sa_family socket calls. By ms. (diff)|
|1.28||Check-in : use assert(3) instead of home-brewn stuff By rse. (diff)|
|1.27||Check-in : Added debug infrastructure, assertions, fixed one bug. By ms. (diff)|
|1.26||Check-in : portability fixes for solaris By thl. (diff)|
|1.25||Check-in : Upgraded both stream and channel-level APIs to include new L2_LEVEL parameter design. By ms. (diff)|
|1.24||Check-in : add Dmalloc support to L2 By thl. (diff)|
|1.23||Check-in : Removed unused variables. By ms. (diff)|
|1.22||Check-in : Bug fixes, cleanup, and removed makefile redundancies (see end.) By ms. (diff)|
|1.21||Check-in : minor modifications for compile run to survive --pendantic-errors. Please review. By thl. (diff)|
|1.20||Check-in : Bug fixes to both IPv4 and IPv6 socket binding. By ms. (diff)|
|1.19||Check-in : Cleaned up and KR styled. By ms. (diff)|
|1.18||Check-in : Redesigned IPv6 logic, added support for UDP. UDP write operation is still not working. By ms. (diff)|
|1.17||Check-in : Use plain K&R coding style. By rse. (diff)|
|1.16||Check-in : Simplify channels again: The channel framework gurranties that the handler context is available if the handler has set it, so there is no need to perform an additional run-time check and try to return L2_ERR_ARG. By rse. (diff)|
|1.15||Check-in : It is fully legal to have some handler operations not implemented in case there is nothing to do for the handler. So remove the No-op hooks. By rse. (diff)|
|1.14||Check-in : Replace generic L2_ERROR with more granular L2_ERR_XXX and make sure that we always check with "!= L2_OK". By rse. (diff)|
|1.13||Check-in : Gethostbyname2() is not yet stable across platforms, and actually unnecessary in this case. By ms. (diff)|
|1.12||Check-in : Be politically correct: channels are intended to be implemented also by users, which have only access to the public API (l2.h), so do not even try to use anything more in our own shipped channels. By rse. (diff)|
|1.11||Check-in : Completed IPv4 and IPv6 implementations of configure, open, and write callbacks functions. By ms. (diff)|
|1.10||Check-in : Be pedantically correct: handler hooks return "l2_result_t" and not "int", although currently it is just an int/enum. By rse. (diff)|
|1.9||Check-in : Whohooo, now we can simplify output channels: because output channels are guarrantied to be not on top of other channels, they do not have any downstream channels. So remove all downstream handling from them. Only filter channels have to be aware of downstream channels. By rse. (diff)|
Revamp channel handler API:
Instead of passing the downstream channel to all channels we instead provide a l2_channel_downstream() function and provide the current channel. This way the handler API is prototype-wise fully orthogonal with the channel API (which it implements) and we no longer pass information to 2/3 of our (output) channels which is of no use there.
Additionally add a channel type field to l2_handler_t which allows a handler to say what type of channel it implements (filter or output). This information is now used in l2_channel_stack() to make sure that one can only stack a filter channel on top of another channel. For convinience reasons there is also a new l2_channel_type() function which allows one to query the type of a particular channel. By rse. (diff)
Wohhooooo! Here comes the underlying message formatting support:
1. renamed l2_channel_setparam() to l2_util_setparam() because it is just a utility function and is not tied to any channel.
2. moved l2_util_setparam() to its own l2_ut_param.c source file.
3. added l2_ut_format.c which contains a slightly adjusted version of Str's str_format() stuff under the name l2_util_format().
4. use l2_util_format() in l2_stream.c instead of vsnprintf() and this way finally support l2_formatter_t callbacks.
5. cleanup adjustments to the l2_stream_formatter() API.
Let's rock... By rse. (diff)
|1.6||Check-in : Basic architecture and functionality additions. By ms. (diff)|
|1.5||Check-in : Wrote the l2_ch_socket_t class, and its create and configure methods. By ms. (diff)|
|1.4||Check-in : Fix more ossp.com references by replacing with the correct domain name ossp.org. By rse. (diff)|
|1.3||Check-in : change terminology: below -> downstream By rse. (diff)|
|1.2||Check-in : Fill in channel handler template code. By rse. (diff)|
|1.1||Check-in : Initial revision By rse.|
|188.8.131.52||Check-in : L2 initial source tree By rse. (diff)|