1
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2008 Sun Microsystems, Inc.
4
* Copyright (C) 2008 Sun Microsystems
6
6
* This program is free software; you can redistribute it and/or modify
7
7
* it under the terms of the GNU General Public License as published by
27
#include <drizzled/definitions.h>
26
#include <drizzled/plugin/registry.h>
28
27
#include <drizzled/errmsg_print.h>
28
#include <drizzled/current_session.h>
29
29
#include <drizzled/plugin/error_message.h>
37
37
void sql_perror(const char *message)
40
char errmsg[STRERROR_MAX];
43
#ifdef STRERROR_R_CHAR_P
44
errmsg_ptr= strerror_r(errno, errmsg, sizeof(errmsg));
46
strerror_r(errno, errmsg, sizeof(errmsg));
50
errmsg_printf(error::ERROR, "%s: %s\n", message, errmsg);
54
// @todo Cap the size of message.
55
void sql_perror(const std::string &message)
57
static std::string empty;
58
sql_perror(message, empty);
61
// @todo Cap the size of message/extra.
62
void sql_perror(std::string message, const std::string &extra)
65
char errmsg[STRERROR_MAX];
68
#ifdef STRERROR_R_CHAR_P
69
errmsg_ptr= strerror_r(errno, errmsg, sizeof(errmsg));
71
strerror_r(errno, errmsg, sizeof(errmsg));
75
if (not extra.empty())
77
if (message.at(message.size()) != ' ')
85
errmsg_printf(error::ERROR, "%s: %s\n", message.c_str(), errmsg);
88
bool errmsg_printf (error::level_t priority, char const *format, ...)
39
// is stderr threadsafe?
40
errmsg_printf(ERRMSG_LVL_ERROR, "%s: %s", message, strerror(errno));
43
bool errmsg_printf (int priority, char const *format, ...)
92
47
va_start(args, format);
93
rv= plugin::ErrorMessage::vprintf(priority, format, args);
48
rv= plugin::ErrorMessage::vprintf(current_session, priority, format, args);