curb 0.8.4 → 0.8.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|