curb 0.8.4 → 1.3.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.
- checksums.yaml +7 -0
- data/README.md +522 -0
- data/Rakefile +79 -26
- data/ext/banned.h +32 -0
- data/ext/curb.c +549 -230
- data/ext/curb.h +19 -10
- data/ext/curb_easy.c +1935 -366
- data/ext/curb_easy.h +16 -0
- data/ext/curb_errors.c +115 -18
- data/ext/curb_errors.h +8 -5
- data/ext/curb_macros.h +33 -21
- data/ext/curb_multi.c +1858 -272
- data/ext/curb_multi.h +10 -3
- data/ext/curb_postfield.c +149 -77
- data/ext/curb_postfield.h +1 -0
- data/ext/curb_upload.c +38 -11
- data/ext/curb_upload.h +2 -0
- data/ext/extconf.rb +353 -35
- data/lib/curb.rb +1 -0
- data/lib/curl/easy.rb +314 -78
- data/lib/curl/multi.rb +134 -28
- data/lib/curl.rb +217 -11
- data/tests/bug_crash_on_debug.rb +14 -28
- data/tests/bug_crash_on_progress.rb +32 -16
- data/tests/bug_curb_easy_blocks_ruby_threads.rb +10 -15
- data/tests/bug_curb_easy_post_with_string_no_content_length_header.rb +6 -30
- data/tests/bug_follow_redirect_288.rb +83 -0
- data/tests/bug_instance_post_differs_from_class_post.rb +3 -5
- data/tests/bug_issue102.rb +1 -1
- data/tests/bug_issue_noproxy.rb +56 -0
- data/tests/bug_issue_post_redirect.rb +93 -0
- data/tests/bug_issue_spnego.rb +41 -0
- data/tests/bug_multi_segfault.rb +1 -0
- data/tests/bug_raise_on_callback.rb +30 -0
- data/tests/helper.rb +400 -44
- data/tests/leak_trace.rb +237 -0
- data/tests/mem_check.rb +3 -0
- data/tests/tc_curl.rb +31 -1
- data/tests/tc_curl_download.rb +12 -7
- data/tests/tc_curl_easy.rb +911 -63
- data/tests/tc_curl_easy_cookielist.rb +277 -0
- data/tests/tc_curl_easy_request_target.rb +41 -0
- data/tests/tc_curl_easy_resolve.rb +48 -0
- data/tests/tc_curl_maxfilesize.rb +12 -0
- data/tests/tc_curl_multi.rb +855 -53
- data/tests/tc_curl_native_coverage.rb +145 -0
- data/tests/tc_curl_postfield.rb +207 -30
- data/tests/tc_curl_protocols.rb +37 -0
- data/tests/tc_fiber_scheduler.rb +543 -0
- data/tests/tc_ftp_options.rb +39 -0
- data/tests/tc_gc_compact.rb +223 -0
- data/tests/tc_test_server_methods.rb +110 -0
- data/tests/timeout.rb +30 -6
- metadata +59 -36
- data/README +0 -194
data/ext/banned.h
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#ifndef BANNED_H
|
|
2
|
+
#define BANNED_H
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
* This header lists functions that have been banned from our code base,
|
|
6
|
+
* because they're too easy to misuse (and even if used correctly,
|
|
7
|
+
* complicate audits). Including this header turns them into compile-time
|
|
8
|
+
* errors.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#define BANNED(func) sorry_##func##_is_a_banned_function
|
|
12
|
+
|
|
13
|
+
#undef strcpy
|
|
14
|
+
#define strcpy(x,y) BANNED(strcpy)
|
|
15
|
+
#undef strcat
|
|
16
|
+
#define strcat(x,y) BANNED(strcat)
|
|
17
|
+
#undef strncpy
|
|
18
|
+
#define strncpy(x,y,n) BANNED(strncpy)
|
|
19
|
+
#undef strncat
|
|
20
|
+
#define strncat(x,y,n) BANNED(strncat)
|
|
21
|
+
|
|
22
|
+
#undef sprintf
|
|
23
|
+
#undef vsprintf
|
|
24
|
+
#ifdef HAVE_VARIADIC_MACROS
|
|
25
|
+
#define sprintf(...) BANNED(sprintf)
|
|
26
|
+
#define vsprintf(...) BANNED(vsprintf)
|
|
27
|
+
#else
|
|
28
|
+
#define sprintf(buf,fmt,arg) BANNED(sprintf)
|
|
29
|
+
#define vsprintf(buf,fmt,arg) BANNED(sprintf)
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
#endif /* BANNED_H */
|