OSSP CVS Repository

ossp - History for /ossp-pkg/l2/l2.h
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Directory]  [Show Milestones

DateVersion Description
2001-Sep-12 12:32    1.25    Check-in [954]: Source l2.h is now automatically generated by autoconf. Rerun ./configure to get a fresh l2.h revision, do not checkout from cvs! By ms. (diff)
2001-Sep-12 10:13    1.24    Check-in [945]: added L2_LEVEL_NONE - 2nd attempt By thl. (diff)
2001-Sep-12 10:08    1.23    Check-in [944]: added L2_LEVEL_NONE By thl. (diff)
2001-Sep-10 11:48    1.22    Check-in [909]: add version information to public API By thl. (diff)
2001-Sep-09 17:57    1.21    Check-in [900]: First cut for an SMTP output channel. This is very useful for (additionally) logging L2_LEVEL_PANIC messages in real-time to a mailbox via direct SMTP connection to a mail server. Internally it is very simple, because it is based on our new Socket Abstraction (SA) library (l2_ut_sa.[ch])... By rse. (diff)
2001-Sep-06 16:37    1.20    Check-in [873]: Replace generic L2_ERROR with more granular L2_ERR_XXX and make sure that we always check with "!= L2_OK". By rse. (diff)
2001-Sep-06 13:56    1.19    Check-in [871]: Add two cool extra formatter functions ;)

l2_util_fmt_string: This can be used like %s, but instead of fetching only a "char *" from the var-args stack, it fetches a "char *" plus a "size_t" and this way allows one to log only a sub-string of a larger string without the need for any temporary buffers, etc.

l2_util_fmt_dump: This can be used as "%{type}X" for dumping arbitrary octets. The parameter "type" can be either "text" (the default if only "%X" is used) for dumping the octets as text but with non-printable characters replaced by "\xXX" constructs; "hex" for dumping the octets in hexadecimal as "XX:XX:XX:XX" or "base64" for dumping the octets Base64 encoded. All three are intended for making it easier to produce reasonable L2_LEVEL_DEBUG messages without having to fiddle around with temporary buffers and having to care with non-printable characters.

For instance, using...

      :
  l2_stream_formatter(st, 'D', l2_util_fmt_dump, NULL);
      :
  l2_stream_vlog(st, L2_LEVEL_DEBUG, "%{text}D %{hex}D %{base64}D\n",
                 "foo", 12345, "foo\1bar", 7, "foo\1bar", 7, "foo\1bar", 7);
      :

...produces "foo\x01bar 66:6f:6f:01:62:61:72 Zm9vAWJhcg==" in the output. By rse. (diff)

2001-Sep-05 15:32    1.18    Check-in [859]: added to utility functions for transforming levelmask between string and int and vice versa By thl. (diff)
2001-Sep-05 09:41    1.17    Check-in [851]: Provide an L2_TYPE_STRING for the channel configuration steps. This is like L2_TYPE_CHARPTR but treats the target as a NUL-terminated string and performs a strdup() on it. This make the channels simpler, because they no longer have to post-process the configuration step in order to make own copies of provided strings. By rse. (diff)
2001-Sep-04 21:18    1.16    Check-in [847]: Be pedantically correct: handler hooks return "l2_result_t" and not "int", although currently it is just an int/enum. By rse. (diff)
2001-Sep-04 17:41    1.15    Check-in [843]: 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)

2001-Sep-04 16:56    1.14    Check-in [842]: cleanup level API (no need for retrieving old mask just in one function - either in all or in none). By rse. (diff)
2001-Sep-04 15:52    1.13    Check-in [835]: 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)

2001-Sep-03 15:43    1.12    Check-in [825]: - replace "int" with "l2_result_t" in L2 channel API - use a 2^n for L2_LEVEL_XXX in order to be able to create mask - remember loglevel for each channel - rewrite test suite By rse. (diff)
2001-Sep-03 14:16    1.11    Check-in [823]: revamped L2 stream API By rse. (diff)
2001-Sep-02 15:18    1.10    Check-in [814]: Revert to last version due to new design of l2_ch_socket_t. By ms. (diff)
2001-Aug-26 15:01    1.9    Check-in [768]: Added unsigned short type to PARAMETER macros for sockaddr_in struct. By ms. (diff)
2001-Aug-15 12:36    1.8    Check-in [675]: Fix more ossp.com references by replacing with the correct domain name ossp.org. By rse. (diff)
2001-May-26 10:04    1.7    Check-in [492]: cleanup style By rse. (diff)
2001-May-26 10:02    1.6    Check-in [491]: change terminology: below -> downstream By rse. (diff)
2001-May-24 11:40    1.5    Check-in [490]: o rename l2_error_t to l2_result_t o introduce internal channel state for API robustness By rse. (diff)
2001-May-22 20:47    1.4    Check-in [485]: Simplify things by merging the parameter stuff into l2_channel.c and the l2_stream_t related things into l2_stream.c By rse. (diff)
2001-May-19 22:08    1.3    Check-in [476]: the "int l2_channel_configure(l2_channel_t *ch, const char *fmt, ...);" beast was my idea, so it is fair to also provide the necessary tool for implementing the underlying handler functions. Here it is, l2_param_parse(). By rse. (diff)
2001-May-11 19:07    1.2    Check-in [456]: Fill in channel handler template code. By rse. (diff)
2001-May-10 21:46    1.1    Check-in [449]: Initial revision By rse.
2001-May-10 21:46    1.1.1.1    Check-in [450]: L2 initial source tree By rse. (diff)

CVSTrac 2.0.1