Skip to content

Commit 37fc49d

Browse files
committed
Move _has_vio_is_connected? to info hash
1 parent 53ce628 commit 37fc49d

File tree

2 files changed

+17
-20
lines changed

2 files changed

+17
-20
lines changed

ext/mysql2/client.c

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
VALUE cMysql2Client;
1818
extern VALUE mMysql2, cMysql2Error, cMysql2TimeoutError;
19-
static VALUE sym_id, sym_version, sym_header_version, sym_async, sym_symbolize_keys, sym_as, sym_array, sym_stream;
19+
static VALUE sym_id, sym_version, sym_header_version, sym_async, sym_symbolize_keys, sym_as, sym_array, sym_stream, sym_has_vio_is_connected;
2020
static VALUE sym_no_good_index_used, sym_no_index_used, sym_query_was_slow;
2121
static ID intern_brackets, intern_merge, intern_merge_bang, intern_new_with_args;
2222

@@ -953,6 +953,11 @@ static VALUE _mysql_client_options(VALUE self, int opt, VALUE value) {
953953
*/
954954
static VALUE rb_mysql_client_info(RB_MYSQL_UNUSED VALUE klass) {
955955
VALUE version_info, version, header_version;
956+
#if defined(HAVE_VIO_IS_CONNECTED)
957+
VALUE has_vio_is_connected = Qtrue;
958+
#else
959+
VALUE has_vio_is_connected = Qfalse;
960+
#endif
956961
version_info = rb_hash_new();
957962

958963
version = rb_str_new2(mysql_get_client_info());
@@ -964,6 +969,7 @@ static VALUE rb_mysql_client_info(RB_MYSQL_UNUSED VALUE klass) {
964969
rb_hash_aset(version_info, sym_id, LONG2NUM(mysql_get_client_version()));
965970
rb_hash_aset(version_info, sym_version, version);
966971
rb_hash_aset(version_info, sym_header_version, header_version);
972+
rb_hash_aset(version_info, sym_has_vio_is_connected, has_vio_is_connected);
967973

968974
return version_info;
969975
}
@@ -1372,14 +1378,6 @@ static VALUE initialize_ext(VALUE self) {
13721378
return self;
13731379
}
13741380

1375-
static VALUE rb_vio_is_connected(VALUE self) {
1376-
#if defined(HAVE_VIO_IS_CONNECTED)
1377-
return Qtrue;
1378-
#else
1379-
return Qfalse;
1380-
#endif
1381-
}
1382-
13831381
/* call-seq: client.prepare # => Mysql2::Statement
13841382
*
13851383
* Create a new prepared statement.
@@ -1469,16 +1467,15 @@ void init_mysql2_client() {
14691467
rb_define_private_method(cMysql2Client, "connect", rb_mysql_connect, 8);
14701468
rb_define_private_method(cMysql2Client, "_query", rb_mysql_query, 2);
14711469

1472-
rb_define_private_method(cMysql2Client, "_has_vio_is_connected?", rb_vio_is_connected, 0);
1473-
1474-
sym_id = ID2SYM(rb_intern("id"));
1475-
sym_version = ID2SYM(rb_intern("version"));
1476-
sym_header_version = ID2SYM(rb_intern("header_version"));
1477-
sym_async = ID2SYM(rb_intern("async"));
1478-
sym_symbolize_keys = ID2SYM(rb_intern("symbolize_keys"));
1479-
sym_as = ID2SYM(rb_intern("as"));
1480-
sym_array = ID2SYM(rb_intern("array"));
1481-
sym_stream = ID2SYM(rb_intern("stream"));
1470+
sym_id = ID2SYM(rb_intern("id"));
1471+
sym_version = ID2SYM(rb_intern("version"));
1472+
sym_header_version = ID2SYM(rb_intern("header_version"));
1473+
sym_async = ID2SYM(rb_intern("async"));
1474+
sym_symbolize_keys = ID2SYM(rb_intern("symbolize_keys"));
1475+
sym_as = ID2SYM(rb_intern("as"));
1476+
sym_array = ID2SYM(rb_intern("array"));
1477+
sym_stream = ID2SYM(rb_intern("stream"));
1478+
sym_has_vio_is_connected = ID2SYM(rb_intern("has_vio_is_connected"));
14821479

14831480
sym_no_good_index_used = ID2SYM(rb_intern("no_good_index_used"));
14841481
sym_no_index_used = ID2SYM(rb_intern("no_index_used"));

spec/mysql2/client_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ def run_gc
344344
end
345345

346346
it "should detect a closed connection" do
347-
skip "libmysqlclient does not export vio_is_connected()" unless @client.send(:_has_vio_is_connected?)
347+
skip "libmysqlclient does not export vio_is_connected()" unless Mysql2::Client.info[:has_vio_is_connected]
348348
connection_id = @client.thread_id
349349
Thread.new do
350350
sleep(0.1)

0 commit comments

Comments
 (0)