module Journald::Native

Constants

IS_DUMMY
VERSION

Public Class Methods

dummy?() click to toggle source
static VALUE jdl_native_is_dummy()
{
    return JOURNALD_NATIVE_SD_JOURNAL_DUMMY ? Qtrue : Qfalse;
}
perror(p1)
Alias for: sd_journal_perror
print(p1, p2)
Alias for: sd_journal_print
sd_journal_perror(p1) click to toggle source
static VALUE jdl_native_perror(VALUE v_self, VALUE v_message)
{
    char* message = StringValueCStr(v_message);
    int   result = sd_journal_perror(message);

    return INT2NUM(result);
}
Also aliased as: perror
sd_journal_print(p1, p2) click to toggle source
static VALUE jdl_native_print(VALUE v_self, VALUE v_priority, VALUE v_message)
{
    int   priority = NUM2INT(v_priority);
    char* message  = StringValueCStr(v_message);
    int   result   = sd_journal_print(priority, "%s", message);

    return INT2NUM(result);
}
Also aliased as: print
sd_journal_send(*args) click to toggle source
static VALUE jdl_native_send(int argc, VALUE* argv, VALUE self)
{
    /* first check everything is a string / convertable to string */
    for (int i = 0; i < argc; i++) {
        StringValue(argv[i]); /* you may get a ruby exception here */
    }

    /* allocate memory after all checks to avoid possible memory leak */
    iovec_t* msgs = xcalloc(argc, sizeof(iovec_t));

    for (int i = 0; i < argc; i++) {
        VALUE v = argv[i];
        msgs[i].iov_base = RSTRING_PTR(v);
        msgs[i].iov_len  = RSTRING_LEN(v);
    }

    int result = sd_journal_sendv(msgs, argc);

    xfree(msgs);

    return INT2NUM(result);
}
Also aliased as: send
send(*args)
Alias for: sd_journal_send