Skip to content

Releases: goatshriek/stumpless

v2.2.0

26 May 18:32
3d9cdc4
Compare
Choose a tag to compare

Added

  • @since format check enforcement in CI pipeline.
  • single-file target for rollup .c and .h files.
  • SQLite3 logging targets.
  • Target chains.
  • Support for pkg-config.
  • INSTALL_HEADERS and INSTALL_HTML build options.
  • Localizations for:
    • Albanian (sq-AL 🇦🇱)
    • Danish (da-DK 🇩🇰)
    • Hebrew (he-IL 🇮🇱)
    • Hungarian (hu-HU 🇭🇺)
    • Japanese (ja-JP 🇯🇵)
    • Sinhala (si-LK 🇱🇰)
    • Swahili (sw-KE 🇰🇪)
    • Teluga (te-IN 🇮🇳)
    • Turkish (tr-TR 🇹🇷)

Fixed

  • Deadlock potential in stumpless_set_entry_hostname and
    stumpless_set_entry_procid when validation fails.
  • Builds in ANSI C environments.
  • sys/socket.h-based TCP network targets will immediately fail with an error
    if the remote end sends a FIN message, instead of waiting for send to fail,
    possibly sending messages that are not actually received by the remote end.

v2.1.0

13 Nov 14:52
9f6a776
Compare
Choose a tag to compare

API documentation available on the stumpless website.

Added

  • Custom function logging targets.
  • Localizations for:
    • Bengali (bn-IN 🇮🇳)
    • Chinese (zh-CN 🇨🇳)
    • Czech (cz-CZ 🇨🇿)
    • Hindi (hi-IN 🇮🇳)
    • Polish (pl-PL 🇵🇱)
    • Portuguese (pt-BR 🇧🇷)
    • Spanish (es-ES 🇪🇸)
  • Systemd journal logging targets (journald).
  • Log source file tracing functions:
    • stump_trace
    • stumpless_trace_entry
    • stumpless_trace_log
    • stumpless_trace_message
    • stumplog_trace
    • vstump_trace
    • vstumpless_trace_log
    • vstumpless_trace_message
    • vstumplog_trace
  • The TRACE log level severity shorthand function macros:
    • stump_t
    • stump_t_entry
    • stump_t_log
    • stump_t_message
    • stumplog_t
  • Macro STUMPLESS_SEVERITY_TRACE_VALUE as an alias for
    STUMPLESS_SEVERITY_DEBUG_VALUE.
  • Macro STUMPLESS_SEVERITY_TRACE for the new level as an alias for
    the STUMPLESS_SEVERITY_DEBUG enum member.
  • Runtime filtering mechanism, as well as default support for log masks, via
    the following functions:
    • stumpless_get_target_filter
    • stumpless_get_target_mask
    • stumpless_mask_filter
    • stumpless_set_target_filter
    • stumpless_set_target_mask
    • stumplog_set_mask
  • Safer and more performant _str versions of any function taking a format
    specifier string and variable number of arguments.
  • Default Windows Event Log messages that can be used when none are specified.
  • Full unicode support with Windows Event Log targets, along with the following
    new functions:
    • stumpless_add_default_wel_event_source
    • stumpless_add_wel_event_source
    • stumpless_add_wel_event_source_w
    • stumpless_get_wel_category
    • stumpless_get_wel_event_id
    • stumpless_get_wel_insertion_param
    • stumpless_get_wel_insertion_string_w
    • stumpless_get_wel_type
    • stumpless_remove_default_wel_event_source
    • stumpless_remove_wel_event_source
    • stumpless_remove_wel_event_source_w
    • stumpless_set_wel_insertion_string_w
    • stumpless_set_wel_insertion_strings_w
    • vstumpless_set_wel_insertion_strings_w
  • STUMPLESS_OPTION_CONS is now supported with similar semantics to LOG_CONS
    from syslog.h.
  • The procid and hostname can be overriden if the defaults are not wanted, via
    the functions:
    • stumpless_get_entry_hostname
    • stumpless_get_entry_procid
    • stumpless_set_entry_hostname
    • stumpless_set_entry_procid
  • Other new functions:
    • stumpless_get_network_protocol
    • stumpless_get_target_type_string
    • stumpless_get_transport_protocol

Changed

  • Auto-generated local socket names use abstract socket names if supported.
  • Auto-generated local socket names are always stumpless-socket instead of
    being generated using mkstemp.

Fixed

  • stumpless_perror segmentation faults after the following errors:
    • STUMPLESS_FILE_OPEN_ERROR
    • STUMPLESS_FILE_WRITE_ERROR
    • STUMPLESS_INVALID_ID
    • STUMPLESS_MEMORY_ALLOCATION_FAILURE
    • STUMPLESS_NETWORK_PROTOCOL_UNSUPPORTED
    • STUMPLESS_STREAM_WRITE_FAILURE
    • STUMPLESS_TRANSPORT_PROTOCOL_UNSUPPORTED
    • STUMPLESS_WINDOWS_EVENT_LOG_CLOSE_FAILURE
    • STUMPLESS_WINDOWS_EVENT_LOG_OPEN_FAILURE
  • Several memory leaks:
    • Object cache leak in some allocation failure scenarios
    • Creating network target with unsupported protocols
  • close syscall is no longer called on invalid socket handles
  • TCP network targets do not hang when the session is closed by the receiver.

v2.0.0

02 Jan 14:42
5594400
Compare
Choose a tag to compare

Added

  • Localization framework for error messages and other library strings, and
    localizations for:
    • French (fr-FR 🇫🇷)
    • German (de-DE 🇩🇪)
    • Italian (it-IT 🇮🇹)
    • Slovak (sk-SK 🇸🇰)
    • Swedish (sv-SE 🇸🇪)
  • Thread safety for all functionality.
  • The following functions:
    • stumpless_free_thread
    • stumpless_get_element_count
    • stumpless_get_target_name
    • stumpless_get_target_default_app_name
    • stumpless_get_target_default_msgid
    • stumpless_param_to_string
    • stumpless_read_buffer
  • The following C++ function bindings:
    • Entry.GetAppName
    • Entry.GetMessage
    • Entry.GetMsgid
    • Version.Compare

Changed

  • C++ namespace from stumplesscpp to stumpless.
  • Including stumpless/config.h no longer defines WIN32_LEAN_AND_MEAN.
  • Facilities, options, and severities are now only available in the
    stumpless/facility.h, stumpless/option.h, and stumpless/severity.h
    headers, respectively.
  • Functions that return strings now require the caller to free the string
    when it is no longer needed. Prior to this version these strings pointed
    to internal character buffers that could not be modified. The functions
    affected by this are:
    • stumpless_get_element_name
    • stumpless_get_entry_app_name
    • stumpless_get_entry_message
    • stumpless_get_entry_msgid
    • stumpless_get_entry_param_value_by_index
    • stumpless_get_entry_param_value_by_name
    • stumpless_get_param_name
    • stumpless_get_param_name_by_index
    • stumpless_get_param_value
    • stumpless_get_param_value_by_index
    • stumpless_get_param_value_by_name
  • The underlying buffer in buffer targets should no longer be read manually,
    but should instead use the new stumpless_read_buffer function as the only
    way to read messages.
  • All target open functions no longer require an options or default facility
    parameter, resulting in much more concise code. If either of these fields
    need to be adjusted on a target, use the stumpless_set_option and
    stumpless_set_default_facility functions after the target has been
    created.
  • Facilities and severities are now enums instead of preprocessor symbols.

Deprecated

  • stumpless_destroy_entry has been deprecated in favor of the more
    descriptive and deliberate stumpless_destroy_entry_and_contents and
    stumpless_destroy_entry_only functions in order to avoid unintentional
    memory leaks and use-after-free mistakes.
  • stumpless_destroy_element has been deprecated in favor of the more
    descriptive and deliberate stumpless_destroy_element_and_contents and
    stumpless_destroy_element_only functions in order to avoid
    unintentional memory leaks and use-after-free mistakes.

Fixed

  • Memory leak in opening of network targets on systems using sys/socket.h
    for network services.

Removed

  • stumpless and vstumpless functions (use stump and vstump instead).
  • STUMPLESS_SEVERITY_WARN symbol.

v1.6.0

21 Jul 09:57
865a3b6
Compare
Choose a tag to compare

Added

  • A number of new functions for working with entries, elements, and params.
  • A rollup header, stumpless.hpp, for the C++ library to make use easier.
  • Logging functions that can be removed at compile time.

Fixed

  • Added missing DLL exports of C++ library in standard Visual Studio builds.
  • Local socket names are generated using mkstemp instead of using a static
    counter (issue #54).
  • The current target is not left pointing at an invalid target structure
    after the current target is closed
    (issue #52).