extern const struct sql_result driver_mysql_result;
extern const struct sql_result driver_mysql_error_result;
+static const char *mysql_prefix(struct mysql_db *db)
+{
+ return t_strdup_printf("mysql(%s)", db->host);
+}
+
static int driver_mysql_connect(struct sql_db *_db)
{
struct mysql_db *db = (struct mysql_db *)_db;
alarm(0);
if (failed) {
sql_db_set_state(&db->api, SQL_DB_STATE_DISCONNECTED);
- i_error("mysql: Connect failed to %s (%s): %s - "
+ i_error("%s: Connect failed to database (%s): %s - "
"waiting for %u seconds before retry",
- host != NULL ? host : unix_socket, db->dbname,
+ mysql_prefix(db), db->dbname,
mysql_error(db->mysql), db->api.connect_delay);
return -1;
} else {
- i_info("mysql: Connected to %s%s (%s)",
- host != NULL ? host : unix_socket,
- db->ssl_set ? " using SSL" : "", db->dbname);
+ i_info("%s: Connected to database %s%s", mysql_prefix(db),
+ db->dbname, db->ssl_set ? " using SSL" : "");
sql_db_set_state(&db->api, SQL_DB_STATE_IDLE);
return 1;
struct mysql_db *db = (struct mysql_db *)_db;
if (driver_mysql_do_query(db, query) < 0) {
- i_error("mysql: Query '%s' failed: %s",
- query, mysql_error(db->mysql));
+ i_error("%s: Query '%s' failed: %s",
+ mysql_prefix(db), query, mysql_error(db->mysql));
}
}
static void result_finish(struct pgsql_result *result);
+static const char *pgsql_prefix(struct pgsql_db *db)
+{
+ return t_strdup_printf("pgsql(%s)", db->host);
+}
+
static void driver_pgsql_set_state(struct pgsql_db *db, enum sql_db_state state)
{
i_assert(state == SQL_DB_STATE_BUSY || db->cur_result == NULL);
case PGRES_POLLING_OK:
break;
case PGRES_POLLING_FAILED:
- i_error("pgsql: Connect failed to %s: %s",
- PQdb(db->pg), last_error(db));
+ i_error("%s: Connect failed to database %s: %s",
+ pgsql_prefix(db), PQdb(db->pg), last_error(db));
driver_pgsql_close(db);
return;
}
}
if (io_dir == 0) {
- i_info("pgsql: Connected to %s", PQdb(db->pg));
+ i_info("%s: Connected to database %s",
+ pgsql_prefix(db), PQdb(db->pg));
if (db->to_connect != NULL)
timeout_remove(&db->to_connect);
driver_pgsql_set_state(db, SQL_DB_STATE_IDLE);
static void driver_pgsql_connect_timeout(struct pgsql_db *db)
{
- const char *dbname = PQdb(db->pg);
unsigned int secs = ioloop_time - db->api.last_connect_try;
- i_error("pgsql: Connect failed to %s: Timeout after %u seconds",
- dbname != NULL ? dbname : db->host, secs);
+ i_error("%s: Connect failed: Timeout after %u seconds",
+ pgsql_prefix(db), secs);
driver_pgsql_close(db);
}
i_assert(db->api.state == SQL_DB_STATE_DISCONNECTED);
db->pg = PQconnectStart(db->connect_string);
- if (db->pg == NULL)
- i_fatal("pgsql: PQconnectStart() failed (out of memory)");
+ if (db->pg == NULL) {
+ i_fatal("%s: PQconnectStart() failed (out of memory)",
+ pgsql_prefix(db));
+ }
if (PQstatus(db->pg) == CONNECTION_BAD) {
- i_error("pgsql: Connect failed to %s: %s",
- PQdb(db->pg), last_error(db));
+ i_error("%s: Connect failed to database %s: %s",
+ pgsql_prefix(db), PQdb(db->pg), last_error(db));
driver_pgsql_close(db);
return -1;
}
/* nonblocking connecting begins. */
if (PQsetnonblocking(db->pg, 1) < 0)
- i_error("pgsql: PQsetnonblocking() failed");
+ i_error("%s: PQsetnonblocking() failed", pgsql_prefix(db));
i_assert(db->to_connect == NULL);
db->to_connect = timeout_add(SQL_CONNECT_TIMEOUT_SECS * 1000,
driver_pgsql_connect_timeout, db);
driver_pgsql_stop_io(db);
- i_error("pgsql: Query timed out, aborting");
+ i_error("%s: Query timed out, aborting", pgsql_prefix(db));
result->timeout = TRUE;
result_finish(result);
}
{
struct pgsql_db *db = (struct pgsql_db *)_result->db;
- i_error("pgsql: sql_exec() failed: %s", last_error(db));
+ i_error("%s: sql_exec() failed: %s", pgsql_prefix(db), last_error(db));
}
static void driver_pgsql_exec(struct sql_db *db, const char *query)