tiny_tds 0.6.2 → 0.6.3.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/CHANGELOG +18 -5
- data/Gemfile +0 -1
- data/README.md +25 -14
- data/Rakefile +5 -8
- data/ext/tiny_tds/client.c +2 -2
- data/ext/tiny_tds/result.c +3 -35
- data/lib/tiny_tds/client.rb +15 -17
- data/lib/tiny_tds/version.rb +2 -2
- data/tasks/ports.rake +6 -12
- data/test/client_test.rb +23 -23
- data/test/result_test.rb +80 -84
- data/test/schema/sqlserver_2014.sql +138 -0
- data/test/schema_test.rb +58 -59
- data/test/test_helper.rb +54 -45
- data/test/thread_test.rb +4 -4
- metadata +47 -45
- data/ext/patch/sspi_w_kerberos.diff +0 -42
data/test/thread_test.rb
CHANGED
@@ -63,8 +63,8 @@ class ThreadTest < TinyTds::TestCase
|
|
63
63
|
thread = Thread.new do
|
64
64
|
@pool.with do |client|
|
65
65
|
begin
|
66
|
-
|
67
|
-
result = client.execute "waitfor delay '00:00
|
66
|
+
delay = ('0' + (connection_timeout + 2).to_s)[-2,2] # Two seconds longer than default.
|
67
|
+
result = client.execute "waitfor delay '00:00:#{delay}'; select db_name()"
|
68
68
|
result.each { |r| puts r }
|
69
69
|
rescue TinyTds::Error => e
|
70
70
|
if e.message == 'Adaptive Server connection timed out'
|
@@ -75,8 +75,8 @@ class ThreadTest < TinyTds::TestCase
|
|
75
75
|
end
|
76
76
|
|
77
77
|
timer_thread = Thread.new do
|
78
|
-
# Sleep until after the timeout
|
79
|
-
sleep(
|
78
|
+
# Sleep until after the timeout should have been reached
|
79
|
+
sleep(connection_timeout+2)
|
80
80
|
if not exception
|
81
81
|
thread.kill
|
82
82
|
raise "Timeout passed without query timing out"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tiny_tds
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ken Collins
|
@@ -10,92 +10,78 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-05-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - ~>
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: '10.4'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- - ~>
|
26
|
+
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version:
|
28
|
+
version: '10.4'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: mini_portile
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - '='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.
|
35
|
+
version: 0.6.2
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - '='
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.
|
42
|
+
version: 0.6.2
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rake-compiler
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - '='
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.9.
|
49
|
+
version: 0.9.5
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - '='
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.9.
|
57
|
-
- !ruby/object:Gem::Dependency
|
58
|
-
name: activesupport
|
59
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - ~>
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '3.0'
|
64
|
-
type: :development
|
65
|
-
prerelease: false
|
66
|
-
version_requirements: !ruby/object:Gem::Requirement
|
67
|
-
requirements:
|
68
|
-
- - ~>
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: '3.0'
|
56
|
+
version: 0.9.5
|
71
57
|
- !ruby/object:Gem::Dependency
|
72
58
|
name: minitest
|
73
59
|
requirement: !ruby/object:Gem::Requirement
|
74
60
|
requirements:
|
75
|
-
- -
|
61
|
+
- - "~>"
|
76
62
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
63
|
+
version: '5.6'
|
78
64
|
type: :development
|
79
65
|
prerelease: false
|
80
66
|
version_requirements: !ruby/object:Gem::Requirement
|
81
67
|
requirements:
|
82
|
-
- -
|
68
|
+
- - "~>"
|
83
69
|
- !ruby/object:Gem::Version
|
84
|
-
version: '
|
70
|
+
version: '5.6'
|
85
71
|
- !ruby/object:Gem::Dependency
|
86
72
|
name: connection_pool
|
87
73
|
requirement: !ruby/object:Gem::Requirement
|
88
74
|
requirements:
|
89
|
-
- - ~>
|
75
|
+
- - "~>"
|
90
76
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
77
|
+
version: '2.2'
|
92
78
|
type: :development
|
93
79
|
prerelease: false
|
94
80
|
version_requirements: !ruby/object:Gem::Requirement
|
95
81
|
requirements:
|
96
|
-
- - ~>
|
82
|
+
- - "~>"
|
97
83
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
84
|
+
version: '2.2'
|
99
85
|
description: TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library.
|
100
86
|
Developed for the ActiveRecord SQL Server adapter.
|
101
87
|
email:
|
@@ -106,7 +92,7 @@ extensions:
|
|
106
92
|
- ext/tiny_tds/extconf.rb
|
107
93
|
extra_rdoc_files: []
|
108
94
|
files:
|
109
|
-
- .gitignore
|
95
|
+
- ".gitignore"
|
110
96
|
- CHANGELOG
|
111
97
|
- Gemfile
|
112
98
|
- MIT-LICENSE
|
@@ -115,7 +101,6 @@ files:
|
|
115
101
|
- compile/rake-compiler-dev-box.patch
|
116
102
|
- ext/patch/Makefile.in.diff
|
117
103
|
- ext/patch/dblib-30-char-username.diff
|
118
|
-
- ext/patch/sspi_w_kerberos.diff
|
119
104
|
- ext/tiny_tds/client.c
|
120
105
|
- ext/tiny_tds/client.h
|
121
106
|
- ext/tiny_tds/extconf.rb
|
@@ -138,33 +123,50 @@ files:
|
|
138
123
|
- test/schema/sqlserver_2000.sql
|
139
124
|
- test/schema/sqlserver_2005.sql
|
140
125
|
- test/schema/sqlserver_2008.sql
|
126
|
+
- test/schema/sqlserver_2014.sql
|
141
127
|
- test/schema/sqlserver_azure.sql
|
142
128
|
- test/schema/sybase_ase.sql
|
143
129
|
- test/schema_test.rb
|
144
130
|
- test/test_helper.rb
|
145
131
|
- test/thread_test.rb
|
146
132
|
homepage: http://github.com/rails-sqlserver/tiny_tds
|
147
|
-
licenses:
|
133
|
+
licenses:
|
134
|
+
- MIT
|
148
135
|
metadata: {}
|
149
136
|
post_install_message:
|
150
137
|
rdoc_options:
|
151
|
-
- --charset=UTF-8
|
138
|
+
- "--charset=UTF-8"
|
152
139
|
require_paths:
|
153
140
|
- lib
|
154
141
|
required_ruby_version: !ruby/object:Gem::Requirement
|
155
142
|
requirements:
|
156
|
-
- -
|
143
|
+
- - ">="
|
157
144
|
- !ruby/object:Gem::Version
|
158
145
|
version: '0'
|
159
146
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
147
|
requirements:
|
161
|
-
- -
|
148
|
+
- - ">"
|
162
149
|
- !ruby/object:Gem::Version
|
163
|
-
version:
|
150
|
+
version: 1.3.1
|
164
151
|
requirements: []
|
165
152
|
rubyforge_project:
|
166
|
-
rubygems_version: 2.
|
153
|
+
rubygems_version: 2.4.6
|
167
154
|
signing_key:
|
168
155
|
specification_version: 4
|
169
156
|
summary: TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library.
|
170
|
-
test_files:
|
157
|
+
test_files:
|
158
|
+
- test/benchmark/query.rb
|
159
|
+
- test/benchmark/query_odbc.rb
|
160
|
+
- test/benchmark/query_tinytds.rb
|
161
|
+
- test/client_test.rb
|
162
|
+
- test/result_test.rb
|
163
|
+
- test/schema/1px.gif
|
164
|
+
- test/schema/sqlserver_2000.sql
|
165
|
+
- test/schema/sqlserver_2005.sql
|
166
|
+
- test/schema/sqlserver_2008.sql
|
167
|
+
- test/schema/sqlserver_2014.sql
|
168
|
+
- test/schema/sqlserver_azure.sql
|
169
|
+
- test/schema/sybase_ase.sql
|
170
|
+
- test/schema_test.rb
|
171
|
+
- test/test_helper.rb
|
172
|
+
- test/thread_test.rb
|
@@ -1,42 +0,0 @@
|
|
1
|
-
--- a/src/tds/sspi.c
|
2
|
-
+++ b/src/tds/sspi.c
|
3
|
-
@@ -172,8 +172,19 @@ tds_sspi_handle_next(TDSSOCKET * tds, struct tds_authentication * tds_auth, size
|
4
|
-
|
5
|
-
free(auth_buf);
|
6
|
-
|
7
|
-
- if (status != SEC_E_OK)
|
8
|
-
+ switch (status) {
|
9
|
-
+ case SEC_I_COMPLETE_AND_CONTINUE:
|
10
|
-
+ sec_fn->CompleteAuthToken(&auth->cred_ctx, &out_desc);
|
11
|
-
+ break;
|
12
|
-
+
|
13
|
-
+ case SEC_I_CONTINUE_NEEDED:
|
14
|
-
+ case SEC_E_OK:
|
15
|
-
+ break;
|
16
|
-
+
|
17
|
-
+ default:
|
18
|
-
return TDS_FAIL;
|
19
|
-
+ }
|
20
|
-
+
|
21
|
-
if (out_buf.cbBuffer == 0)
|
22
|
-
return TDS_SUCCEED;
|
23
|
-
|
24
|
-
@@ -275,9 +286,16 @@ tds_sspi_get_auth(TDSSOCKET * tds)
|
25
|
-
&auth->cred_ctx, &desc,
|
26
|
-
&attrs, &ts);
|
27
|
-
|
28
|
-
- if (status == SEC_I_COMPLETE_AND_CONTINUE || status == SEC_I_CONTINUE_NEEDED) {
|
29
|
-
+ switch (status) {
|
30
|
-
+ case SEC_I_COMPLETE_AND_CONTINUE:
|
31
|
-
sec_fn->CompleteAuthToken(&auth->cred_ctx, &desc);
|
32
|
-
- } else if(status != SEC_E_OK) {
|
33
|
-
+ break;
|
34
|
-
+
|
35
|
-
+ case SEC_I_CONTINUE_NEEDED:
|
36
|
-
+ case SEC_E_OK:
|
37
|
-
+ break;
|
38
|
-
+
|
39
|
-
+ default:
|
40
|
-
free(auth->sname);
|
41
|
-
free(auth->tds_auth.packet);
|
42
|
-
sec_fn->FreeCredentialsHandle(&auth->cred);
|