Beispiel #1
0
const char* gdnsd_logf_dname(const uint8_t* dname) {
    if(!dname)
        return generic_nullstr;

    char tmpbuf[1024];
    const unsigned len = gdnsd_dname_to_string(dname, tmpbuf);
    char* dnbuf = dmn_fmtbuf_alloc(len);
    memcpy(dnbuf, tmpbuf, len);
    return dnbuf;
}
Beispiel #2
0
const char* dmn_logf_anysin_noport(const dmn_anysin_t* asin) {
    char tmpbuf[INET6_ADDRSTRLEN];
    int name_err = dmn_anysin2str_noport(asin, tmpbuf);
    if(name_err)
        return gai_strerror(name_err); // This might be confusing...

    const unsigned copylen = strlen(tmpbuf) + 1;
    char* buf = dmn_fmtbuf_alloc(copylen);
    memcpy(buf, tmpbuf, copylen);
    return buf;
}
Beispiel #3
0
const char* dmn_logf_anysin(const dmn_anysin_t* asin) {
    char tmpbuf[DMN_ANYSIN_MAXSTR];
    int name_err = dmn_anysin2str(asin, tmpbuf);
    if(name_err)
        return gai_strerror(name_err); // This might be confusing...

    const unsigned copylen = strlen(tmpbuf) + 1;
    char* buf = dmn_fmtbuf_alloc(copylen);
    memcpy(buf, tmpbuf, copylen);

    return buf;
}
Beispiel #4
0
const char* dmn_strerror(const int errnum) {
    char* buf = dmn_fmtbuf_alloc(ERRNO_MAXLEN);

#ifdef STRERROR_R_CHAR_P
    // GNU-style
    buf = strerror_r(errnum, buf, ERRNO_MAXLEN);
#else
    // POSIX style
    if(strerror_r(errnum, buf, ERRNO_MAXLEN)) {
        if(errno == EINVAL)
            snprintf(buf, 256, "Invalid errno: %i", errnum);
        else
            dmn_log_fatal("strerror_r(,,256) failed");
    }
#endif

    return buf;
}