curb 0.8.4 → 0.8.5
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.
- data/ext/curb.c +13 -0
- data/ext/curb.h +3 -3
- data/ext/curb_easy.c +31 -0
- data/ext/extconf.rb +6 -0
- data/lib/curl.rb +1 -0
- data/lib/curl/easy.rb +2 -0
- data/tests/tc_curl_easy.rb +5 -0
- metadata +3 -10
- data/tests/bug_issue102.rb +0 -17
data/ext/curb.c
CHANGED
@@ -951,6 +951,19 @@ void Init_curb_core() {
|
|
951
951
|
CURB_DEFINE(CURLOPT_TELNETOPTIONS);
|
952
952
|
#endif
|
953
953
|
|
954
|
+
#if HAVE_CURLOPT_GSSAPI_DELEGATION
|
955
|
+
CURB_DEFINE(CURLOPT_GSSAPI_DELEGATION);
|
956
|
+
#endif
|
957
|
+
|
958
|
+
#if HAVE_CURLGSSAPI_DELEGATION_FLAG
|
959
|
+
CURB_DEFINE(CURLGSSAPI_DELEGATION_FLAG);
|
960
|
+
#endif
|
961
|
+
|
962
|
+
#if HAVE_CURLGSSAPI_DELEGATION_POLICY_FLAG
|
963
|
+
CURB_DEFINE(CURLGSSAPI_DELEGATION_POLICY_FLAG);
|
964
|
+
#endif
|
965
|
+
|
966
|
+
|
954
967
|
rb_define_const(mCurl, "HTTP_1_1", LONG2NUM(CURL_HTTP_VERSION_1_1));
|
955
968
|
rb_define_const(mCurl, "HTTP_1_0", LONG2NUM(CURL_HTTP_VERSION_1_0));
|
956
969
|
rb_define_const(mCurl, "HTTP_NONE", LONG2NUM(CURL_HTTP_VERSION_NONE));
|
data/ext/curb.h
CHANGED
@@ -20,11 +20,11 @@
|
|
20
20
|
#include "curb_macros.h"
|
21
21
|
|
22
22
|
// These should be managed from the Rake 'release' task.
|
23
|
-
#define CURB_VERSION "0.8.
|
24
|
-
#define CURB_VER_NUM
|
23
|
+
#define CURB_VERSION "0.8.5"
|
24
|
+
#define CURB_VER_NUM 805
|
25
25
|
#define CURB_VER_MAJ 0
|
26
26
|
#define CURB_VER_MIN 8
|
27
|
-
#define CURB_VER_MIC
|
27
|
+
#define CURB_VER_MIC 5
|
28
28
|
#define CURB_VER_PATCH 0
|
29
29
|
|
30
30
|
|
data/ext/curb_easy.c
CHANGED
@@ -2578,6 +2578,29 @@ static VALUE ruby_curl_easy_connect_time_get(VALUE self) {
|
|
2578
2578
|
return rb_float_new(time);
|
2579
2579
|
}
|
2580
2580
|
|
2581
|
+
/*
|
2582
|
+
* call-seq:
|
2583
|
+
* easy.app_connect_time => float
|
2584
|
+
*
|
2585
|
+
* Retrieve the time, in seconds, it took from the start until the SSL/SSH
|
2586
|
+
* connect/handshake to the remote host was completed. This time is most often
|
2587
|
+
* very near to the pre transfer time, except for cases such as HTTP
|
2588
|
+
* pippelining where the pretransfer time can be delayed due to waits in line
|
2589
|
+
* for the pipeline and more.
|
2590
|
+
*/
|
2591
|
+
#if defined(HAVE_CURLINFO_APPCONNECT_TIME)
|
2592
|
+
static VALUE ruby_curl_easy_app_connect_time_get(VALUE self) {
|
2593
|
+
ruby_curl_easy *rbce;
|
2594
|
+
double time;
|
2595
|
+
|
2596
|
+
Data_Get_Struct(self, ruby_curl_easy, rbce);
|
2597
|
+
curl_easy_getinfo(rbce->curl, CURLINFO_APPCONNECT_TIME, &time);
|
2598
|
+
|
2599
|
+
return rb_float_new(time);
|
2600
|
+
}
|
2601
|
+
#endif
|
2602
|
+
|
2603
|
+
|
2581
2604
|
/*
|
2582
2605
|
* call-seq:
|
2583
2606
|
* easy.pre_transfer_time => float
|
@@ -3112,6 +3135,11 @@ static VALUE ruby_curl_easy_set_opt(VALUE self, VALUE opt, VALUE val) {
|
|
3112
3135
|
case CURLOPT_FAILONERROR: {
|
3113
3136
|
curl_easy_setopt(rbce->curl, CURLOPT_FAILONERROR, FIX2LONG(val));
|
3114
3137
|
} break;
|
3138
|
+
#if HAVE_CURLOPT_GSSAPI_DELEGATION
|
3139
|
+
case CURLOPT_GSSAPI_DELEGATION: {
|
3140
|
+
curl_easy_setopt(rbce->curl, CURLOPT_GSSAPI_DELEGATION, FIX2LONG(val));
|
3141
|
+
} break;
|
3142
|
+
#endif
|
3115
3143
|
default:
|
3116
3144
|
break;
|
3117
3145
|
}
|
@@ -3364,6 +3392,9 @@ void init_curb_easy() {
|
|
3364
3392
|
rb_define_method(cCurlEasy, "total_time", ruby_curl_easy_total_time_get, 0);
|
3365
3393
|
rb_define_method(cCurlEasy, "name_lookup_time", ruby_curl_easy_name_lookup_time_get, 0);
|
3366
3394
|
rb_define_method(cCurlEasy, "connect_time", ruby_curl_easy_connect_time_get, 0);
|
3395
|
+
#if defined(HAVE_CURLINFO_APPCONNECT_TIME)
|
3396
|
+
rb_define_method(cCurlEasy, "app_connect_time", ruby_curl_easy_app_connect_time_get, 0);
|
3397
|
+
#endif
|
3367
3398
|
rb_define_method(cCurlEasy, "pre_transfer_time", ruby_curl_easy_pre_transfer_time_get, 0);
|
3368
3399
|
rb_define_method(cCurlEasy, "start_transfer_time", ruby_curl_easy_start_transfer_time_get, 0);
|
3369
3400
|
rb_define_method(cCurlEasy, "redirect_time", ruby_curl_easy_redirect_time_get, 0);
|
data/ext/extconf.rb
CHANGED
@@ -59,6 +59,7 @@ def have_constant(name)
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
+
have_constant "curlinfo_appconnect_time"
|
62
63
|
have_constant "curlinfo_redirect_time"
|
63
64
|
have_constant "curlinfo_response_code"
|
64
65
|
have_constant "curlinfo_filetime"
|
@@ -351,6 +352,11 @@ have_constant "curle_not_built_in"
|
|
351
352
|
|
352
353
|
have_constant "curle_obsolete" # removed in 7.24 ?
|
353
354
|
|
355
|
+
# gssapi/spnego delegation related constants
|
356
|
+
have_constant "curlopt_gssapi_delegation"
|
357
|
+
have_constant "curlgssapi_delegation_policy_flag"
|
358
|
+
have_constant "curlgssapi_delegation_flag"
|
359
|
+
|
354
360
|
if try_compile('int main() { return 0; }','-Wall')
|
355
361
|
$CFLAGS << ' -Wall'
|
356
362
|
end
|
data/lib/curl.rb
CHANGED
data/lib/curl/easy.rb
CHANGED
data/tests/tc_curl_easy.rb
CHANGED
@@ -11,7 +11,9 @@ class TestCurbCurlEasy < Test::Unit::TestCase
|
|
11
11
|
5.times do
|
12
12
|
c = Curl.get($TEST_URL)
|
13
13
|
assert_match(/^# DO NOT REMOVE THIS COMMENT/, c.body_str)
|
14
|
+
assert_match(/^# DO NOT REMOVE THIS COMMENT/, c.body)
|
14
15
|
assert_equal "", c.header_str
|
16
|
+
assert_equal "", c.head
|
15
17
|
end
|
16
18
|
end
|
17
19
|
end
|
@@ -22,6 +24,7 @@ class TestCurbCurlEasy < Test::Unit::TestCase
|
|
22
24
|
def test_class_perform_01
|
23
25
|
assert_instance_of Curl::Easy, c = Curl::Easy.perform($TEST_URL)
|
24
26
|
assert_match(/^# DO NOT REMOVE THIS COMMENT/, c.body_str)
|
27
|
+
assert_match(/^# DO NOT REMOVE THIS COMMENT/, c.body)
|
25
28
|
assert_equal "", c.header_str
|
26
29
|
end
|
27
30
|
|
@@ -719,7 +722,9 @@ class TestCurbCurlEasy < Test::Unit::TestCase
|
|
719
722
|
assert curl.http_put("message")
|
720
723
|
assert_match /^PUT/, curl.body_str
|
721
724
|
assert_match /message$/, curl.body_str
|
725
|
+
assert_match /message$/, curl.body
|
722
726
|
assert_match /application\/json/, curl.header_str
|
727
|
+
assert_match /application\/json/, curl.head
|
723
728
|
end
|
724
729
|
|
725
730
|
def test_put_data
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: curb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-05
|
13
|
+
date: 2013-06-05 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: Curb (probably CUrl-RuBy or something) provides Ruby-language bindings
|
16
16
|
for the libcurl(3), a fully-featured client-side URL transfer library. cURL and
|
@@ -51,7 +51,6 @@ files:
|
|
51
51
|
- tests/bug_curb_easy_blocks_ruby_threads.rb
|
52
52
|
- tests/bug_curb_easy_post_with_string_no_content_length_header.rb
|
53
53
|
- tests/bug_instance_post_differs_from_class_post.rb
|
54
|
-
- tests/bug_issue102.rb
|
55
54
|
- tests/bug_multi_segfault.rb
|
56
55
|
- tests/bug_postfields_crash.rb
|
57
56
|
- tests/bug_postfields_crash2.rb
|
@@ -85,18 +84,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
85
84
|
- - ! '>='
|
86
85
|
- !ruby/object:Gem::Version
|
87
86
|
version: '0'
|
88
|
-
segments:
|
89
|
-
- 0
|
90
|
-
hash: -243569426931689339
|
91
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
88
|
none: false
|
93
89
|
requirements:
|
94
90
|
- - ! '>='
|
95
91
|
- !ruby/object:Gem::Version
|
96
92
|
version: '0'
|
97
|
-
segments:
|
98
|
-
- 0
|
99
|
-
hash: -243569426931689339
|
100
93
|
requirements: []
|
101
94
|
rubyforge_project: curb
|
102
95
|
rubygems_version: 1.8.24
|
@@ -110,7 +103,6 @@ test_files:
|
|
110
103
|
- tests/bug_curb_easy_blocks_ruby_threads.rb
|
111
104
|
- tests/bug_curb_easy_post_with_string_no_content_length_header.rb
|
112
105
|
- tests/bug_instance_post_differs_from_class_post.rb
|
113
|
-
- tests/bug_issue102.rb
|
114
106
|
- tests/bug_multi_segfault.rb
|
115
107
|
- tests/bug_postfields_crash.rb
|
116
108
|
- tests/bug_postfields_crash2.rb
|
@@ -129,3 +121,4 @@ test_files:
|
|
129
121
|
- tests/timeout.rb
|
130
122
|
- tests/timeout_server.rb
|
131
123
|
- tests/unittests.rb
|
124
|
+
has_rdoc: true
|
data/tests/bug_issue102.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
-
|
3
|
-
class BugIssue102 < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def test_interface
|
6
|
-
test = "https://api.twitter.com/1/users/show.json?screen_name=TwitterAPI&include_entities=true"
|
7
|
-
ip = "192.168.1.61"
|
8
|
-
|
9
|
-
c = Curl::Easy.new do |curl|
|
10
|
-
curl.url = test
|
11
|
-
curl.interface = ip
|
12
|
-
end
|
13
|
-
|
14
|
-
c.perform
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|