curb 0.7.17 → 0.7.18
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.h +3 -3
 - data/ext/curb_easy.c +2 -2
 - data/ext/curb_errors.c +2 -0
 - data/ext/extconf.rb +2 -0
 - data/tests/tc_curl_download.rb +4 -4
 - data/tests/tc_curl_easy.rb +14 -3
 - metadata +26 -42
 
    
        data/ext/curb.h
    CHANGED
    
    | 
         @@ -20,12 +20,12 @@ 
     | 
|
| 
       20 
20 
     | 
    
         
             
            #include "curb_macros.h"
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
            // These should be managed from the Rake 'release' task.
         
     | 
| 
       23 
     | 
    
         
            -
            #define CURB_VERSION   "0.7. 
     | 
| 
       24 
     | 
    
         
            -
            #define CURB_VER_NUM    
     | 
| 
      
 23 
     | 
    
         
            +
            #define CURB_VERSION   "0.7.18"
         
     | 
| 
      
 24 
     | 
    
         
            +
            #define CURB_VER_NUM   718
         
     | 
| 
       25 
25 
     | 
    
         
             
            #define CURB_VER_MAJ   0
         
     | 
| 
       26 
26 
     | 
    
         
             
            #define CURB_VER_MIN   7
         
     | 
| 
       27 
27 
     | 
    
         
             
            #define CURB_VER_MIC   1
         
     | 
| 
       28 
     | 
    
         
            -
            #define CURB_VER_PATCH  
     | 
| 
      
 28 
     | 
    
         
            +
            #define CURB_VER_PATCH 8
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
            // Maybe not yet defined in Ruby
         
     | 
    
        data/ext/curb_easy.c
    CHANGED
    
    | 
         @@ -54,7 +54,7 @@ static size_t read_data_handler(void *ptr, 
     | 
|
| 
       54 
54 
     | 
    
         
             
                /* copy read_bytes from stream into ptr */
         
     | 
| 
       55 
55 
     | 
    
         
             
                VALUE str = rb_funcall(stream, rb_intern("read"), 1, rb_int_new(read_bytes) );
         
     | 
| 
       56 
56 
     | 
    
         
             
                if( str != Qnil ) {
         
     | 
| 
       57 
     | 
    
         
            -
                  memcpy(ptr,  
     | 
| 
      
 57 
     | 
    
         
            +
                  memcpy(ptr, RSTRING_PTR(str), RSTRING_LEN(str));
         
     | 
| 
       58 
58 
     | 
    
         
             
                  return RSTRING_LEN(str);
         
     | 
| 
       59 
59 
     | 
    
         
             
                }
         
     | 
| 
       60 
60 
     | 
    
         
             
                else {
         
     | 
| 
         @@ -71,7 +71,7 @@ static size_t read_data_handler(void *ptr, 
     | 
|
| 
       71 
71 
     | 
    
         
             
                str = rb_funcall(stream, rb_intern("to_s"), 0);
         
     | 
| 
       72 
72 
     | 
    
         
             
                len = RSTRING_LEN(str);
         
     | 
| 
       73 
73 
     | 
    
         
             
                remaining = len - rbcu->offset;
         
     | 
| 
       74 
     | 
    
         
            -
                str_ptr =  
     | 
| 
      
 74 
     | 
    
         
            +
                str_ptr = RSTRING_PTR(str);
         
     | 
| 
       75 
75 
     | 
    
         | 
| 
       76 
76 
     | 
    
         
             
                if( remaining < read_bytes ) {
         
     | 
| 
       77 
77 
     | 
    
         
             
                  if( remaining > 0 ) {
         
     | 
    
        data/ext/curb_errors.c
    CHANGED
    
    | 
         @@ -286,9 +286,11 @@ VALUE rb_curl_easy_error(CURLcode code) { 
     | 
|
| 
       286 
286 
     | 
    
         
             
                case CURLE_TELNET_OPTION_SYNTAX:    /* 49 - Malformed telnet option */
         
     | 
| 
       287 
287 
     | 
    
         
             
                  exclz = eCurlErrTelnetBadOptionSyntax;
         
     | 
| 
       288 
288 
     | 
    
         
             
                  break;
         
     | 
| 
      
 289 
     | 
    
         
            +
            #ifdef HAVE_CURLE_OBSOLETE
         
     | 
| 
       289 
290 
     | 
    
         
             
                case CURLE_OBSOLETE:                /* 50 - NOT USED */
         
     | 
| 
       290 
291 
     | 
    
         
             
                  exclz = eCurlErrObsolete;
         
     | 
| 
       291 
292 
     | 
    
         
             
                  break;
         
     | 
| 
      
 293 
     | 
    
         
            +
            #endif
         
     | 
| 
       292 
294 
     | 
    
         
             
                case CURLE_SSL_PEER_CERTIFICATE:    /* 51 - peer's certificate wasn't ok */
         
     | 
| 
       293 
295 
     | 
    
         
             
                  exclz = eCurlErrSSLPeerCertificate;
         
     | 
| 
       294 
296 
     | 
    
         
             
                  break;
         
     | 
    
        data/ext/extconf.rb
    CHANGED
    
    | 
         @@ -346,6 +346,8 @@ have_constant "curlopt_telnetoptions" 
     | 
|
| 
       346 
346 
     | 
    
         
             
            # was obsoleted in August 2007 for 7.17.0, reused in April 2011 for 7.21.5
         
     | 
| 
       347 
347 
     | 
    
         
             
            have_constant "curle_not_built_in"
         
     | 
| 
       348 
348 
     | 
    
         | 
| 
      
 349 
     | 
    
         
            +
            have_constant "curle_obsolete" # removed in 7.24 ?
         
     | 
| 
      
 350 
     | 
    
         
            +
             
     | 
| 
       349 
351 
     | 
    
         
             
            if try_compile('int main() { return 0; }','-Wall')
         
     | 
| 
       350 
352 
     | 
    
         
             
              $CFLAGS << ' -Wall'
         
     | 
| 
       351 
353 
     | 
    
         
             
            end
         
     | 
    
        data/tests/tc_curl_download.rb
    CHANGED
    
    | 
         @@ -8,7 +8,7 @@ class TestCurbCurlDownload < Test::Unit::TestCase 
     | 
|
| 
       8 
8 
     | 
    
         
             
              end
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              def test_download_url_to_file_via_string
         
     | 
| 
       11 
     | 
    
         
            -
                dl_url = "http:// 
     | 
| 
      
 11 
     | 
    
         
            +
                dl_url = "http://localhost:9129/ext/curb_easy.c"
         
     | 
| 
       12 
12 
     | 
    
         
             
                dl_path = File.join(Dir::tmpdir, "dl_url_test.file")
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                curb = Curl::Easy.download(dl_url, dl_path)
         
     | 
| 
         @@ -19,7 +19,7 @@ class TestCurbCurlDownload < Test::Unit::TestCase 
     | 
|
| 
       19 
19 
     | 
    
         
             
              end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
              def test_download_url_to_file_via_file_io
         
     | 
| 
       22 
     | 
    
         
            -
                dl_url = "http:// 
     | 
| 
      
 22 
     | 
    
         
            +
                dl_url = "http://localhost:9129/ext/curb_easy.c"
         
     | 
| 
       23 
23 
     | 
    
         
             
                dl_path = File.join(Dir::tmpdir, "dl_url_test.file")
         
     | 
| 
       24 
24 
     | 
    
         
             
                io = File.open(dl_path, 'wb')
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
         @@ -32,7 +32,7 @@ class TestCurbCurlDownload < Test::Unit::TestCase 
     | 
|
| 
       32 
32 
     | 
    
         
             
              end
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
34 
     | 
    
         
             
              def test_download_url_to_file_via_io
         
     | 
| 
       35 
     | 
    
         
            -
                dl_url = "http:// 
     | 
| 
      
 35 
     | 
    
         
            +
                dl_url = "http://localhost:9129/ext/curb_easy.c"
         
     | 
| 
       36 
36 
     | 
    
         
             
                dl_path = File.join(Dir::tmpdir, "dl_url_test.file")
         
     | 
| 
       37 
37 
     | 
    
         
             
                reader, writer = IO.pipe
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
         @@ -62,7 +62,7 @@ class TestCurbCurlDownload < Test::Unit::TestCase 
     | 
|
| 
       62 
62 
     | 
    
         
             
              end
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
              def test_download_bad_url_gives_404
         
     | 
| 
       65 
     | 
    
         
            -
                dl_url = "http:// 
     | 
| 
      
 65 
     | 
    
         
            +
                dl_url = "http://localhost:9129/this_file_does_not_exist.html"
         
     | 
| 
       66 
66 
     | 
    
         
             
                dl_path = File.join(Dir::tmpdir, "dl_url_test.file")
         
     | 
| 
       67 
67 
     | 
    
         | 
| 
       68 
68 
     | 
    
         
             
                curb = Curl::Easy.download(dl_url, dl_path)
         
     | 
    
        data/tests/tc_curl_easy.rb
    CHANGED
    
    | 
         @@ -510,11 +510,11 @@ class TestCurbCurlEasy < Test::Unit::TestCase 
     | 
|
| 
       510 
510 
     | 
    
         | 
| 
       511 
511 
     | 
    
         
             
              def test_resolve_mode
         
     | 
| 
       512 
512 
     | 
    
         
             
                c = Curl::Easy.new
         
     | 
| 
       513 
     | 
    
         
            -
                 
     | 
| 
      
 513 
     | 
    
         
            +
                assert_equal :auto, c.resolve_mode
         
     | 
| 
       514 
514 
     | 
    
         
             
                c.resolve_mode = :ipv4
         
     | 
| 
       515 
     | 
    
         
            -
                 
     | 
| 
      
 515 
     | 
    
         
            +
                assert_equal :ipv4, c.resolve_mode 
         
     | 
| 
       516 
516 
     | 
    
         
             
                c.resolve_mode = :ipv6
         
     | 
| 
       517 
     | 
    
         
            -
                 
     | 
| 
      
 517 
     | 
    
         
            +
                assert_equal :ipv6, c.resolve_mode 
         
     | 
| 
       518 
518 
     | 
    
         | 
| 
       519 
519 
     | 
    
         
             
                assert_raises(ArgumentError) { c.resolve_mode = :bad }
         
     | 
| 
       520 
520 
     | 
    
         
             
              end
         
     | 
| 
         @@ -683,6 +683,17 @@ class TestCurbCurlEasy < Test::Unit::TestCase 
     | 
|
| 
       683 
683 
     | 
    
         
             
                assert_match /message$/, curl.body_str
         
     | 
| 
       684 
684 
     | 
    
         
             
              end
         
     | 
| 
       685 
685 
     | 
    
         | 
| 
      
 686 
     | 
    
         
            +
              # https://github.com/taf2/curb/issues/101
         
     | 
| 
      
 687 
     | 
    
         
            +
              def test_put_data_null_bytes
         
     | 
| 
      
 688 
     | 
    
         
            +
                curl = Curl::Easy.new(TestServlet.url)
         
     | 
| 
      
 689 
     | 
    
         
            +
                curl.put_data = "a\0b"
         
     | 
| 
      
 690 
     | 
    
         
            +
             
         
     | 
| 
      
 691 
     | 
    
         
            +
                curl.perform
         
     | 
| 
      
 692 
     | 
    
         
            +
                
         
     | 
| 
      
 693 
     | 
    
         
            +
                assert_match /^PUT/, curl.body_str
         
     | 
| 
      
 694 
     | 
    
         
            +
                assert_match "a\0b", curl.body_str
         
     | 
| 
      
 695 
     | 
    
         
            +
              end
         
     | 
| 
      
 696 
     | 
    
         
            +
             
     | 
| 
       686 
697 
     | 
    
         
             
              def test_put_nil_data_no_crash
         
     | 
| 
       687 
698 
     | 
    
         
             
                curl = Curl::Easy.new(TestServlet.url)
         
     | 
| 
       688 
699 
     | 
    
         
             
                curl.put_data = nil
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,35 +1,28 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            --- !ruby/object:Gem::Specification 
     | 
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: curb
         
     | 
| 
       3 
     | 
    
         
            -
            version: !ruby/object:Gem::Version 
     | 
| 
       4 
     | 
    
         
            -
               
     | 
| 
       5 
     | 
    
         
            -
              prerelease:  
     | 
| 
       6 
     | 
    
         
            -
              segments: 
         
     | 
| 
       7 
     | 
    
         
            -
              - 0
         
     | 
| 
       8 
     | 
    
         
            -
              - 7
         
     | 
| 
       9 
     | 
    
         
            -
              - 17
         
     | 
| 
       10 
     | 
    
         
            -
              version: 0.7.17
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.7.18
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: 
         
     | 
| 
       11 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
     | 
    
         
            -
            authors: 
     | 
| 
      
 7 
     | 
    
         
            +
            authors:
         
     | 
| 
       13 
8 
     | 
    
         
             
            - Ross Bamford
         
     | 
| 
       14 
9 
     | 
    
         
             
            - Todd A. Fisher
         
     | 
| 
       15 
10 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       16 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       17 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            date: 2012-01-09 00:00:00 -05:00
         
     | 
| 
       20 
     | 
    
         
            -
            default_executable: 
         
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2012-01-16 00:00:00.000000000 Z
         
     | 
| 
       21 
14 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 15 
     | 
    
         
            +
            description: Curb (probably CUrl-RuBy or something) provides Ruby-language bindings
         
     | 
| 
      
 16 
     | 
    
         
            +
              for the libcurl(3), a fully-featured client-side URL transfer library. cURL and
         
     | 
| 
      
 17 
     | 
    
         
            +
              libcurl live at http://curl.haxx.se/
         
     | 
| 
       24 
18 
     | 
    
         
             
            email: todd.fisher@gmail.com
         
     | 
| 
       25 
19 
     | 
    
         
             
            executables: []
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
            extensions: 
         
     | 
| 
      
 20 
     | 
    
         
            +
            extensions:
         
     | 
| 
       28 
21 
     | 
    
         
             
            - ext/extconf.rb
         
     | 
| 
       29 
     | 
    
         
            -
            extra_rdoc_files: 
     | 
| 
      
 22 
     | 
    
         
            +
            extra_rdoc_files:
         
     | 
| 
       30 
23 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       31 
24 
     | 
    
         
             
            - README
         
     | 
| 
       32 
     | 
    
         
            -
            files: 
     | 
| 
      
 25 
     | 
    
         
            +
            files:
         
     | 
| 
       33 
26 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       34 
27 
     | 
    
         
             
            - README
         
     | 
| 
       35 
28 
     | 
    
         
             
            - Rakefile
         
     | 
| 
         @@ -73,43 +66,34 @@ files: 
     | 
|
| 
       73 
66 
     | 
    
         
             
            - tests/timeout.rb
         
     | 
| 
       74 
67 
     | 
    
         
             
            - tests/timeout_server.rb
         
     | 
| 
       75 
68 
     | 
    
         
             
            - tests/unittests.rb
         
     | 
| 
       76 
     | 
    
         
            -
            has_rdoc: true
         
     | 
| 
       77 
69 
     | 
    
         
             
            homepage: http://curb.rubyforge.org/
         
     | 
| 
       78 
70 
     | 
    
         
             
            licenses: []
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
71 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       81 
     | 
    
         
            -
            rdoc_options: 
     | 
| 
      
 72 
     | 
    
         
            +
            rdoc_options:
         
     | 
| 
       82 
73 
     | 
    
         
             
            - --main
         
     | 
| 
       83 
74 
     | 
    
         
             
            - README
         
     | 
| 
       84 
     | 
    
         
            -
            require_paths: 
     | 
| 
      
 75 
     | 
    
         
            +
            require_paths:
         
     | 
| 
       85 
76 
     | 
    
         
             
            - lib
         
     | 
| 
       86 
77 
     | 
    
         
             
            - ext
         
     | 
| 
       87 
     | 
    
         
            -
            required_ruby_version: !ruby/object:Gem::Requirement 
     | 
| 
      
 78 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
       88 
79 
     | 
    
         
             
              none: false
         
     | 
| 
       89 
     | 
    
         
            -
              requirements: 
     | 
| 
       90 
     | 
    
         
            -
              - -  
     | 
| 
       91 
     | 
    
         
            -
                - !ruby/object:Gem::Version 
     | 
| 
       92 
     | 
    
         
            -
                   
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
                  - 0
         
     | 
| 
       95 
     | 
    
         
            -
                  version: "0"
         
     | 
| 
       96 
     | 
    
         
            -
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 80 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 81 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 82 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 83 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 84 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       97 
85 
     | 
    
         
             
              none: false
         
     | 
| 
       98 
     | 
    
         
            -
              requirements: 
     | 
| 
       99 
     | 
    
         
            -
              - -  
     | 
| 
       100 
     | 
    
         
            -
                - !ruby/object:Gem::Version 
     | 
| 
       101 
     | 
    
         
            -
                   
     | 
| 
       102 
     | 
    
         
            -
                  segments: 
         
     | 
| 
       103 
     | 
    
         
            -
                  - 0
         
     | 
| 
       104 
     | 
    
         
            -
                  version: "0"
         
     | 
| 
      
 86 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 87 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 88 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 89 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
       105 
90 
     | 
    
         
             
            requirements: []
         
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
91 
     | 
    
         
             
            rubyforge_project: curb
         
     | 
| 
       108 
     | 
    
         
            -
            rubygems_version: 1. 
     | 
| 
      
 92 
     | 
    
         
            +
            rubygems_version: 1.8.10
         
     | 
| 
       109 
93 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       110 
94 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       111 
95 
     | 
    
         
             
            summary: Ruby libcurl bindings
         
     | 
| 
       112 
     | 
    
         
            -
            test_files: 
     | 
| 
      
 96 
     | 
    
         
            +
            test_files:
         
     | 
| 
       113 
97 
     | 
    
         
             
            - tests/alltests.rb
         
     | 
| 
       114 
98 
     | 
    
         
             
            - tests/bug_crash_on_progress.rb
         
     | 
| 
       115 
99 
     | 
    
         
             
            - tests/bug_curb_easy_blocks_ruby_threads.rb
         
     |