ghazel-curb 0.5.9.0 → 0.5.9.1

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 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.5.9.0"
24
- #define CURB_VER_NUM 590
23
+ #define CURB_VERSION "0.5.9.1"
24
+ #define CURB_VER_NUM 591
25
25
  #define CURB_VER_MAJ 0
26
26
  #define CURB_VER_MIN 5
27
27
  #define CURB_VER_MIC 9
28
- #define CURB_VER_PATCH 0
28
+ #define CURB_VER_PATCH 1
29
29
 
30
30
 
31
31
  // Maybe not yet defined in Ruby
data/ext/curb_multi.c CHANGED
@@ -32,7 +32,6 @@ static void rb_curl_multi_remove(ruby_curl_multi *rbcm, VALUE easy);
32
32
  static void rb_curl_multi_read_info(VALUE self, CURLM *mptr);
33
33
 
34
34
  static void rb_curl_multi_mark_all_easy(VALUE key, VALUE rbeasy, ruby_curl_multi *rbcm) {
35
- //printf( "mark easy: 0x%X\n", (long)rbeasy );
36
35
  rb_gc_mark(rbeasy);
37
36
  }
38
37
 
@@ -42,20 +41,14 @@ static void curl_multi_mark(ruby_curl_multi *rbcm) {
42
41
  }
43
42
 
44
43
  static void curl_multi_flush_easy(VALUE key, VALUE easy, ruby_curl_multi *rbcm) {
45
- //rb_curl_multi_remove(rbcm, easy);
46
44
  CURLMcode result;
47
45
  ruby_curl_easy *rbce;
48
- VALUE r;
46
+
49
47
  Data_Get_Struct(easy, ruby_curl_easy, rbce);
50
48
  result = curl_multi_remove_handle(rbcm->handle, rbce->curl);
51
49
  if (result != 0) {
52
50
  raise_curl_multi_error_exception(result);
53
51
  }
54
- // XXX: easy handle may not be finished yet... so don't clean it GC pass will get it next time
55
- r = rb_hash_delete( rbcm->requests, easy );
56
- if( r != easy || r == Qnil ) {
57
- rb_raise(rb_eRuntimeError, "Critical:: Unable to remove easy from requests");
58
- }
59
52
  }
60
53
 
61
54
  static int
@@ -65,7 +58,6 @@ rb_hash_clear_i(VALUE key, VALUE value, VALUE dummy) {
65
58
 
66
59
  static void curl_multi_free(ruby_curl_multi *rbcm) {
67
60
 
68
- //printf("hash entries: %d\n", RHASH(rbcm->requests)->tbl->num_entries );
69
61
  if (rbcm && !rbcm->requests == Qnil && rb_type(rbcm->requests) == T_HASH && RHASH_LEN(rbcm->requests) > 0) {
70
62
 
71
63
  rb_hash_foreach( rbcm->requests, (int (*)())curl_multi_flush_easy, (VALUE)rbcm );
@@ -100,7 +92,7 @@ VALUE ruby_curl_multi_new(VALUE klass) {
100
92
  return new_curlm;
101
93
  }
102
94
 
103
- // Hash#foreach callback for ruby_curl_multi_requests
95
+ /* Hash#foreach callback for ruby_curl_multi_requests */
104
96
  static int ruby_curl_multi_requests_callback(VALUE key, VALUE value, VALUE result_array) {
105
97
  rb_ary_push(result_array, value);
106
98
 
@@ -121,8 +113,8 @@ static VALUE ruby_curl_multi_requests(VALUE self) {
121
113
 
122
114
  result_array = rb_ary_new();
123
115
 
124
- // iterate over the requests hash, and stuff references into the array.
125
- rb_hash_foreach( rbcm->requests, ruby_curl_multi_requests_callback, result_array );
116
+ /* iterate over the requests hash, and stuff references into the array. */
117
+ rb_hash_foreach(rbcm->requests, ruby_curl_multi_requests_callback, result_array);
126
118
 
127
119
  return result_array;
128
120
  }
data/ext/extconf.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'mkmf'
2
+ puts $CFLAGS.inspect
2
3
 
3
4
  dir_config('curl')
4
5
 
@@ -24,15 +25,16 @@ elsif !have_library('curl') or !have_header('curl/curl.h')
24
25
  end
25
26
 
26
27
  # Check arch flags
27
- archs = $CFLAGS.scan(/-arch\s(.*?)\s/).first # get the first arch flag
28
- if archs and archs.size >= 1
29
- # need to reduce the number of archs...
30
- # guess the first one is correct... at least the first one is probably the ruby installed arch...
31
- # this could lead to compiled binaries that crash at runtime...
32
- $CFLAGS.gsub!(/-arch\s(.*?)\s/,' ')
33
- $CFLAGS << " -arch #{archs.first}"
34
- puts "Selected arch: #{archs.first}"
35
- end
28
+ # TODO: detect mismatched arch types when libcurl mac ports is mixed with native mac ruby or vice versa
29
+ #archs = $CFLAGS.scan(/-arch\s(.*?)\s/).first # get the first arch flag
30
+ #if archs and archs.size >= 1
31
+ # # need to reduce the number of archs...
32
+ # # guess the first one is correct... at least the first one is probably the ruby installed arch...
33
+ # # this could lead to compiled binaries that crash at runtime...
34
+ # $CFLAGS.gsub!(/-arch\s(.*?)\s/,' ')
35
+ # $CFLAGS << " -arch #{archs.first}"
36
+ # puts "Selected arch: #{archs.first}"
37
+ #end
36
38
 
37
39
  def define(s)
38
40
  $defs.push( format("-D HAVE_%s", s.to_s.upcase) )
data/lib/curb.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'curb_core'
2
2
 
3
3
  module Curl
4
+
4
5
  class Easy
5
6
  class << self
6
7
 
@@ -54,6 +55,7 @@ module Curl
54
55
  self.cert
55
56
  end
56
57
  end
58
+
57
59
  class Multi
58
60
  class << self
59
61
  # call-seq:
@@ -381,7 +381,7 @@ class TestCurbCurlMulti < Test::Unit::TestCase
381
381
 
382
382
  def test_remove_exception_is_descriptive
383
383
  m = Curl::Multi.new
384
- c = Curl::Easy.new("http://blah.com")
384
+ c = Curl::Easy.new("http://127.9.9.9:999110")
385
385
  m.remove(c)
386
386
  rescue => e
387
387
  assert_equal 'Invalid easy handle', e.message
@@ -393,9 +393,9 @@ class TestCurbCurlMulti < Test::Unit::TestCase
393
393
 
394
394
  tries = 2
395
395
 
396
- c1 = Curl::Easy.new('http://127.9.9.9') do |curl|
396
+ c1 = Curl::Easy.new('http://127.1.1.1:99911') do |curl|
397
397
  curl.on_failure {|c,e|
398
- assert_equal [Curl::Err::ConnectionFailedError, "Couldn't connect to server"], e
398
+ assert_equal [Curl::Err::MalformedURLError, "URL using bad/illegal format or missing URL"], e
399
399
  if tries > 0
400
400
  tries -= 1
401
401
  m.add(c)
@@ -410,6 +410,7 @@ class TestCurbCurlMulti < Test::Unit::TestCase
410
410
  m.perform
411
411
  end
412
412
  assert_equal 0, tries
413
+ assert_equal 0, m.requests.size
413
414
  end
414
415
 
415
416
  include TestServerMethods
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ghazel-curb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.9.0
4
+ version: 0.5.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ross Bamford
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-11-23 00:00:00 -08:00
13
+ date: 2009-11-24 00:00:00 -08:00
14
14
  default_executable:
15
15
  dependencies: []
16
16