Exemple #1
0
void logger_perror(const char *format, ...) {
    begin_log_line(MC_ERROR);
    va_list ap;
    va_start(ap, format);

    char tmp[512];
    vmbuf_vsprintf(&log_buf, format, ap);
    vmbuf_sprintf(&log_buf, " (%s)", strerror_r(errno, tmp, 512));
    va_end(ap);
    end_log_line(STDERR_FILENO);
}
Exemple #2
0
void http_server_response_sprintf(const char *status, const char *content_type, const char *format, ...) {
    struct http_server_context *ctx = http_server_get_context();
    vmbuf_reset(&ctx->header);
    vmbuf_reset(&ctx->payload);
    http_server_header_start(status, content_type);
    va_list ap;
    va_start(ap, format);
    vmbuf_vsprintf(&ctx->payload, format, ap);
    va_end(ap);
    http_server_header_content_length();
    http_server_header_close();
}
Exemple #3
0
void logger_perror_at(const char *filename, unsigned int linenum, const char *format, ...) {
    begin_log_line(MC_ERROR);
    va_list ap;
    va_start(ap, format);

    vmbuf_sprintf(&log_buf, "[%s:%u]: ", filename, linenum);
    vmbuf_vsprintf(&log_buf, format, ap);
    char tmp[512];
    vmbuf_sprintf(&log_buf, " (%s)", strerror_r(errno, tmp, 512));
    va_end(ap);
    end_log_line(STDERR_FILENO);
}
Exemple #4
0
struct http_client_context *http_client_pool_post_request_init(struct http_client_pool *http_client_pool,
        struct in_addr addr, uint16_t port, const char *hostname, const char *format, ...) {
    struct http_client_context *cctx = http_client_pool_create_client(http_client_pool, addr, port, NULL);
    if (NULL == cctx)
        return NULL;
    vmbuf_strcpy(&cctx->request, "POST ");
    va_list ap;
    va_start(ap, format);
    vmbuf_vsprintf(&cctx->request, format, ap);
    va_end(ap);
    vmbuf_sprintf(&cctx->request, " HTTP/1.1\r\nHost: %s", hostname);
    return cctx;
}
Exemple #5
0
int http_client_pool_get_request(struct http_client_pool *http_client_pool, struct in_addr addr, uint16_t port, const char *hostname, const char *format, ...) {
    struct http_client_context *cctx = http_client_pool_create_client(http_client_pool, addr, port, NULL);
    if (NULL == cctx)
        return -1;
    vmbuf_strcpy(&cctx->request, "GET ");
    va_list ap;
    va_start(ap, format);
    vmbuf_vsprintf(&cctx->request, format, ap);
    va_end(ap);
    vmbuf_sprintf(&cctx->request, " HTTP/1.1\r\nHost: %s\r\n\r\n", hostname);
    if (0 > http_client_send_request(cctx)) {
        http_client_free(http_client_pool, cctx);
        return -1;
    }
    return 0;
}
Exemple #6
0
static int
http_client_pool_post_request2(
    struct http_client_pool *http_client_pool,
    struct in_addr addr, uint16_t port, const char *hostname,
    const char *data, size_t size_of_data, const char *format, ...) {

    struct http_client_context *cctx = http_client_pool_create_client2(http_client_pool, addr, port, hostname, NULL);
    if (NULL == cctx)
        return -1;
    vmbuf_reset(&cctx->request);
    vmbuf_strcpy(&cctx->request, "POST ");
    va_list ap;
    va_start(ap, format);
    vmbuf_vsprintf(&cctx->request, format, ap);
    va_end(ap);
    vmbuf_sprintf(&cctx->request, " HTTP/1.1\r\nHost: %s\r\nContent-Type: application/json\r\nContent-Length: %zu\r\n\r\n", hostname, size_of_data);
    vmbuf_memcpy(&cctx->request, data, size_of_data);
    vmbuf_chrcpy(&cctx->request, '\0');
    if (0 > http_client_send_request(cctx))
        return http_client_free(cctx), -1;
    return 0;
}
Exemple #7
0
void logger_vlog_func_at(int fd, const char *filename, unsigned int linenum, const char *funcname, const char *format, const char *msg_class, va_list ap) {
    begin_log_line(msg_class);
    vmbuf_sprintf(&log_buf, "[%s:%u] %s(): ", filename, linenum, funcname);
    vmbuf_vsprintf(&log_buf, format, ap);
    end_log_line(fd);
}
Exemple #8
0
void logger_vlog(int fd, const char *format, const char *msg_class, va_list ap) {
    begin_log_line(msg_class);
    vmbuf_vsprintf(&log_buf, format, ap);
    end_log_line(fd);
}