rfuzz 0.7 → 0.8

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.
Files changed (123) hide show
  1. data/Rakefile +1 -1
  2. data/doc/rdoc/classes/RFuzz/Browser.html +15 -15
  3. data/doc/rdoc/classes/RFuzz/Browser.src/{M000068.html → M000083.html} +0 -0
  4. data/doc/rdoc/classes/RFuzz/Browser.src/{M000069.html → M000084.html} +0 -0
  5. data/doc/rdoc/classes/RFuzz/Browser.src/{M000070.html → M000085.html} +0 -0
  6. data/doc/rdoc/classes/RFuzz/HttpClient.html +114 -57
  7. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000019.html +12 -13
  8. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000011.html → M000020.html} +20 -20
  9. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000021.html +28 -0
  10. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000022.html +30 -0
  11. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000023.html +35 -0
  12. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000024.html +22 -0
  13. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000025.html +44 -0
  14. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000026.html +38 -0
  15. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000016.html → M000027.html} +12 -12
  16. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000017.html → M000028.html} +20 -20
  17. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000018.html → M000029.html} +4 -4
  18. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000030.html +26 -0
  19. data/doc/rdoc/classes/RFuzz/HttpClientError.html +118 -0
  20. data/doc/rdoc/classes/RFuzz/HttpEncoding.html +7 -4
  21. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000001.html +12 -12
  22. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000002.html +4 -4
  23. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000003.html +12 -12
  24. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000004.html +4 -4
  25. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000005.html +18 -18
  26. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000006.html +4 -4
  27. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000007.html +6 -6
  28. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000008.html +6 -6
  29. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000009.html +18 -18
  30. data/doc/rdoc/classes/RFuzz/HttpResponse.html +74 -13
  31. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000031.html +22 -0
  32. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000032.html +18 -0
  33. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000033.html +18 -0
  34. data/doc/rdoc/classes/RFuzz/Notifier.html +49 -31
  35. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000044.html → M000058.html} +3 -3
  36. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000045.html → M000059.html} +3 -3
  37. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000047.html → M000060.html} +2 -2
  38. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000048.html → M000061.html} +2 -2
  39. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000049.html → M000062.html} +2 -2
  40. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000046.html → M000063.html} +4 -4
  41. data/doc/rdoc/classes/RFuzz/Notifier.src/M000064.html +17 -0
  42. data/doc/rdoc/classes/RFuzz/PushBackIO.html +296 -0
  43. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000010.html +19 -0
  44. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000011.html +20 -0
  45. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000012.html +19 -0
  46. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000013.html +18 -0
  47. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000014.html +44 -0
  48. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000015.html +18 -0
  49. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000016.html +18 -0
  50. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000017.html +18 -0
  51. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000018.html +22 -0
  52. data/doc/rdoc/classes/RFuzz/RandomGenerator.html +62 -62
  53. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000032.html → M000046.html} +0 -0
  54. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000033.html → M000047.html} +0 -0
  55. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000036.html → M000050.html} +0 -0
  56. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000037.html → M000051.html} +0 -0
  57. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000038.html → M000052.html} +0 -0
  58. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000039.html → M000053.html} +0 -0
  59. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000040.html → M000054.html} +0 -0
  60. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000041.html → M000055.html} +0 -0
  61. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000042.html → M000056.html} +0 -0
  62. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000043.html → M000057.html} +0 -0
  63. data/doc/rdoc/classes/RFuzz/Sampler.html +60 -60
  64. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000056.html → M000071.html} +0 -0
  65. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000057.html → M000072.html} +0 -0
  66. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000058.html → M000073.html} +0 -0
  67. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000059.html → M000074.html} +0 -0
  68. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000060.html → M000075.html} +0 -0
  69. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000061.html → M000076.html} +0 -0
  70. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000062.html → M000077.html} +0 -0
  71. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000063.html → M000078.html} +0 -0
  72. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000064.html → M000079.html} +0 -0
  73. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000065.html → M000080.html} +0 -0
  74. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000066.html → M000081.html} +0 -0
  75. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000067.html → M000082.html} +0 -0
  76. data/doc/rdoc/classes/RFuzz/Session.html +63 -63
  77. data/doc/rdoc/classes/RFuzz/Session.src/{M000020.html → M000034.html} +0 -0
  78. data/doc/rdoc/classes/RFuzz/Session.src/{M000021.html → M000035.html} +0 -0
  79. data/doc/rdoc/classes/RFuzz/Session.src/{M000022.html → M000036.html} +0 -0
  80. data/doc/rdoc/classes/RFuzz/Session.src/{M000023.html → M000037.html} +0 -0
  81. data/doc/rdoc/classes/RFuzz/Session.src/{M000024.html → M000038.html} +0 -0
  82. data/doc/rdoc/classes/RFuzz/Session.src/{M000025.html → M000039.html} +0 -0
  83. data/doc/rdoc/classes/RFuzz/Session.src/{M000026.html → M000040.html} +0 -0
  84. data/doc/rdoc/classes/RFuzz/Session.src/{M000027.html → M000041.html} +0 -0
  85. data/doc/rdoc/classes/RFuzz/Session.src/{M000028.html → M000042.html} +0 -0
  86. data/doc/rdoc/classes/RFuzz/Session.src/{M000029.html → M000043.html} +0 -0
  87. data/doc/rdoc/classes/RFuzz/Session.src/{M000030.html → M000044.html} +0 -0
  88. data/doc/rdoc/classes/RFuzz/Session.src/{M000031.html → M000045.html} +0 -0
  89. data/doc/rdoc/classes/RFuzz/StatsTracker.html +32 -32
  90. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000050.html → M000065.html} +0 -0
  91. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000051.html → M000066.html} +0 -0
  92. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000052.html → M000067.html} +0 -0
  93. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000053.html → M000068.html} +0 -0
  94. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000054.html → M000069.html} +0 -0
  95. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000055.html → M000070.html} +0 -0
  96. data/doc/rdoc/classes/RFuzz.html +7 -1
  97. data/doc/rdoc/created.rid +1 -1
  98. data/doc/rdoc/files/lib/rfuzz/client_rb.html +2 -2
  99. data/doc/rdoc/files/lib/rfuzz/pushbackio_rb.html +108 -0
  100. data/doc/rdoc/fr_class_index.html +2 -0
  101. data/doc/rdoc/fr_file_index.html +1 -0
  102. data/doc/rdoc/fr_method_index.html +76 -61
  103. data/examples/cl_watcher.rb +12 -9
  104. data/examples/hpricot_pudding.rb +1 -1
  105. data/examples/mongrel_test_suite/test/http/protocol_parameters.rb +0 -3
  106. data/examples/mongrel_test_suite/test/rails/catastrophe.rb +26 -0
  107. data/examples/mongrel_test_suite/test/rails/conditional.rb +81 -0
  108. data/examples/mongrel_test_suite/test/rails/put.rb +25 -0
  109. data/examples/mongrel_test_suite/test/rails/redirect.rb +13 -0
  110. data/examples/mongrel_test_suite/test/rails/static_files.rb +47 -2
  111. data/examples/rails_security_test.rb +61 -0
  112. data/ext/http11_client/http11_client.c +15 -1
  113. data/ext/http11_client/http11_parser.c +627 -203
  114. data/ext/http11_client/http11_parser.h +2 -0
  115. data/ext/http11_client/http11_parser.rl +8 -4
  116. data/lib/rfuzz/client.rb +124 -115
  117. data/lib/rfuzz/pushbackio.rb +90 -0
  118. metadata +86 -60
  119. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000010.html +0 -24
  120. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000012.html +0 -50
  121. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000013.html +0 -49
  122. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000014.html +0 -57
  123. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000015.html +0 -37
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: rfuzz
5
5
  version: !ruby/object:Gem::Version
6
- version: "0.7"
7
- date: 2006-08-04 00:00:00 -07:00
6
+ version: "0.8"
7
+ date: 2006-08-13 00:00:00 -07:00
8
8
  summary: The rfuzz web server destructor
9
9
  require_paths:
10
10
  - lib
@@ -45,6 +45,7 @@ files:
45
45
  - doc/rdoc/files/README.html
46
46
  - doc/rdoc/files/COPYING.html
47
47
  - doc/rdoc/files/lib/rfuzz
48
+ - doc/rdoc/files/lib/rfuzz/pushbackio_rb.html
48
49
  - doc/rdoc/files/lib/rfuzz/browser_rb.html
49
50
  - doc/rdoc/files/lib/rfuzz/rfuzz_rb.html
50
51
  - doc/rdoc/files/lib/rfuzz/client_rb.html
@@ -53,8 +54,10 @@ files:
53
54
  - doc/rdoc/files/lib/rfuzz/random_rb.html
54
55
  - doc/rdoc/classes/RFuzz
55
56
  - doc/rdoc/classes/RFuzz.html
57
+ - doc/rdoc/classes/RFuzz/HttpClientError.html
56
58
  - doc/rdoc/classes/RFuzz/StatsTracker.src
57
59
  - doc/rdoc/classes/RFuzz/HttpEncoding.html
60
+ - doc/rdoc/classes/RFuzz/PushBackIO.html
58
61
  - doc/rdoc/classes/RFuzz/HttpClient.html
59
62
  - doc/rdoc/classes/RFuzz/HttpResponse.html
60
63
  - doc/rdoc/classes/RFuzz/HttpClient.src
@@ -64,28 +67,32 @@ files:
64
67
  - doc/rdoc/classes/RFuzz/Browser.html
65
68
  - doc/rdoc/classes/RFuzz/Sampler.src
66
69
  - doc/rdoc/classes/RFuzz/Session.html
70
+ - doc/rdoc/classes/RFuzz/PushBackIO.src
67
71
  - doc/rdoc/classes/RFuzz/Notifier.html
68
72
  - doc/rdoc/classes/RFuzz/Notifier.src
69
73
  - doc/rdoc/classes/RFuzz/Sampler.html
74
+ - doc/rdoc/classes/RFuzz/HttpResponse.src
70
75
  - doc/rdoc/classes/RFuzz/Browser.src
71
76
  - doc/rdoc/classes/RFuzz/RandomGenerator.html
72
77
  - doc/rdoc/classes/RFuzz/RandomGenerator.src
73
- - doc/rdoc/classes/RFuzz/StatsTracker.src/M000050.html
74
- - doc/rdoc/classes/RFuzz/StatsTracker.src/M000051.html
75
- - doc/rdoc/classes/RFuzz/StatsTracker.src/M000052.html
76
- - doc/rdoc/classes/RFuzz/StatsTracker.src/M000053.html
77
- - doc/rdoc/classes/RFuzz/StatsTracker.src/M000054.html
78
- - doc/rdoc/classes/RFuzz/StatsTracker.src/M000055.html
79
- - doc/rdoc/classes/RFuzz/HttpClient.src/M000010.html
80
- - doc/rdoc/classes/RFuzz/HttpClient.src/M000011.html
81
- - doc/rdoc/classes/RFuzz/HttpClient.src/M000012.html
82
- - doc/rdoc/classes/RFuzz/HttpClient.src/M000013.html
83
- - doc/rdoc/classes/RFuzz/HttpClient.src/M000014.html
84
- - doc/rdoc/classes/RFuzz/HttpClient.src/M000015.html
85
- - doc/rdoc/classes/RFuzz/HttpClient.src/M000016.html
86
- - doc/rdoc/classes/RFuzz/HttpClient.src/M000017.html
87
- - doc/rdoc/classes/RFuzz/HttpClient.src/M000018.html
78
+ - doc/rdoc/classes/RFuzz/StatsTracker.src/M000065.html
79
+ - doc/rdoc/classes/RFuzz/StatsTracker.src/M000066.html
80
+ - doc/rdoc/classes/RFuzz/StatsTracker.src/M000067.html
81
+ - doc/rdoc/classes/RFuzz/StatsTracker.src/M000068.html
82
+ - doc/rdoc/classes/RFuzz/StatsTracker.src/M000069.html
83
+ - doc/rdoc/classes/RFuzz/StatsTracker.src/M000070.html
88
84
  - doc/rdoc/classes/RFuzz/HttpClient.src/M000019.html
85
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000020.html
86
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000021.html
87
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000022.html
88
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000023.html
89
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000024.html
90
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000025.html
91
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000026.html
92
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000027.html
93
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000028.html
94
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000029.html
95
+ - doc/rdoc/classes/RFuzz/HttpClient.src/M000030.html
89
96
  - doc/rdoc/classes/RFuzz/HttpEncoding.src/M000008.html
90
97
  - doc/rdoc/classes/RFuzz/HttpEncoding.src/M000009.html
91
98
  - doc/rdoc/classes/RFuzz/HttpEncoding.src/M000001.html
@@ -95,49 +102,62 @@ files:
95
102
  - doc/rdoc/classes/RFuzz/HttpEncoding.src/M000005.html
96
103
  - doc/rdoc/classes/RFuzz/HttpEncoding.src/M000006.html
97
104
  - doc/rdoc/classes/RFuzz/HttpEncoding.src/M000007.html
98
- - doc/rdoc/classes/RFuzz/Session.src/M000020.html
99
- - doc/rdoc/classes/RFuzz/Session.src/M000021.html
100
- - doc/rdoc/classes/RFuzz/Session.src/M000022.html
101
- - doc/rdoc/classes/RFuzz/Session.src/M000023.html
102
- - doc/rdoc/classes/RFuzz/Session.src/M000024.html
103
- - doc/rdoc/classes/RFuzz/Session.src/M000025.html
104
- - doc/rdoc/classes/RFuzz/Session.src/M000026.html
105
- - doc/rdoc/classes/RFuzz/Session.src/M000027.html
106
- - doc/rdoc/classes/RFuzz/Session.src/M000028.html
107
- - doc/rdoc/classes/RFuzz/Session.src/M000029.html
108
- - doc/rdoc/classes/RFuzz/Session.src/M000030.html
109
- - doc/rdoc/classes/RFuzz/Session.src/M000031.html
110
- - doc/rdoc/classes/RFuzz/Sampler.src/M000056.html
111
- - doc/rdoc/classes/RFuzz/Sampler.src/M000057.html
112
- - doc/rdoc/classes/RFuzz/Sampler.src/M000058.html
113
- - doc/rdoc/classes/RFuzz/Sampler.src/M000059.html
114
- - doc/rdoc/classes/RFuzz/Sampler.src/M000060.html
115
- - doc/rdoc/classes/RFuzz/Sampler.src/M000061.html
116
- - doc/rdoc/classes/RFuzz/Sampler.src/M000062.html
117
- - doc/rdoc/classes/RFuzz/Sampler.src/M000063.html
118
- - doc/rdoc/classes/RFuzz/Sampler.src/M000064.html
119
- - doc/rdoc/classes/RFuzz/Sampler.src/M000065.html
120
- - doc/rdoc/classes/RFuzz/Sampler.src/M000066.html
121
- - doc/rdoc/classes/RFuzz/Sampler.src/M000067.html
122
- - doc/rdoc/classes/RFuzz/Notifier.src/M000044.html
123
- - doc/rdoc/classes/RFuzz/Notifier.src/M000045.html
124
- - doc/rdoc/classes/RFuzz/Notifier.src/M000046.html
125
- - doc/rdoc/classes/RFuzz/Notifier.src/M000047.html
126
- - doc/rdoc/classes/RFuzz/Notifier.src/M000048.html
127
- - doc/rdoc/classes/RFuzz/Notifier.src/M000049.html
128
- - doc/rdoc/classes/RFuzz/Browser.src/M000068.html
129
- - doc/rdoc/classes/RFuzz/Browser.src/M000069.html
130
- - doc/rdoc/classes/RFuzz/Browser.src/M000070.html
131
- - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000032.html
132
- - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000033.html
133
- - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000036.html
134
- - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000037.html
135
- - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000038.html
136
- - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000039.html
137
- - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000040.html
138
- - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000041.html
139
- - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000042.html
140
- - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000043.html
105
+ - doc/rdoc/classes/RFuzz/Session.src/M000034.html
106
+ - doc/rdoc/classes/RFuzz/Session.src/M000035.html
107
+ - doc/rdoc/classes/RFuzz/Session.src/M000036.html
108
+ - doc/rdoc/classes/RFuzz/Session.src/M000037.html
109
+ - doc/rdoc/classes/RFuzz/Session.src/M000038.html
110
+ - doc/rdoc/classes/RFuzz/Session.src/M000039.html
111
+ - doc/rdoc/classes/RFuzz/Session.src/M000040.html
112
+ - doc/rdoc/classes/RFuzz/Session.src/M000041.html
113
+ - doc/rdoc/classes/RFuzz/Session.src/M000042.html
114
+ - doc/rdoc/classes/RFuzz/Session.src/M000043.html
115
+ - doc/rdoc/classes/RFuzz/Session.src/M000044.html
116
+ - doc/rdoc/classes/RFuzz/Session.src/M000045.html
117
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000076.html
118
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000077.html
119
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000078.html
120
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000079.html
121
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000080.html
122
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000081.html
123
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000082.html
124
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000071.html
125
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000072.html
126
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000073.html
127
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000074.html
128
+ - doc/rdoc/classes/RFuzz/Sampler.src/M000075.html
129
+ - doc/rdoc/classes/RFuzz/PushBackIO.src/M000010.html
130
+ - doc/rdoc/classes/RFuzz/PushBackIO.src/M000011.html
131
+ - doc/rdoc/classes/RFuzz/PushBackIO.src/M000012.html
132
+ - doc/rdoc/classes/RFuzz/PushBackIO.src/M000013.html
133
+ - doc/rdoc/classes/RFuzz/PushBackIO.src/M000014.html
134
+ - doc/rdoc/classes/RFuzz/PushBackIO.src/M000015.html
135
+ - doc/rdoc/classes/RFuzz/PushBackIO.src/M000016.html
136
+ - doc/rdoc/classes/RFuzz/PushBackIO.src/M000017.html
137
+ - doc/rdoc/classes/RFuzz/PushBackIO.src/M000018.html
138
+ - doc/rdoc/classes/RFuzz/Notifier.src/M000058.html
139
+ - doc/rdoc/classes/RFuzz/Notifier.src/M000059.html
140
+ - doc/rdoc/classes/RFuzz/Notifier.src/M000060.html
141
+ - doc/rdoc/classes/RFuzz/Notifier.src/M000061.html
142
+ - doc/rdoc/classes/RFuzz/Notifier.src/M000062.html
143
+ - doc/rdoc/classes/RFuzz/Notifier.src/M000063.html
144
+ - doc/rdoc/classes/RFuzz/Notifier.src/M000064.html
145
+ - doc/rdoc/classes/RFuzz/HttpResponse.src/M000031.html
146
+ - doc/rdoc/classes/RFuzz/HttpResponse.src/M000032.html
147
+ - doc/rdoc/classes/RFuzz/HttpResponse.src/M000033.html
148
+ - doc/rdoc/classes/RFuzz/Browser.src/M000083.html
149
+ - doc/rdoc/classes/RFuzz/Browser.src/M000084.html
150
+ - doc/rdoc/classes/RFuzz/Browser.src/M000085.html
151
+ - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000046.html
152
+ - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000047.html
153
+ - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000050.html
154
+ - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000051.html
155
+ - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000052.html
156
+ - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000053.html
157
+ - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000054.html
158
+ - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000055.html
159
+ - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000056.html
160
+ - doc/rdoc/classes/RFuzz/RandomGenerator.src/M000057.html
141
161
  - ext/http11_client/http11_parser.h
142
162
  - ext/http11_client/ext_help.h
143
163
  - ext/fuzzrnd/ext_help.h
@@ -146,6 +166,7 @@ files:
146
166
  - ext/fuzzrnd/fuzzrnd.c
147
167
  - ext/http11_client/extconf.rb
148
168
  - ext/fuzzrnd/extconf.rb
169
+ - examples/rails_security_test.rb
149
170
  - examples/cl_watcher.rb
150
171
  - examples/kill_routes.rb
151
172
  - examples/perftest.rb
@@ -169,8 +190,12 @@ files:
169
190
  - examples/mongrel_test_suite/test/http/connections.rb
170
191
  - examples/mongrel_test_suite/test/nitro/upload_file.rb
171
192
  - examples/mongrel_test_suite/test/nitro/upload_progress.rb
193
+ - examples/mongrel_test_suite/test/rails/catastrophe.rb
172
194
  - examples/mongrel_test_suite/test/rails/upload_file.rb
195
+ - examples/mongrel_test_suite/test/rails/redirect.rb
196
+ - examples/mongrel_test_suite/test/rails/conditional.rb
173
197
  - examples/mongrel_test_suite/test/rails/static_files.rb
198
+ - examples/mongrel_test_suite/test/rails/put.rb
174
199
  - examples/mongrel_test_suite/test/rails/upload_progress.rb
175
200
  - examples/mongrel_test_suite/test/camping/upload_file.rb
176
201
  - examples/mongrel_test_suite/test/camping/static_files.rb
@@ -179,6 +204,7 @@ files:
179
204
  - lib/rfuzz/browser.rb
180
205
  - lib/rfuzz/rfuzz.rb
181
206
  - lib/rfuzz/random.rb
207
+ - lib/rfuzz/pushbackio.rb
182
208
  - lib/rfuzz/client.rb
183
209
  - lib/rfuzz/stats.rb
184
210
  - lib/rfuzz/session.rb
@@ -1,24 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>new (RFuzz::HttpClient)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 214</span>
14
- 214: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">port</span>, <span class="ruby-identifier">options</span> = {})
15
- 215: <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">options</span>
16
- 216: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">host</span>
17
- 217: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">port</span>
18
- 218: <span class="ruby-ivar">@cookies</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:cookies</span>] <span class="ruby-operator">||</span> {}
19
- 219: <span class="ruby-ivar">@allowed_methods</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:allowed_methods</span>] <span class="ruby-operator">||</span> [<span class="ruby-identifier">:put</span>, <span class="ruby-identifier">:get</span>, <span class="ruby-identifier">:post</span>, <span class="ruby-identifier">:delete</span>, <span class="ruby-identifier">:head</span>]
20
- 220: <span class="ruby-ivar">@notifier</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:notifier</span>]
21
- 221: <span class="ruby-ivar">@redirect</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:redirect</span>] <span class="ruby-operator">||</span> <span class="ruby-keyword kw">false</span>
22
- 222: <span class="ruby-keyword kw">end</span></pre>
23
- </body>
24
- </html>
@@ -1,50 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>read_chunks (RFuzz::HttpClient)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 250</span>
14
- 250: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_chunks</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">out</span>, <span class="ruby-identifier">parser</span>)
15
- 251: <span class="ruby-keyword kw">begin</span>
16
- 252: <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">input</span>.<span class="ruby-identifier">closed?</span>
17
- 253: <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">reset</span>
18
- 254: <span class="ruby-identifier">chunk</span> = <span class="ruby-constant">HttpResponse</span>.<span class="ruby-identifier">new</span>
19
- 255: <span class="ruby-identifier">line</span> = <span class="ruby-identifier">input</span>.<span class="ruby-identifier">readline</span>(<span class="ruby-value str">&quot;\r\n&quot;</span>)
20
- 256: <span class="ruby-identifier">nread</span> = <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">execute</span>(<span class="ruby-identifier">chunk</span>, <span class="ruby-identifier">line</span>, <span class="ruby-value">0</span>)
21
- 257:
22
- 258: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">parser</span>.<span class="ruby-identifier">finished?</span>
23
- 259: <span class="ruby-comment cmt"># tried to read this header but couldn't</span>
24
- 260: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">:incomplete_header</span>, <span class="ruby-identifier">line</span>
25
- 261: <span class="ruby-keyword kw">end</span>
26
- 262:
27
- 263: <span class="ruby-identifier">size</span> = <span class="ruby-identifier">chunk</span>.<span class="ruby-identifier">http_chunk_size</span> <span class="ruby-value">? </span><span class="ruby-identifier">chunk</span>.<span class="ruby-identifier">http_chunk_size</span>.<span class="ruby-identifier">to_i</span>(<span class="ruby-identifier">base</span>=<span class="ruby-value">16</span>) <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
28
- 264:
29
- 265: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
30
- 266: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">:finished</span>, <span class="ruby-keyword kw">nil</span>
31
- 267: <span class="ruby-keyword kw">end</span>
32
- 268:
33
- 269: <span class="ruby-identifier">remain</span> = <span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">out</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">input</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">size</span>))
34
- 270: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">:incomplete_body</span>, <span class="ruby-identifier">remain</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">remain</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
35
- 271:
36
- 272: <span class="ruby-identifier">line</span> = <span class="ruby-identifier">input</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">2</span>)
37
- 273: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">2</span>
38
- 274: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">:incomplete_trailer</span>, <span class="ruby-identifier">line</span>
39
- 275: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">&quot;\r\n&quot;</span>
40
- 276: <span class="ruby-identifier">raise</span> <span class="ruby-constant">HttpClientParserError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;invalid chunked encoding trailer&quot;</span>)
41
- 277: <span class="ruby-keyword kw">end</span>
42
- 278: <span class="ruby-keyword kw">end</span>
43
- 279: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">EOFError</span>
44
- 280: <span class="ruby-comment cmt"># this is thrown when the header read is attempted and </span>
45
- 281: <span class="ruby-comment cmt"># there's nothing in the buffer</span>
46
- 282: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">:eof_error</span>, <span class="ruby-keyword kw">nil</span>
47
- 283: <span class="ruby-keyword kw">end</span>
48
- 284: <span class="ruby-keyword kw">end</span></pre>
49
- </body>
50
- </html>
@@ -1,49 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>read_chunked_encoding (RFuzz::HttpClient)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 286</span>
14
- 286: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_chunked_encoding</span>(<span class="ruby-identifier">resp</span>, <span class="ruby-identifier">sock</span>, <span class="ruby-identifier">parser</span>)
15
- 287: <span class="ruby-identifier">out</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
16
- 288: <span class="ruby-identifier">input</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">resp</span>.<span class="ruby-identifier">http_body</span>)
17
- 289:
18
- 290: <span class="ruby-comment cmt"># read from the http body first, then continue at the socket</span>
19
- 291: <span class="ruby-identifier">status</span>, <span class="ruby-identifier">result</span> = <span class="ruby-identifier">read_chunks</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">out</span>, <span class="ruby-identifier">parser</span>)
20
- 292:
21
- 293: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">status</span>
22
- 294: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:incomplete_trailer</span>
23
- 295: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">nil?</span>
24
- 296: <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">2</span>)
25
- 297: <span class="ruby-keyword kw">else</span>
26
- 298: <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">read</span>((<span class="ruby-identifier">result</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>).<span class="ruby-identifier">abs</span>)
27
- 299: <span class="ruby-keyword kw">end</span>
28
- 300: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:incomplete_body</span>
29
- 301: <span class="ruby-identifier">out</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">sock</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">result</span>)) <span class="ruby-comment cmt"># read the remaining</span>
30
- 302: <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">2</span>)
31
- 303: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:incomplete_header</span>
32
- 304: <span class="ruby-comment cmt"># push what we read back onto the socket, but backwards</span>
33
- 305: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">reverse!</span>
34
- 306: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">each_byte</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">ungetc</span>(<span class="ruby-identifier">b</span>) }
35
- 307: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:finished</span>
36
- 308: <span class="ruby-comment cmt"># all done, get out</span>
37
- 309: <span class="ruby-identifier">out</span>.<span class="ruby-identifier">rewind</span>; <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">out</span>.<span class="ruby-identifier">read</span>
38
- 310: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:eof_error</span>
39
- 311: <span class="ruby-comment cmt"># read everything we could, ignore</span>
40
- 312: <span class="ruby-keyword kw">end</span>
41
- 313:
42
- 314: <span class="ruby-comment cmt"># then continue reading them from the socket</span>
43
- 315: <span class="ruby-identifier">status</span>, <span class="ruby-identifier">result</span> = <span class="ruby-identifier">read_chunks</span>(<span class="ruby-identifier">sock</span>, <span class="ruby-identifier">out</span>, <span class="ruby-identifier">parser</span>)
44
- 316:
45
- 317: <span class="ruby-comment cmt"># and now the http_body is the chunk</span>
46
- 318: <span class="ruby-identifier">out</span>.<span class="ruby-identifier">rewind</span>; <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">out</span>.<span class="ruby-identifier">read</span>
47
- 319: <span class="ruby-keyword kw">end</span></pre>
48
- </body>
49
- </html>
@@ -1,57 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>read_response (RFuzz::HttpClient)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 328</span>
14
- 328: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_response</span>(<span class="ruby-identifier">sock</span>)
15
- 329: <span class="ruby-identifier">data</span>, <span class="ruby-identifier">resp</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>
16
- 330: <span class="ruby-identifier">parser</span> = <span class="ruby-constant">HttpClientParser</span>.<span class="ruby-identifier">new</span>
17
- 331: <span class="ruby-identifier">resp</span> = <span class="ruby-constant">HttpResponse</span>.<span class="ruby-identifier">new</span>
18
- 332:
19
- 333: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:read_header</span> <span class="ruby-keyword kw">do</span>
20
- 334: <span class="ruby-identifier">data</span> = <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">readpartial</span>(<span class="ruby-value">1024</span>)
21
- 335: <span class="ruby-identifier">nread</span> = <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">execute</span>(<span class="ruby-identifier">resp</span>, <span class="ruby-identifier">data</span>, <span class="ruby-value">0</span>)
22
- 336:
23
- 337: <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">finished?</span>
24
- 338: <span class="ruby-identifier">data</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">readpartial</span>(<span class="ruby-value">1024</span>)
25
- 339: <span class="ruby-identifier">nread</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">execute</span>(<span class="ruby-identifier">resp</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">nread</span>)
26
- 340: <span class="ruby-keyword kw">end</span>
27
- 341: <span class="ruby-keyword kw">end</span>
28
- 342:
29
- 343: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:read_body</span> <span class="ruby-keyword kw">do</span>
30
- 344: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>[<span class="ruby-constant">TRANSFER_ENCODING</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">resp</span>[<span class="ruby-constant">TRANSFER_ENCODING</span>].<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;chunked&quot;</span>)
31
- 345: <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">http_body</span> = <span class="ruby-identifier">read_chunked_encoding</span>(<span class="ruby-identifier">resp</span>, <span class="ruby-identifier">sock</span>, <span class="ruby-identifier">parser</span>)
32
- 346: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">resp</span>[<span class="ruby-constant">CONTENT_LENGTH</span>]
33
- 347: <span class="ruby-identifier">cl</span> = <span class="ruby-identifier">resp</span>[<span class="ruby-constant">CONTENT_LENGTH</span>].<span class="ruby-identifier">to_i</span>
34
- 348: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cl</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">http_body</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
35
- 349: <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">http_body</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">cl</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">http_body</span>.<span class="ruby-identifier">length</span>)
36
- 350: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">cl</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">http_body</span>.<span class="ruby-identifier">length</span>
37
- 351: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Web site sucks, they said Content-Length: #{cl}, but sent a longer body length: #{resp.http_body.length}&quot;</span>
38
- 352: <span class="ruby-keyword kw">end</span>
39
- 353: <span class="ruby-keyword kw">else</span>
40
- 354: <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">http_body</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">read</span>
41
- 355: <span class="ruby-keyword kw">end</span>
42
- 356: <span class="ruby-keyword kw">end</span>
43
- 357:
44
- 358: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>[<span class="ruby-constant">SET_COOKIE</span>]
45
- 359: <span class="ruby-identifier">cookies</span> = <span class="ruby-identifier">query_parse</span>(<span class="ruby-identifier">resp</span>[<span class="ruby-constant">SET_COOKIE</span>], <span class="ruby-value str">';,'</span>)
46
- 360: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span> <span class="ruby-identifier">cookies</span>
47
- 361: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">delete</span> <span class="ruby-value str">&quot;path&quot;</span>
48
- 362: <span class="ruby-keyword kw">end</span>
49
- 363:
50
- 364: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:close</span> <span class="ruby-keyword kw">do</span>
51
- 365: <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">close</span>
52
- 366: <span class="ruby-keyword kw">end</span>
53
- 367:
54
- 368: <span class="ruby-identifier">resp</span>
55
- 369: <span class="ruby-keyword kw">end</span></pre>
56
- </body>
57
- </html>
@@ -1,37 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>send_request (RFuzz::HttpClient)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/client.rb, line 373</span>
14
- 373: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_request</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">req</span>)
15
- 374: <span class="ruby-keyword kw">begin</span>
16
- 375: <span class="ruby-identifier">sock</span> = <span class="ruby-keyword kw">nil</span>
17
- 376: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:connect</span> <span class="ruby-keyword kw">do</span>
18
- 377: <span class="ruby-identifier">sock</span> = <span class="ruby-constant">TCPSocket</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@host</span>, <span class="ruby-ivar">@port</span>)
19
- 378: <span class="ruby-keyword kw">end</span>
20
- 379:
21
- 380: <span class="ruby-identifier">out</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
22
- 381: <span class="ruby-identifier">body</span> = <span class="ruby-identifier">build_request</span>(<span class="ruby-identifier">out</span>, <span class="ruby-identifier">method</span>, <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">req</span>)
23
- 382:
24
- 383: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:send_request</span> <span class="ruby-keyword kw">do</span>
25
- 384: <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">out</span>.<span class="ruby-identifier">string</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">body</span>)
26
- 385: <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">flush</span>
27
- 386: <span class="ruby-keyword kw">end</span>
28
- 387:
29
- 388: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">read_response</span>(<span class="ruby-identifier">sock</span>)
30
- 389: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Object</span>
31
- 390: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">$!</span>
32
- 391: <span class="ruby-keyword kw">ensure</span>
33
- 392: <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">sock</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">sock</span>.<span class="ruby-identifier">closed?</span>)
34
- 393: <span class="ruby-keyword kw">end</span>
35
- 394: <span class="ruby-keyword kw">end</span></pre>
36
- </body>
37
- </html>