taf2-curb 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/ext/curb.c CHANGED
@@ -42,7 +42,7 @@ static VALUE ruby_curl_kerberos4_q(VALUE mod) {
42
42
  * For libcurl versions < 7.10, always returns false.
43
43
  */
44
44
  static VALUE ruby_curl_ssl_q(VALUE mod) {
45
- #ifdef CURL_VERSION_SSL
45
+ #ifdef HAVE_CURL_VERSION_SSL
46
46
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
47
47
  return((ver->features & CURL_VERSION_SSL) ? Qtrue : Qfalse);
48
48
  #else
@@ -58,7 +58,7 @@ static VALUE ruby_curl_ssl_q(VALUE mod) {
58
58
  * using libz. For libcurl versions < 7.10, always returns false.
59
59
  */
60
60
  static VALUE ruby_curl_libz_q(VALUE mod) {
61
- #ifdef CURL_VERSION_LIBZ
61
+ #ifdef HAVE_CURL_VERSION_LIBZ
62
62
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
63
63
  return((ver->features & CURL_VERSION_LIBZ) ? Qtrue : Qfalse);
64
64
  #else
@@ -74,7 +74,7 @@ static VALUE ruby_curl_libz_q(VALUE mod) {
74
74
  * For libcurl versions < 7.10.6, always returns false.
75
75
  */
76
76
  static VALUE ruby_curl_ntlm_q(VALUE mod) {
77
- #ifdef CURL_VERSION_NTLM
77
+ #ifdef HAVE_CURL_VERSION_NTLM
78
78
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
79
79
  return((ver->features & CURL_VERSION_NTLM) ? Qtrue : Qfalse);
80
80
  #else
@@ -90,7 +90,7 @@ static VALUE ruby_curl_ntlm_q(VALUE mod) {
90
90
  * For libcurl versions < 7.10.6, always returns false.
91
91
  */
92
92
  static VALUE ruby_curl_gssnegotiate_q(VALUE mod) {
93
- #ifdef CURL_VERSION_GSSNEGOTIATE
93
+ #ifdef HAVE_CURL_VERSION_GSSNEGOTIATE
94
94
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
95
95
  return((ver->features & CURL_VERSION_GSSNEGOTIATE) ? Qtrue : Qfalse);
96
96
  #else
@@ -107,7 +107,7 @@ static VALUE ruby_curl_gssnegotiate_q(VALUE mod) {
107
107
  * false.
108
108
  */
109
109
  static VALUE ruby_curl_debug_q(VALUE mod) {
110
- #ifdef CURL_VERSION_DEBUG
110
+ #ifdef HAVE_CURL_VERSION_DEBUG
111
111
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
112
112
  return((ver->features & CURL_VERSION_DEBUG) ? Qtrue : Qfalse);
113
113
  #else
@@ -125,7 +125,7 @@ static VALUE ruby_curl_debug_q(VALUE mod) {
125
125
  * For libcurl versions < 7.10.7, always returns false.
126
126
  */
127
127
  static VALUE ruby_curl_asyncdns_q(VALUE mod) {
128
- #ifdef CURL_VERSION_ASYNCHDNS
128
+ #ifdef HAVE_CURL_VERSION_ASYNCHDNS
129
129
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
130
130
  return((ver->features & CURL_VERSION_ASYNCHDNS) ? Qtrue : Qfalse);
131
131
  #else
@@ -142,7 +142,7 @@ static VALUE ruby_curl_asyncdns_q(VALUE mod) {
142
142
  * in RFC 2478). For libcurl versions < 7.10.8, always returns false.
143
143
  */
144
144
  static VALUE ruby_curl_spnego_q(VALUE mod) {
145
- #ifdef CURL_VERSION_SPNEGO
145
+ #ifdef HAVE_CURL_VERSION_SPNEGO
146
146
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
147
147
  return((ver->features & CURL_VERSION_SPNEGO) ? Qtrue : Qfalse);
148
148
  #else
@@ -158,7 +158,7 @@ static VALUE ruby_curl_spnego_q(VALUE mod) {
158
158
  * files. For libcurl versions < 7.11.1, always returns false.
159
159
  */
160
160
  static VALUE ruby_curl_largefile_q(VALUE mod) {
161
- #ifdef CURL_VERSION_LARGEFILE
161
+ #ifdef HAVE_CURL_VERSION_LARGEFILE
162
162
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
163
163
  return((ver->features & CURL_VERSION_LARGEFILE) ? Qtrue : Qfalse);
164
164
  #else
@@ -175,7 +175,7 @@ static VALUE ruby_curl_largefile_q(VALUE mod) {
175
175
  * always returns false.
176
176
  */
177
177
  static VALUE ruby_curl_idn_q(VALUE mod) {
178
- #ifdef CURL_VERSION_IDN
178
+ #ifdef HAVE_CURL_VERSION_IDN
179
179
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
180
180
  return((ver->features & CURL_VERSION_IDN) ? Qtrue : Qfalse);
181
181
  #else
@@ -194,7 +194,7 @@ static VALUE ruby_curl_idn_q(VALUE mod) {
194
194
  * For libcurl versions < 7.13.2, always returns false.
195
195
  */
196
196
  static VALUE ruby_curl_sspi_q(VALUE mod) {
197
- #ifdef CURL_VERSION_SSPI
197
+ #ifdef HAVE_CURL_VERSION_SSPI
198
198
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
199
199
  return((ver->features & CURL_VERSION_SSPI) ? Qtrue : Qfalse);
200
200
  #else
@@ -210,7 +210,7 @@ static VALUE ruby_curl_sspi_q(VALUE mod) {
210
210
  * conversions. For libcurl versions < 7.15.4, always returns false.
211
211
  */
212
212
  static VALUE ruby_curl_conv_q(VALUE mod) {
213
- #ifdef CURL_VERSION_CONV
213
+ #ifdef HAVE_CURL_VERSION_CONV
214
214
  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
215
215
  return((ver->features & CURL_VERSION_CONV) ? Qtrue : Qfalse);
216
216
  #else
@@ -254,63 +254,63 @@ void Init_curb_core() {
254
254
  rb_define_const(mCurl, "CURLINFO_DATA_OUT", INT2FIX(CURLINFO_DATA_OUT));
255
255
 
256
256
  /* When passed to Curl::Easy#proxy_type , indicates that the proxy is an HTTP proxy. (libcurl >= 7.10) */
257
- #ifdef CURLPROXY_HTTP
257
+ #ifdef HAVE_CURLPROXY_HTTP
258
258
  rb_define_const(mCurl, "CURLPROXY_HTTP", INT2FIX(CURLPROXY_HTTP));
259
259
  #else
260
260
  rb_define_const(mCurl, "CURLPROXY_HTTP", INT2FIX(-1));
261
261
  #endif
262
262
 
263
263
  /* When passed to Curl::Easy#proxy_type , indicates that the proxy is a SOCKS4 proxy. (libcurl >= 7.15.2) */
264
- #ifdef CURLPROXY_SOCKS4
264
+ #ifdef HAVE_CURLPROXY_SOCKS4
265
265
  rb_define_const(mCurl, "CURLPROXY_SOCKS4", INT2FIX(CURLPROXY_SOCKS4));
266
266
  #else
267
267
  rb_define_const(mCurl, "CURLPROXY_SOCKS4", INT2FIX(-2));
268
268
  #endif
269
269
 
270
270
  /* When passed to Curl::Easy#proxy_type , indicates that the proxy is a SOCKS5 proxy. (libcurl >= 7.10) */
271
- #ifdef CURLPROXY_SOCKS5
271
+ #ifdef HAVE_CURLPROXY_SOCKS5
272
272
  rb_define_const(mCurl, "CURLPROXY_SOCKS5", INT2FIX(CURLPROXY_SOCKS5));
273
273
  #else
274
274
  rb_define_const(mCurl, "CURLPROXY_SOCKS5", INT2FIX(-2));
275
275
  #endif
276
276
 
277
277
  /* When passed to Curl::Easy#http_auth_types or Curl::Easy#proxy_auth_types, directs libcurl to use Basic authentication. */
278
- #ifdef CURLAUTH_BASIC
278
+ #ifdef HAVE_CURLAUTH_BASIC
279
279
  rb_define_const(mCurl, "CURLAUTH_BASIC", INT2FIX(CURLAUTH_BASIC));
280
280
  #else
281
281
  rb_define_const(mCurl, "CURLAUTH_BASIC", INT2FIX(0);
282
282
  #endif
283
283
 
284
284
  /* When passed to Curl::Easy#http_auth_types or Curl::Easy#proxy_auth_types, directs libcurl to use Digest authentication. */
285
- #ifdef CURLAUTH_DIGEST
285
+ #ifdef HAVE_CURLAUTH_DIGEST
286
286
  rb_define_const(mCurl, "CURLAUTH_DIGEST", INT2FIX(CURLAUTH_DIGEST));
287
287
  #else
288
288
  rb_define_const(mCurl, "CURLAUTH_DIGEST", INT2FIX(0));
289
289
  #endif
290
290
 
291
291
  /* When passed to Curl::Easy#http_auth_types or Curl::Easy#proxy_auth_types, directs libcurl to use GSS Negotiate authentication. Requires a suitable GSS-API library. */
292
- #ifdef CURLAUTH_GSSNEGOTIATE
292
+ #ifdef HAVE_CURLAUTH_GSSNEGOTIATE
293
293
  rb_define_const(mCurl, "CURLAUTH_GSSNEGOTIATE", INT2FIX(CURLAUTH_GSSNEGOTIATE));
294
294
  #else
295
295
  rb_define_const(mCurl, "CURLAUTH_GSSNEGOTIATE", INT2FIX(0));
296
296
  #endif
297
297
 
298
298
  /* When passed to Curl::Easy#http_auth_types or Curl::Easy#proxy_auth_types, directs libcurl to use HTTP NTLM authentication. Requires MS Windows or OpenSSL support. */
299
- #ifdef CURLAUTH_NTLM
299
+ #ifdef HAVE_CURLAUTH_NTLM
300
300
  rb_define_const(mCurl, "CURLAUTH_NTLM", INT2FIX(CURLAUTH_NTLM));
301
301
  #else
302
302
  rb_define_const(mCurl, "CURLAUTH_NTLM", INT2FIX(0));
303
303
  #endif
304
304
 
305
305
  /* When passed to Curl::Easy#http_auth_types or Curl::Easy#proxy_auth_types, allows libcurl to select any suitable authentication method except basic. */
306
- #ifdef CURLAUTH_ANYSAFE
306
+ #ifdef HAVE_CURLAUTH_ANYSAFE
307
307
  rb_define_const(mCurl, "CURLAUTH_ANYSAFE", INT2FIX(CURLAUTH_ANYSAFE));
308
308
  #else
309
309
  rb_define_const(mCurl, "CURLAUTH_ANYSAFE", INT2FIX(0));
310
310
  #endif
311
311
 
312
312
  /* When passed to Curl::Easy#http_auth_types or Curl::Easy#proxy_auth_types, allows libcurl to select any suitable authentication method. */
313
- #ifdef CURLAUTH_ANY
313
+ #ifdef HAVE_CURLAUTH_ANY
314
314
  rb_define_const(mCurl, "CURLAUTH_ANY", INT2FIX(CURLAUTH_ANY));
315
315
  #else
316
316
  rb_define_const(mCurl, "CURLAUTH_ANY", INT2FIX(0));
data/ext/curb.h CHANGED
@@ -11,6 +11,7 @@
11
11
  #include <ruby.h>
12
12
  #include <curl/curl.h>
13
13
 
14
+ #include "curb_config.h"
14
15
  #include "curb_easy.h"
15
16
  #include "curb_errors.h"
16
17
  #include "curb_postfield.h"
@@ -19,11 +20,11 @@
19
20
  #include "curb_macros.h"
20
21
 
21
22
  // These should be managed from the Rake 'release' task.
22
- #define CURB_VERSION "0.2.3.0"
23
- #define CURB_VER_NUM 223
23
+ #define CURB_VERSION "0.2.4.1"
24
+ #define CURB_VER_NUM 224
24
25
  #define CURB_VER_MAJ 0
25
26
  #define CURB_VER_MIN 2
26
- #define CURB_VER_MIC 3
27
+ #define CURB_VER_MIC 4
27
28
  #define CURB_VER_PATCH 0
28
29
 
29
30
 
data/ext/curb.rb CHANGED
@@ -39,6 +39,8 @@ module Curl
39
39
 
40
40
  curl.perform
41
41
  end
42
+
43
+ return curl
42
44
  end
43
45
  end
44
46
  end
data/ext/curb_easy.c CHANGED
@@ -1383,13 +1383,29 @@ VALUE ruby_curl_easy_cleanup( VALUE self, ruby_curl_easy *rbce, VALUE bodybuf, V
1383
1383
 
1384
1384
  // Sort out the built-in body/header data.
1385
1385
  if (bodybuf != Qnil) {
1386
- rbce->body_data = rb_str_to_str(bodybuf);
1386
+ if (TYPE(bodybuf) == T_STRING) {
1387
+ rbce->body_data = rb_str_to_str(bodybuf);
1388
+ }
1389
+ else if (rb_respond_to(bodybuf, rb_intern("to_str"))) {
1390
+ rbce->body_data = rb_funcall(bodybuf, rb_intern("to_str"), 0);
1391
+ }
1392
+ else {
1393
+ rbce->body_data = Qnil;
1394
+ }
1387
1395
  } else {
1388
1396
  rbce->body_data = Qnil;
1389
1397
  }
1390
1398
 
1391
1399
  if (headerbuf != Qnil) {
1392
- rbce->header_data = rb_str_to_str(headerbuf);
1400
+ if (TYPE(headerbuf) == T_STRING) {
1401
+ rbce->header_data = rb_str_to_str(headerbuf);
1402
+ }
1403
+ else if (rb_respond_to(headerbuf, rb_intern("to_str"))) {
1404
+ rbce->header_data = rb_funcall(headerbuf, rb_intern("to_str"), 0);
1405
+ }
1406
+ else {
1407
+ rbce->header_data = Qnil;
1408
+ }
1393
1409
  } else {
1394
1410
  rbce->header_data = Qnil;
1395
1411
  }
@@ -1748,7 +1764,7 @@ static VALUE ruby_curl_easy_response_code_get(VALUE self) {
1748
1764
  long code;
1749
1765
 
1750
1766
  Data_Get_Struct(self, ruby_curl_easy, rbce);
1751
- #ifdef CURLINFO_RESPONSE_CODE
1767
+ #ifdef HAVE_CURLINFO_RESPONSE_CODE
1752
1768
  curl_easy_getinfo(rbce->curl, CURLINFO_RESPONSE_CODE, &code);
1753
1769
  #else
1754
1770
  // old libcurl
@@ -1792,7 +1808,7 @@ static VALUE ruby_curl_easy_http_connect_code_get(VALUE self) {
1792
1808
  * returned.
1793
1809
  */
1794
1810
  static VALUE ruby_curl_easy_file_time_get(VALUE self) {
1795
- #ifdef CURLINFO_FILETIME
1811
+ #ifdef HAVE_CURLINFO_FILETIME
1796
1812
  ruby_curl_easy *rbce;
1797
1813
  long time;
1798
1814
 
@@ -1906,7 +1922,7 @@ static VALUE ruby_curl_easy_start_transfer_time_get(VALUE self) {
1906
1922
  * Requires libcurl 7.9.7 or higher, otherwise -1 is always returned.
1907
1923
  */
1908
1924
  static VALUE ruby_curl_easy_redirect_time_get(VALUE self) {
1909
- #ifdef CURLINFO_REDIRECT_TIME
1925
+ #ifdef HAVE_CURLINFO_REDIRECT_TIME
1910
1926
  ruby_curl_easy *rbce;
1911
1927
  double time;
1912
1928
 
@@ -1929,7 +1945,7 @@ static VALUE ruby_curl_easy_redirect_time_get(VALUE self) {
1929
1945
  * Requires libcurl 7.9.7 or higher, otherwise -1 is always returned.
1930
1946
  */
1931
1947
  static VALUE ruby_curl_easy_redirect_count_get(VALUE self) {
1932
- #ifdef CURLINFO_REDIRECT_COUNT
1948
+ #ifdef HAVE_CURLINFO_REDIRECT_COUNT
1933
1949
  ruby_curl_easy *rbce;
1934
1950
  long count;
1935
1951
 
@@ -2154,7 +2170,7 @@ Pass a pointer to a long to receive a bitmask indicating the authentication meth
2154
2170
  * libcurl 7.12.2 or higher, otherwise 0 is always returned).
2155
2171
  */
2156
2172
  static VALUE ruby_curl_easy_os_errno_get(VALUE self) {
2157
- #ifdef CURLINFO_OS_ERRNO
2173
+ #ifdef HAVE_CURLINFO_OS_ERRNO
2158
2174
  ruby_curl_easy *rbce;
2159
2175
  long result;
2160
2176
 
@@ -2183,7 +2199,7 @@ static VALUE ruby_curl_easy_os_errno_get(VALUE self) {
2183
2199
  * (requires libcurl 7.12.3 or higher, otherwise -1 is always returned).
2184
2200
  */
2185
2201
  static VALUE ruby_curl_easy_num_connects_get(VALUE self) {
2186
- #ifdef CURLINFO_NUM_CONNECTS
2202
+ #ifdef HAVE_CURLINFO_NUM_CONNECTS
2187
2203
  ruby_curl_easy *rbce;
2188
2204
  long result;
2189
2205
 
@@ -2224,14 +2240,14 @@ Pass a pointer to a long to receive the last socket used by this curl session. I
2224
2240
  * (requires libcurl 7.15.4 or higher, otherwise +nil+ is always returned).
2225
2241
  */
2226
2242
  static VALUE ruby_curl_easy_ftp_entry_path_get(VALUE self) {
2227
- #ifdef CURLINFO_FTP_ENTRY_PATH
2243
+ #ifdef HAVE_CURLINFO_FTP_ENTRY_PATH
2228
2244
  ruby_curl_easy *rbce;
2229
- char* path;
2245
+ char* path = NULL;
2230
2246
 
2231
2247
  Data_Get_Struct(self, ruby_curl_easy, rbce);
2232
2248
  curl_easy_getinfo(rbce->curl, CURLINFO_FTP_ENTRY_PATH, &path);
2233
2249
 
2234
- if (type && type[0]) { // curl returns NULL or empty string if none
2250
+ if (path && path[0]) { // curl returns NULL or empty string if none
2235
2251
  return rb_str_new2(path);
2236
2252
  } else {
2237
2253
  return Qnil;
data/ext/curb_errors.c CHANGED
@@ -320,37 +320,37 @@ void raise_curl_easy_error_exception(CURLcode code) {
320
320
  break;
321
321
 
322
322
  // recent additions, may not be present in all supported versions
323
- #ifdef CURLE_TFTP_NOTFOUND
323
+ #ifdef HAVE_CURLE_TFTP_NOTFOUND
324
324
  case CURLE_TFTP_NOTFOUND: /* 68 - file not found on server */
325
325
  exclz = eCurlErrTFTPNotFound;
326
326
  break;
327
327
  #endif
328
- #ifdef CURLE_TFTP_PERM
328
+ #ifdef HAVE_CURLE_TFTP_PERM
329
329
  case CURLE_TFTP_PERM: /* 69 - permission problem on server */
330
330
  exclz = eCurlErrTFTPPermission;
331
331
  break;
332
332
  #endif
333
- #ifdef CURLE_TFTP_DISKFULL
333
+ #ifdef HAVE_CURLE_TFTP_DISKFULL
334
334
  case CURLE_TFTP_DISKFULL: /* 70 - out of disk space on server */
335
335
  exclz = eCurlErrTFTPDiskFull;
336
336
  break;
337
337
  #endif
338
- #ifdef CURLE_TFTP_ILLEGAL
338
+ #ifdef HAVE_CURLE_TFTP_ILLEGAL
339
339
  case CURLE_TFTP_ILLEGAL: /* 71 - Illegal TFTP operation */
340
340
  exclz = eCurlErrTFTPIllegalOperation;
341
341
  break;
342
342
  #endif
343
- #ifdef CURLE_TFTP_UNKNOWNID
343
+ #ifdef HAVE_CURLE_TFTP_UNKNOWNID
344
344
  case CURLE_TFTP_UNKNOWNID: /* 72 - Unknown transfer ID */
345
345
  exclz = eCurlErrTFTPUnknownID;
346
346
  break;
347
347
  #endif
348
- #ifdef CURLE_TFTP_EXISTS
348
+ #ifdef HAVE_CURLE_TFTP_EXISTS
349
349
  case CURLE_TFTP_EXISTS: /* 73 - File already exists */
350
350
  exclz = eCurlErrTFTPFileExists;
351
351
  break;
352
352
  #endif
353
- #ifdef CURLE_TFTP_NOSUCHUSER
353
+ #ifdef HAVE_CURLE_TFTP_NOSUCHUSER
354
354
  case CURLE_TFTP_NOSUCHUSER: /* 74 - No such user */
355
355
  exclz = eCurlErrTFTPNotFound;
356
356
  break;
data/ext/curb_multi.c CHANGED
@@ -174,7 +174,7 @@ static void rb_curl_multi_read_info(VALUE self, CURLM *multi_handle) {
174
174
  easy_handle = msg->easy_handle;
175
175
  result = msg->data.result;
176
176
  if (easy_handle) {
177
- ecode = curl_easy_getinfo(easy_handle, CURLINFO_PRIVATE, &rbce);
177
+ ecode = curl_easy_getinfo(easy_handle, CURLINFO_PRIVATE, (char**)&rbce);
178
178
  if (ecode != 0) {
179
179
  raise_curl_easy_error_exception(ecode);
180
180
  }
data/ext/extconf.rb CHANGED
@@ -14,12 +14,68 @@ elsif !have_library('curl') or !have_header('curl/curl.h')
14
14
  EOM
15
15
  end
16
16
 
17
- #install_rb("curb.rb", "$(RUBYLIBDIR)", '../lib')
18
- #install_rb("curl.rb", "$(RUBYLIBDIR)", '../lib')
17
+ def define(s)
18
+ $defs.push( format("-D HAVE_%s", s.to_s.upcase) )
19
+ end
20
+
21
+ def have_constant(name)
22
+ checking_for name do
23
+ src = %{
24
+ #include <curl/curl.h>
25
+ int main() {
26
+ int test = (int)#{name.upcase};
27
+ return 0;
28
+ }
29
+ }
30
+ if try_compile(src,"#{$CFLAGS} #{$LIBS}")
31
+ define name
32
+ true
33
+ else
34
+ false
35
+ end
36
+ end
37
+ end
38
+
39
+ have_constant "curlinfo_redirect_time"
40
+ have_constant "curlinfo_response_code"
41
+ have_constant "curlinfo_filetime"
42
+ have_constant "curlinfo_redirect_count"
43
+ have_constant "curlinfo_os_errno"
44
+ have_constant "curlinfo_num_connects"
45
+ have_constant "curlinfo_ftp_entry_path"
46
+ have_constant "curl_version_ssl"
47
+ have_constant "curl_version_libz"
48
+ have_constant "curl_version_ntlm"
49
+ have_constant "curl_version_gssnegotiate"
50
+ have_constant "curl_version_debug"
51
+ have_constant "curl_version_asynchdns"
52
+ have_constant "curl_version_spnego"
53
+ have_constant "curl_version_largefile"
54
+ have_constant "curl_version_idn"
55
+ have_constant "curl_version_sspi"
56
+ have_constant "curl_version_conv"
57
+ have_constant "curlproxy_http"
58
+ have_constant "curlproxy_socks4"
59
+ have_constant "curlproxy_socks5"
60
+ have_constant "curlauth_basic"
61
+ have_constant "curlauth_digest"
62
+ have_constant "curlauth_gssnegotiate"
63
+ have_constant "curlauth_ntlm"
64
+ have_constant "curlauth_anysafe"
65
+ have_constant "curlauth_any"
66
+ have_constant "curle_tftp_notfound"
67
+ have_constant "curle_tftp_perm"
68
+ have_constant "curle_tftp_diskfull"
69
+ have_constant "curle_tftp_illegal"
70
+ have_constant "curle_tftp_unknownid"
71
+ have_constant "curle_tftp_exists"
72
+ have_constant "curle_tftp_nosuchuser"
73
+
19
74
  $INSTALLFILES = [["curb.rb", "$(RUBYLIBDIR)", "../ext"], ["curl.rb", "$(RUBYLIBDIR)", "../ext"]]
20
75
 
21
76
  if try_compile('int main() { return 0; }','-Wall')
22
77
  $CFLAGS << ' -Wall'
23
78
  end
24
79
 
80
+ create_header('curb_config.h')
25
81
  create_makefile('curb_core')
data/tests/helper.rb CHANGED
@@ -35,8 +35,12 @@ end
35
35
  #
36
36
  class TestServlet < WEBrick::HTTPServlet::AbstractServlet
37
37
 
38
+ def self.port=(p)
39
+ @port = p
40
+ end
41
+
38
42
  def self.port
39
- 9129
43
+ (@port or 9129)
40
44
  end
41
45
 
42
46
  def self.path
@@ -69,3 +73,37 @@ class TestServlet < WEBrick::HTTPServlet::AbstractServlet
69
73
  end
70
74
 
71
75
  end
76
+
77
+ module TestServerMethods
78
+ def locked_file
79
+ File.join(File.dirname(__FILE__),"server_lock-#{@__port}")
80
+ end
81
+
82
+ def server_setup(port=9129,servlet=TestServlet)
83
+ @__port = port
84
+ if @server.nil? and !File.exist?(locked_file)
85
+ File.open(locked_file,'w') {|f| f << 'locked' }
86
+
87
+ # start up a webrick server for testing delete
88
+ @server = WEBrick::HTTPServer.new :Port => port, :DocumentRoot => File.expand_path(File.dirname(__FILE__))
89
+
90
+ @server.mount(servlet.path, servlet)
91
+
92
+ @test_thread = Thread.new { @server.start }
93
+
94
+ exit_code = lambda do
95
+ begin
96
+ #puts "stopping"
97
+ File.unlink locked_file if File.exist?(locked_file)
98
+ @server.shutdown unless @server.nil?
99
+ rescue Object => e
100
+ puts "Error #{__FILE__}:#{__LINE__}\n#{e.message}"
101
+ end
102
+ end
103
+
104
+ trap("INT"){exit_code.call}
105
+ at_exit{exit_code.call}
106
+
107
+ end
108
+ end
109
+ end
@@ -486,39 +486,10 @@ class TestCurbCurlEasy < Test::Unit::TestCase
486
486
  # assert_equal 'PUT', curl.body_str
487
487
  # end
488
488
 
489
- def self.locked_file
490
- File.join(File.dirname(__FILE__),'server_lock')
491
- end
489
+ include TestServerMethods
492
490
 
493
491
  def setup
494
- if @server.nil? and !File.exist?(TestCurbCurlEasy.locked_file)
495
- #puts "starting"
496
- File.open(TestCurbCurlEasy.locked_file,'w') {|f| f << 'locked' }
497
-
498
- # start up a webrick server for testing delete
499
- @server = WEBrick::HTTPServer.new :Port => 9129, :DocumentRoot => File.expand_path(File.dirname(__FILE__))
500
-
501
- @server.mount(TestServlet.path, TestServlet)
502
-
503
- @test_thread = Thread.new { @server.start }
504
-
505
- exit_code = lambda do
506
- begin
507
- #puts "stopping"
508
- File.unlink TestCurbCurlEasy.locked_file if File.exist?(TestCurbCurlEasy.locked_file)
509
- @server.shutdown unless @server.nil?
510
- rescue Object => e
511
- puts "Error #{__FILE__}:#{__LINE__}\n#{e.message}"
512
- end
513
- end
514
-
515
- trap("INT"){exit_code.call}
516
- at_exit{exit_code.call}
517
-
518
- end
492
+ server_setup
519
493
  end
520
494
 
521
- def teardown
522
- end
523
-
524
495
  end
@@ -197,9 +197,9 @@ class TestCurbCurlMulti < Test::Unit::TestCase
197
197
  end
198
198
 
199
199
  def self.test
200
- ObjectSpace.garbage_collect
200
+ ObjectSpace.garbage_collect
201
201
  tfs = TestForScope.new
202
- ObjectSpace.garbage_collect
202
+ ObjectSpace.garbage_collect
203
203
  tfs.t_method
204
204
  ObjectSpace.garbage_collect
205
205
  tfs.t_call
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taf2-curb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ross Bamford
@@ -18,8 +18,8 @@ description: Curb (probably CUrl-RuBy or something) provides Ruby-language bindi
18
18
  email: todd.fisher@gmail.com
19
19
  executables: []
20
20
 
21
- extensions: []
22
-
21
+ extensions:
22
+ - ext/extconf.rb
23
23
  extra_rdoc_files:
24
24
  - LICENSE
25
25
  - README