From 8b8462006a86c026ec83664bce59b2e6589e5807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Wed, 5 Nov 1997 15:50:00 +0100 Subject: [PATCH] Added more checks for the case of PIKE_MYSQL->socket being NULL. Rev: src/modules/Mysql/mysql.c:1.9 --- src/modules/Mysql/mysql.c | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/src/modules/Mysql/mysql.c b/src/modules/Mysql/mysql.c index d8517c09f8..4917a75f39 100644 --- a/src/modules/Mysql/mysql.c +++ b/src/modules/Mysql/mysql.c @@ -1,5 +1,5 @@ /* - * $Id: mysql.c,v 1.8 1997/11/03 22:02:50 grubba Exp $ + * $Id: mysql.c,v 1.9 1997/11/05 14:50:00 grubba Exp $ * * SQL database functionality for Pike * @@ -73,7 +73,7 @@ typedef struct dynamic_buffer_s dynamic_buffer; * Globals */ -RCSID("$Id: mysql.c,v 1.8 1997/11/03 22:02:50 grubba Exp $"); +RCSID("$Id: mysql.c,v 1.9 1997/11/05 14:50:00 grubba Exp $"); struct program *mysql_program = NULL; @@ -241,6 +241,9 @@ static void f_create(INT32 args) /* int affected_rows() */ static void f_affected_rows(INT32 args) { + if (!PIKE_MYSQL->socket) { + pike_mysql_reconnect(); + } pop_n_elems(args); push_int(mysql_affected_rows(PIKE_MYSQL->socket)); } @@ -248,6 +251,9 @@ static void f_affected_rows(INT32 args) /* int insert_id() */ static void f_insert_id(INT32 args) { + if (!PIKE_MYSQL->socket) { + pike_mysql_reconnect(); + } pop_n_elems(args); push_int(mysql_insert_id(PIKE_MYSQL->socket)); } @@ -255,9 +261,16 @@ static void f_insert_id(INT32 args) /* int|string error() */ static void f_error(INT32 args) { - char *error_msg = mysql_error(PIKE_MYSQL->socket); + char *error_msg; + + if (!PIKE_MYSQL->socket) { + pike_mysql_reconnect(); + } + + error_msg = mysql_error(PIKE_MYSQL->socket); pop_n_elems(args); + if (error_msg && *error_msg) { push_text(error_msg); } else { @@ -559,6 +572,11 @@ static void f_statistics(INT32 args) MYSQL *socket = PIKE_MYSQL->socket; char *stats; + if (!socket) { + pike_mysql_reconnect(); + socket = PIKE_MYSQL->socket; + } + pop_n_elems(args); THREADS_ALLOW(); @@ -576,6 +594,11 @@ static void f_server_info(INT32 args) MYSQL *socket = PIKE_MYSQL->socket; char *info; + if (!socket) { + pike_mysql_reconnect(); + socket = PIKE_MYSQL->socket(); + } + pop_n_elems(args); push_text("mysql/"); @@ -593,6 +616,10 @@ static void f_server_info(INT32 args) /* string host_info() */ static void f_host_info(INT32 args) { + if (!PIKE_MYSQL->socket) { + pike_mysql_reconnect(); + } + pop_n_elems(args); push_text(mysql_get_host_info(PIKE_MYSQL->socket)); @@ -601,6 +628,10 @@ static void f_host_info(INT32 args) /* int protocol_info() */ static void f_protocol_info(INT32 args) { + if (!PIKE_MYSQL->socket) { + pike_mysql_reconnect(); + } + pop_n_elems(args); push_int(mysql_get_proto_info(PIKE_MYSQL->socket)); -- GitLab