passenger 5.0.4 → 5.0.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (550) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.editorconfig +10 -0
  5. data/CHANGELOG +21 -0
  6. data/build/agents.rb +2 -2
  7. data/build/apache2.rb +6 -5
  8. data/build/common_library.rb +22 -7
  9. data/build/cxx_tests.rb +0 -3
  10. data/build/misc.rb +1 -1
  11. data/dev/parse_file_descriptor_log +119 -0
  12. data/doc/CloudLicensingConfiguration.html +387 -0
  13. data/doc/Design and Architecture.html +2430 -0
  14. data/doc/Packaging.html +488 -0
  15. data/doc/Security of user switching support.html +1833 -0
  16. data/doc/ServerOptimizationGuide.html +659 -0
  17. data/doc/ServerOptimizationGuide.txt.md +8 -0
  18. data/doc/Users guide Apache.html +9116 -0
  19. data/doc/Users guide Apache.idmap.txt +6 -2
  20. data/doc/Users guide Apache.txt +26 -7
  21. data/doc/Users guide Nginx.html +9025 -0
  22. data/doc/Users guide Nginx.idmap.txt +7 -3
  23. data/doc/Users guide Nginx.txt +29 -6
  24. data/doc/Users guide Standalone.html +3983 -0
  25. data/doc/Users guide.html +1748 -0
  26. data/doc/users_guide_snippets/installation.txt +4 -4
  27. data/ext/apache2/Configuration.cpp +16 -5
  28. data/ext/apache2/Configuration.hpp +4 -2
  29. data/ext/apache2/Hooks.cpp +44 -19
  30. data/ext/boost/libs/thread/src/pthread/once.cpp +2 -0
  31. data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +6 -0
  32. data/ext/common/AgentsStarter.h +3 -2
  33. data/ext/common/ApplicationPool2/DirectSpawner.h +14 -4
  34. data/ext/common/ApplicationPool2/DummySpawner.h +12 -7
  35. data/ext/common/ApplicationPool2/Implementation.cpp +1 -1
  36. data/ext/common/ApplicationPool2/Process.h +2 -1
  37. data/ext/common/ApplicationPool2/Session.h +6 -6
  38. data/ext/common/ApplicationPool2/SmartSpawner.h +19 -4
  39. data/ext/common/ApplicationPool2/Socket.h +59 -27
  40. data/ext/common/ApplicationPool2/Spawner.h +2 -2
  41. data/ext/common/BackgroundEventLoop.cpp +6 -1
  42. data/ext/common/Constants.h +1 -1
  43. data/ext/common/EventedClient.h +1 -1
  44. data/ext/common/EventedServer.h +2 -2
  45. data/ext/common/FileDescriptor.h +25 -6
  46. data/ext/common/Logging.cpp +107 -52
  47. data/ext/common/Logging.h +146 -19
  48. data/ext/common/MessageClient.h +2 -2
  49. data/ext/common/MessageServer.h +3 -2
  50. data/ext/common/RandomGenerator.h +8 -7
  51. data/ext/common/SafeLibev.h +5 -1
  52. data/ext/common/ServerKit/AcceptLoadBalancer.h +9 -4
  53. data/ext/common/ServerKit/FdSinkChannel.h +5 -2
  54. data/ext/common/ServerKit/FdSourceChannel.h +5 -2
  55. data/ext/common/ServerKit/FileBufferedChannel.h +2 -0
  56. data/ext/common/ServerKit/FileBufferedFdSinkChannel.h +7 -2
  57. data/ext/common/ServerKit/HttpServer.h +6 -0
  58. data/ext/common/ServerKit/Server.h +40 -3
  59. data/ext/common/StaticString.h +20 -0
  60. data/ext/common/UnionStation/Connection.h +3 -1
  61. data/ext/common/UnionStation/Core.h +6 -4
  62. data/ext/common/Utils.cpp +4 -3
  63. data/ext/common/Utils/DateParsing.h +19 -5
  64. data/ext/common/Utils/FastStringStream.h +183 -0
  65. data/ext/common/Utils/IOUtils.cpp +47 -28
  66. data/ext/common/Utils/IOUtils.h +56 -12
  67. data/ext/common/Utils/MessagePassing.h +3 -3
  68. data/ext/common/Utils/ProcessMetricsCollector.h +2 -2
  69. data/ext/common/Utils/ScopeGuard.h +16 -5
  70. data/ext/common/Utils/SpeedMeter.h +2 -2
  71. data/ext/common/Utils/StrIntUtils.cpp +6 -6
  72. data/ext/common/Utils/StrIntUtils.h +2 -1
  73. data/ext/common/agents/Base.cpp +56 -4
  74. data/ext/common/agents/Base.h +2 -1
  75. data/ext/common/agents/HelperAgent/AdminServer.h +122 -11
  76. data/ext/common/agents/HelperAgent/Main.cpp +16 -5
  77. data/ext/common/agents/HelperAgent/OptionParser.h +7 -1
  78. data/ext/common/agents/HelperAgent/RequestHandler.h +1 -1
  79. data/ext/common/agents/HelperAgent/RequestHandler/Hooks.cpp +10 -1
  80. data/ext/common/agents/HelperAgent/RequestHandler/Request.h +8 -0
  81. data/ext/common/agents/HelperAgent/RequestHandler/TurboCaching.h +4 -3
  82. data/ext/common/agents/LoggingAgent/AdminServer.h +57 -11
  83. data/ext/common/agents/LoggingAgent/LoggingServer.h +3 -3
  84. data/ext/common/agents/LoggingAgent/Main.cpp +11 -3
  85. data/ext/common/agents/Watchdog/AdminServer.h +53 -11
  86. data/ext/common/agents/Watchdog/AgentWatcher.cpp +3 -3
  87. data/ext/common/agents/Watchdog/Main.cpp +13 -6
  88. data/ext/libeio/ecb.h +1 -1
  89. data/ext/libev/ev.c +13 -1
  90. data/ext/libev/ev.h +3 -0
  91. data/ext/nginx/Configuration.c +28 -6
  92. data/ext/nginx/Configuration.h +2 -1
  93. data/ext/nginx/ngx_http_passenger_module.c +5 -4
  94. data/ext/oxt/dynamic_thread_group.hpp +38 -5
  95. data/lib/phusion_passenger.rb +1 -1
  96. data/lib/phusion_passenger/common_library.rb +9 -5
  97. data/lib/phusion_passenger/config/reopen_logs_command.rb +2 -2
  98. data/lib/phusion_passenger/packaging.rb +23 -37
  99. data/passenger.gemspec +21 -21
  100. metadata +4 -453
  101. metadata.gz.asc +7 -7
  102. data/.gitignore +0 -68
  103. data/.travis.yml +0 -16
  104. data/Gemfile +0 -17
  105. data/Gemfile.lock +0 -39
  106. data/Vagrantfile +0 -54
  107. data/debian.template/README.Debian +0 -15
  108. data/debian.template/changelog +0 -316
  109. data/debian.template/compat +0 -1
  110. data/debian.template/control.erb +0 -91
  111. data/debian.template/copyright +0 -385
  112. data/debian.template/libapache2-mod-passenger.install +0 -3
  113. data/debian.template/libapache2-mod-passenger.postinst +0 -36
  114. data/debian.template/libapache2-mod-passenger.prerm +0 -15
  115. data/debian.template/locations.ini.erb +0 -14
  116. data/debian.template/passenger-dev.install.erb +0 -3
  117. data/debian.template/passenger-doc.install.erb +0 -2
  118. data/debian.template/passenger.conf +0 -6
  119. data/debian.template/passenger.docs +0 -4
  120. data/debian.template/passenger.install.erb +0 -14
  121. data/debian.template/passenger.load +0 -3
  122. data/debian.template/passenger.manpages +0 -3
  123. data/debian.template/patches/series +0 -0
  124. data/debian.template/rules.erb +0 -76
  125. data/debian.template/source/format +0 -1
  126. data/ext/common/EventedBufferedInput.h +0 -458
  127. data/packaging/rpm/LICENSE.txt +0 -19
  128. data/packaging/rpm/Makefile +0 -13
  129. data/packaging/rpm/README.md +0 -41
  130. data/packaging/rpm/Vagrantfile +0 -38
  131. data/packaging/rpm/Vagrantfile.centos +0 -30
  132. data/packaging/rpm/build +0 -170
  133. data/packaging/rpm/create_project +0 -41
  134. data/packaging/rpm/git_update +0 -88
  135. data/packaging/rpm/image/Dockerfile +0 -37
  136. data/packaging/rpm/image/Gemfile +0 -3
  137. data/packaging/rpm/image/Gemfile.lock +0 -12
  138. data/packaging/rpm/image/RPM-GPG-KEY-amazon-ga +0 -19
  139. data/packaging/rpm/image/amazon2014-i386.cfg +0 -96
  140. data/packaging/rpm/image/amazon2014-x86_64.cfg +0 -96
  141. data/packaging/rpm/image/site-defaults.cfg +0 -168
  142. data/packaging/rpm/internal/build_tasks.rb +0 -238
  143. data/packaging/rpm/internal/dummygpg +0 -11
  144. data/packaging/rpm/internal/exec_build +0 -42
  145. data/packaging/rpm/internal/get_distro_arch +0 -14
  146. data/packaging/rpm/internal/get_distro_id +0 -10
  147. data/packaging/rpm/internal/git_update +0 -27
  148. data/packaging/rpm/internal/inituidgid +0 -17
  149. data/packaging/rpm/internal/my_init +0 -344
  150. data/packaging/rpm/internal/python27 +0 -3
  151. data/packaging/rpm/internal/repo_update +0 -46
  152. data/packaging/rpm/internal/setuser +0 -26
  153. data/packaging/rpm/internal/tracking_helper +0 -40
  154. data/packaging/rpm/jenkins_release +0 -99
  155. data/packaging/rpm/lib/build_tasks_support.rb +0 -402
  156. data/packaging/rpm/lib/preprocessor.rb +0 -341
  157. data/packaging/rpm/nginx_spec/404.html +0 -119
  158. data/packaging/rpm/nginx_spec/50x.html +0 -119
  159. data/packaging/rpm/nginx_spec/index.html +0 -116
  160. data/packaging/rpm/nginx_spec/nginx-auto-cc-gcc.patch +0 -13
  161. data/packaging/rpm/nginx_spec/nginx-logo.png +0 -0
  162. data/packaging/rpm/nginx_spec/nginx-upgrade +0 -13
  163. data/packaging/rpm/nginx_spec/nginx-upgrade.8 +0 -151
  164. data/packaging/rpm/nginx_spec/nginx.conf +0 -131
  165. data/packaging/rpm/nginx_spec/nginx.init +0 -144
  166. data/packaging/rpm/nginx_spec/nginx.logrotate +0 -13
  167. data/packaging/rpm/nginx_spec/nginx.service +0 -15
  168. data/packaging/rpm/nginx_spec/nginx.spec.template +0 -560
  169. data/packaging/rpm/nginx_spec/nginx.sysconfig +0 -4
  170. data/packaging/rpm/nginx_spec/passenger.conf +0 -9
  171. data/packaging/rpm/nginx_spec/poweredby.png +0 -0
  172. data/packaging/rpm/passenger_spec/apache-passenger.conf.in +0 -26
  173. data/packaging/rpm/passenger_spec/config.json +0 -30
  174. data/packaging/rpm/passenger_spec/passenger.logrotate +0 -7
  175. data/packaging/rpm/passenger_spec/passenger.spec.template +0 -478
  176. data/packaging/rpm/passenger_spec/passenger_dynamic_thread_group.patch +0 -16
  177. data/packaging/rpm/passenger_spec/passenger_tests_default_config_example.patch +0 -44
  178. data/packaging/rpm/passenger_spec/rubygem-passenger-4.0.18-GLIBC_HAVE_LONG_LONG.patch +0 -21
  179. data/packaging/rpm/repo_update +0 -114
  180. data/packaging/rpm/setup-system +0 -61
  181. data/packaging/rpm/shell +0 -10
  182. data/test/.rspec +0 -4
  183. data/test/config.json.example +0 -42
  184. data/test/config.json.rpm-automation +0 -15
  185. data/test/config.json.travis +0 -15
  186. data/test/config.json.vagrant +0 -30
  187. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +0 -124
  188. data/test/cxx/ApplicationPool2/OptionsTest.cpp +0 -30
  189. data/test/cxx/ApplicationPool2/PoolTest.cpp +0 -2062
  190. data/test/cxx/ApplicationPool2/ProcessTest.cpp +0 -130
  191. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +0 -243
  192. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +0 -823
  193. data/test/cxx/BufferedIOTest.cpp +0 -364
  194. data/test/cxx/CachedFileStatTest.cpp +0 -402
  195. data/test/cxx/CxxTestMain.cpp +0 -181
  196. data/test/cxx/DataStructures/LStringTest.cpp +0 -275
  197. data/test/cxx/DataStructures/StringKeyTableTest.cpp +0 -199
  198. data/test/cxx/DateParsingTest.cpp +0 -75
  199. data/test/cxx/DechunkerTest.cpp +0 -250
  200. data/test/cxx/EventedBufferedInputTest.cpp +0 -758
  201. data/test/cxx/EventedClientTest.cpp +0 -523
  202. data/test/cxx/FileChangeCheckerTest.cpp +0 -331
  203. data/test/cxx/FileDescriptorTest.cpp +0 -69
  204. data/test/cxx/FilterSupportTest.cpp +0 -433
  205. data/test/cxx/IOUtilsTest.cpp +0 -861
  206. data/test/cxx/MemoryKit/MbufTest.cpp +0 -213
  207. data/test/cxx/MessageIOTest.cpp +0 -360
  208. data/test/cxx/MessagePassingTest.cpp +0 -81
  209. data/test/cxx/MessageReadersWritersTest.cpp +0 -576
  210. data/test/cxx/MessageServerTest.cpp +0 -393
  211. data/test/cxx/ProcessMetricsCollectorTest.cpp +0 -123
  212. data/test/cxx/RequestHandlerTest.cpp +0 -1463
  213. data/test/cxx/ResponseCacheTest.cpp +0 -322
  214. data/test/cxx/ServerKit/ChannelTest.cpp +0 -1467
  215. data/test/cxx/ServerKit/CookieUtilsTest.cpp +0 -274
  216. data/test/cxx/ServerKit/FileBufferedChannelTest.cpp +0 -992
  217. data/test/cxx/ServerKit/HeaderTableTest.cpp +0 -177
  218. data/test/cxx/ServerKit/HttpServerTest.cpp +0 -1580
  219. data/test/cxx/ServerKit/ServerTest.cpp +0 -408
  220. data/test/cxx/StaticStringTest.cpp +0 -220
  221. data/test/cxx/StringMapTest.cpp +0 -131
  222. data/test/cxx/SystemTimeTest.cpp +0 -37
  223. data/test/cxx/TemplateTest.cpp +0 -118
  224. data/test/cxx/TestSupport.cpp +0 -207
  225. data/test/cxx/TestSupport.h +0 -333
  226. data/test/cxx/UnionStationTest.cpp +0 -741
  227. data/test/cxx/Utils/StrIntUtilsTest.cpp +0 -39
  228. data/test/cxx/UtilsTest.cpp +0 -672
  229. data/test/cxx/VariantMapTest.cpp +0 -191
  230. data/test/gdbinit.example +0 -34
  231. data/test/integration_tests/apache2_tests.rb +0 -585
  232. data/test/integration_tests/downloaded_binaries_tests.rb +0 -185
  233. data/test/integration_tests/native_packaging_spec.rb +0 -368
  234. data/test/integration_tests/nginx_tests.rb +0 -402
  235. data/test/integration_tests/shared/example_webapp_tests.rb +0 -289
  236. data/test/integration_tests/source_packaging_test.rb +0 -201
  237. data/test/integration_tests/spec_helper.rb +0 -22
  238. data/test/integration_tests/standalone_tests.rb +0 -392
  239. data/test/node/line_reader_spec.js +0 -338
  240. data/test/node/spec_helper.js +0 -65
  241. data/test/oxt/backtrace_test.cpp +0 -88
  242. data/test/oxt/counter.hpp +0 -55
  243. data/test/oxt/dynamic_thread_group_test.cpp +0 -131
  244. data/test/oxt/oxt_test_main.cpp +0 -27
  245. data/test/oxt/spin_lock_test.cpp +0 -59
  246. data/test/oxt/syscall_interruption_test.cpp +0 -39
  247. data/test/ruby/debug_logging_spec.rb +0 -145
  248. data/test/ruby/message_channel_spec.rb +0 -196
  249. data/test/ruby/rack/loader_spec.rb +0 -42
  250. data/test/ruby/rack/preloader_spec.rb +0 -48
  251. data/test/ruby/rails3.0/loader_spec.rb +0 -26
  252. data/test/ruby/rails3.0/preloader_spec.rb +0 -32
  253. data/test/ruby/rails3.1/loader_spec.rb +0 -26
  254. data/test/ruby/rails3.1/preloader_spec.rb +0 -32
  255. data/test/ruby/rails3.2/loader_spec.rb +0 -26
  256. data/test/ruby/rails3.2/preloader_spec.rb +0 -32
  257. data/test/ruby/rails4.0/loader_spec.rb +0 -28
  258. data/test/ruby/rails4.0/preloader_spec.rb +0 -34
  259. data/test/ruby/rails4.1/loader_spec.rb +0 -28
  260. data/test/ruby/rails4.1/preloader_spec.rb +0 -34
  261. data/test/ruby/request_handler_spec.rb +0 -747
  262. data/test/ruby/shared/loader_sharedspec.rb +0 -247
  263. data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +0 -357
  264. data/test/ruby/shared/ruby_loader_sharedspec.rb +0 -55
  265. data/test/ruby/spec_helper.rb +0 -114
  266. data/test/ruby/standalone/runtime_installer_spec.rb +0 -402
  267. data/test/ruby/union_station_spec.rb +0 -288
  268. data/test/ruby/utils/file_system_watcher_spec.rb +0 -229
  269. data/test/ruby/utils/hosts_file_parser.rb +0 -258
  270. data/test/ruby/utils/tee_input_spec.rb +0 -235
  271. data/test/ruby/utils/unseekable_socket_spec.rb +0 -66
  272. data/test/ruby/utils_spec.rb +0 -41
  273. data/test/stub/apache2/httpd.conf.erb +0 -122
  274. data/test/stub/apache2/mime.types +0 -748
  275. data/test/stub/garbage1.dat +0 -0
  276. data/test/stub/garbage2.dat +0 -0
  277. data/test/stub/garbage3.dat +0 -0
  278. data/test/stub/http_request.yml +0 -23
  279. data/test/stub/index.html +0 -1
  280. data/test/stub/nginx/koi-utf +0 -109
  281. data/test/stub/nginx/koi-win +0 -103
  282. data/test/stub/nginx/mime.types +0 -70
  283. data/test/stub/nginx/nginx.conf.erb +0 -70
  284. data/test/stub/nginx/win-utf +0 -126
  285. data/test/stub/node/app.js +0 -133
  286. data/test/stub/node/public/.gitignore +0 -0
  287. data/test/stub/node/tmp/.gitignore +0 -0
  288. data/test/stub/rack/config.ru +0 -95
  289. data/test/stub/rack/library.rb +0 -16
  290. data/test/stub/rack/public/.gitignore +0 -0
  291. data/test/stub/rack/start.rb +0 -52
  292. data/test/stub/rack/tmp/.gitignore +0 -0
  293. data/test/stub/rails3.0/.gitignore +0 -4
  294. data/test/stub/rails3.0/Gemfile +0 -22
  295. data/test/stub/rails3.0/Gemfile.lock +0 -80
  296. data/test/stub/rails3.0/Rakefile +0 -10
  297. data/test/stub/rails3.0/app/controllers/application_controller.rb +0 -4
  298. data/test/stub/rails3.0/app/helpers/application_helper.rb +0 -2
  299. data/test/stub/rails3.0/app/views/layouts/application.html.erb +0 -14
  300. data/test/stub/rails3.0/config.ru +0 -4
  301. data/test/stub/rails3.0/config/application.rb +0 -48
  302. data/test/stub/rails3.0/config/boot.rb +0 -13
  303. data/test/stub/rails3.0/config/database.yml +0 -22
  304. data/test/stub/rails3.0/config/environment.rb +0 -5
  305. data/test/stub/rails3.0/config/environments/development.rb +0 -19
  306. data/test/stub/rails3.0/config/environments/production.rb +0 -48
  307. data/test/stub/rails3.0/config/environments/test.rb +0 -32
  308. data/test/stub/rails3.0/config/initializers/backtrace_silencers.rb +0 -7
  309. data/test/stub/rails3.0/config/initializers/inflections.rb +0 -10
  310. data/test/stub/rails3.0/config/initializers/mime_types.rb +0 -5
  311. data/test/stub/rails3.0/config/initializers/passenger.rb +0 -2
  312. data/test/stub/rails3.0/config/initializers/secret_token.rb +0 -7
  313. data/test/stub/rails3.0/config/initializers/session_store.rb +0 -8
  314. data/test/stub/rails3.0/config/locales/en.yml +0 -5
  315. data/test/stub/rails3.0/config/routes.rb +0 -58
  316. data/test/stub/rails3.0/db/seeds.rb +0 -7
  317. data/test/stub/rails3.0/doc/README_FOR_APP +0 -2
  318. data/test/stub/rails3.0/lib/tasks/.gitkeep +0 -0
  319. data/test/stub/rails3.0/log/.gitignore +0 -0
  320. data/test/stub/rails3.0/public/404.html +0 -26
  321. data/test/stub/rails3.0/public/422.html +0 -26
  322. data/test/stub/rails3.0/public/500.html +0 -26
  323. data/test/stub/rails3.0/public/favicon.ico +0 -0
  324. data/test/stub/rails3.0/public/index.html +0 -279
  325. data/test/stub/rails3.0/public/robots.txt +0 -5
  326. data/test/stub/rails3.0/public/stylesheets/.gitkeep +0 -0
  327. data/test/stub/rails3.0/script/rails +0 -9
  328. data/test/stub/rails3.0/test/performance/browsing_test.rb +0 -9
  329. data/test/stub/rails3.0/test/test_helper.rb +0 -13
  330. data/test/stub/rails3.0/vendor/plugins/.gitkeep +0 -0
  331. data/test/stub/rails3.1/.gitignore +0 -15
  332. data/test/stub/rails3.1/Gemfile +0 -37
  333. data/test/stub/rails3.1/Gemfile.lock +0 -115
  334. data/test/stub/rails3.1/README +0 -261
  335. data/test/stub/rails3.1/Rakefile +0 -7
  336. data/test/stub/rails3.1/app/assets/images/rails.png +0 -0
  337. data/test/stub/rails3.1/app/assets/stylesheets/application.css +0 -7
  338. data/test/stub/rails3.1/app/controllers/application_controller.rb +0 -3
  339. data/test/stub/rails3.1/app/helpers/application_helper.rb +0 -2
  340. data/test/stub/rails3.1/app/mailers/.gitkeep +0 -0
  341. data/test/stub/rails3.1/app/models/.gitkeep +0 -0
  342. data/test/stub/rails3.1/app/views/layouts/application.html.erb +0 -14
  343. data/test/stub/rails3.1/config.ru +0 -4
  344. data/test/stub/rails3.1/config/application.rb +0 -48
  345. data/test/stub/rails3.1/config/boot.rb +0 -6
  346. data/test/stub/rails3.1/config/database.yml +0 -25
  347. data/test/stub/rails3.1/config/environment.rb +0 -5
  348. data/test/stub/rails3.1/config/environments/development.rb +0 -30
  349. data/test/stub/rails3.1/config/environments/production.rb +0 -60
  350. data/test/stub/rails3.1/config/environments/test.rb +0 -39
  351. data/test/stub/rails3.1/config/initializers/backtrace_silencers.rb +0 -7
  352. data/test/stub/rails3.1/config/initializers/inflections.rb +0 -10
  353. data/test/stub/rails3.1/config/initializers/mime_types.rb +0 -5
  354. data/test/stub/rails3.1/config/initializers/passenger.rb +0 -2
  355. data/test/stub/rails3.1/config/initializers/secret_token.rb +0 -7
  356. data/test/stub/rails3.1/config/initializers/session_store.rb +0 -8
  357. data/test/stub/rails3.1/config/initializers/wrap_parameters.rb +0 -14
  358. data/test/stub/rails3.1/config/locales/en.yml +0 -5
  359. data/test/stub/rails3.1/config/routes.rb +0 -58
  360. data/test/stub/rails3.1/db/seeds.rb +0 -7
  361. data/test/stub/rails3.1/doc/README_FOR_APP +0 -2
  362. data/test/stub/rails3.1/lib/assets/.gitkeep +0 -0
  363. data/test/stub/rails3.1/lib/tasks/.gitkeep +0 -0
  364. data/test/stub/rails3.1/log/.gitkeep +0 -0
  365. data/test/stub/rails3.1/public/404.html +0 -26
  366. data/test/stub/rails3.1/public/422.html +0 -26
  367. data/test/stub/rails3.1/public/500.html +0 -26
  368. data/test/stub/rails3.1/public/favicon.ico +0 -0
  369. data/test/stub/rails3.1/public/index.html +0 -241
  370. data/test/stub/rails3.1/public/robots.txt +0 -5
  371. data/test/stub/rails3.1/script/rails +0 -6
  372. data/test/stub/rails3.1/test/fixtures/.gitkeep +0 -0
  373. data/test/stub/rails3.1/test/functional/.gitkeep +0 -0
  374. data/test/stub/rails3.1/test/integration/.gitkeep +0 -0
  375. data/test/stub/rails3.1/test/performance/browsing_test.rb +0 -12
  376. data/test/stub/rails3.1/test/test_helper.rb +0 -13
  377. data/test/stub/rails3.1/test/unit/.gitkeep +0 -0
  378. data/test/stub/rails3.1/vendor/assets/stylesheets/.gitkeep +0 -0
  379. data/test/stub/rails3.1/vendor/plugins/.gitkeep +0 -0
  380. data/test/stub/rails3.2/.gitignore +0 -15
  381. data/test/stub/rails3.2/Gemfile +0 -39
  382. data/test/stub/rails3.2/Gemfile.lock +0 -113
  383. data/test/stub/rails3.2/Rakefile +0 -7
  384. data/test/stub/rails3.2/app/assets/images/rails.png +0 -0
  385. data/test/stub/rails3.2/app/assets/stylesheets/application.css +0 -13
  386. data/test/stub/rails3.2/app/controllers/application_controller.rb +0 -3
  387. data/test/stub/rails3.2/app/helpers/application_helper.rb +0 -2
  388. data/test/stub/rails3.2/app/mailers/.gitkeep +0 -0
  389. data/test/stub/rails3.2/app/models/.gitkeep +0 -0
  390. data/test/stub/rails3.2/app/views/layouts/application.html.erb +0 -14
  391. data/test/stub/rails3.2/config.ru +0 -4
  392. data/test/stub/rails3.2/config/application.rb +0 -62
  393. data/test/stub/rails3.2/config/boot.rb +0 -6
  394. data/test/stub/rails3.2/config/database.yml +0 -25
  395. data/test/stub/rails3.2/config/environment.rb +0 -5
  396. data/test/stub/rails3.2/config/environments/development.rb +0 -37
  397. data/test/stub/rails3.2/config/environments/production.rb +0 -67
  398. data/test/stub/rails3.2/config/environments/test.rb +0 -37
  399. data/test/stub/rails3.2/config/initializers/backtrace_silencers.rb +0 -7
  400. data/test/stub/rails3.2/config/initializers/inflections.rb +0 -15
  401. data/test/stub/rails3.2/config/initializers/mime_types.rb +0 -5
  402. data/test/stub/rails3.2/config/initializers/passenger.rb +0 -2
  403. data/test/stub/rails3.2/config/initializers/secret_token.rb +0 -7
  404. data/test/stub/rails3.2/config/initializers/session_store.rb +0 -8
  405. data/test/stub/rails3.2/config/initializers/wrap_parameters.rb +0 -14
  406. data/test/stub/rails3.2/config/locales/en.yml +0 -5
  407. data/test/stub/rails3.2/config/routes.rb +0 -58
  408. data/test/stub/rails3.2/db/seeds.rb +0 -7
  409. data/test/stub/rails3.2/doc/README_FOR_APP +0 -2
  410. data/test/stub/rails3.2/lib/assets/.gitkeep +0 -0
  411. data/test/stub/rails3.2/lib/tasks/.gitkeep +0 -0
  412. data/test/stub/rails3.2/log/.gitkeep +0 -0
  413. data/test/stub/rails3.2/public/404.html +0 -26
  414. data/test/stub/rails3.2/public/422.html +0 -26
  415. data/test/stub/rails3.2/public/500.html +0 -25
  416. data/test/stub/rails3.2/public/favicon.ico +0 -0
  417. data/test/stub/rails3.2/public/index.html +0 -241
  418. data/test/stub/rails3.2/public/robots.txt +0 -5
  419. data/test/stub/rails3.2/script/rails +0 -6
  420. data/test/stub/rails3.2/test/fixtures/.gitkeep +0 -0
  421. data/test/stub/rails3.2/test/functional/.gitkeep +0 -0
  422. data/test/stub/rails3.2/test/integration/.gitkeep +0 -0
  423. data/test/stub/rails3.2/test/performance/browsing_test.rb +0 -12
  424. data/test/stub/rails3.2/test/test_helper.rb +0 -13
  425. data/test/stub/rails3.2/test/unit/.gitkeep +0 -0
  426. data/test/stub/rails3.2/vendor/assets/stylesheets/.gitkeep +0 -0
  427. data/test/stub/rails3.2/vendor/plugins/.gitkeep +0 -0
  428. data/test/stub/rails4.0/.gitignore +0 -16
  429. data/test/stub/rails4.0/Gemfile +0 -45
  430. data/test/stub/rails4.0/Gemfile.lock +0 -126
  431. data/test/stub/rails4.0/README.rdoc +0 -28
  432. data/test/stub/rails4.0/Rakefile +0 -6
  433. data/test/stub/rails4.0/app/assets/images/.keep +0 -0
  434. data/test/stub/rails4.0/app/assets/javascripts/application.js +0 -16
  435. data/test/stub/rails4.0/app/assets/stylesheets/application.css +0 -13
  436. data/test/stub/rails4.0/app/controllers/application_controller.rb +0 -5
  437. data/test/stub/rails4.0/app/controllers/concerns/.keep +0 -0
  438. data/test/stub/rails4.0/app/helpers/application_helper.rb +0 -2
  439. data/test/stub/rails4.0/app/mailers/.keep +0 -0
  440. data/test/stub/rails4.0/app/models/.keep +0 -0
  441. data/test/stub/rails4.0/app/models/concerns/.keep +0 -0
  442. data/test/stub/rails4.0/app/views/layouts/application.html.erb +0 -14
  443. data/test/stub/rails4.0/bin/bundle +0 -3
  444. data/test/stub/rails4.0/bin/rails +0 -4
  445. data/test/stub/rails4.0/bin/rake +0 -4
  446. data/test/stub/rails4.0/config.ru +0 -4
  447. data/test/stub/rails4.0/config/application.rb +0 -23
  448. data/test/stub/rails4.0/config/boot.rb +0 -4
  449. data/test/stub/rails4.0/config/database.yml +0 -25
  450. data/test/stub/rails4.0/config/environment.rb +0 -5
  451. data/test/stub/rails4.0/config/environments/development.rb +0 -29
  452. data/test/stub/rails4.0/config/environments/production.rb +0 -80
  453. data/test/stub/rails4.0/config/environments/test.rb +0 -36
  454. data/test/stub/rails4.0/config/initializers/backtrace_silencers.rb +0 -7
  455. data/test/stub/rails4.0/config/initializers/filter_parameter_logging.rb +0 -4
  456. data/test/stub/rails4.0/config/initializers/inflections.rb +0 -16
  457. data/test/stub/rails4.0/config/initializers/mime_types.rb +0 -5
  458. data/test/stub/rails4.0/config/initializers/passenger.rb +0 -2
  459. data/test/stub/rails4.0/config/initializers/secret_token.rb +0 -12
  460. data/test/stub/rails4.0/config/initializers/session_store.rb +0 -3
  461. data/test/stub/rails4.0/config/initializers/wrap_parameters.rb +0 -14
  462. data/test/stub/rails4.0/config/locales/en.yml +0 -23
  463. data/test/stub/rails4.0/config/routes.rb +0 -57
  464. data/test/stub/rails4.0/db/seeds.rb +0 -7
  465. data/test/stub/rails4.0/lib/assets/.keep +0 -0
  466. data/test/stub/rails4.0/lib/tasks/.keep +0 -0
  467. data/test/stub/rails4.0/log/.keep +0 -0
  468. data/test/stub/rails4.0/public/404.html +0 -58
  469. data/test/stub/rails4.0/public/422.html +0 -58
  470. data/test/stub/rails4.0/public/500.html +0 -57
  471. data/test/stub/rails4.0/public/favicon.ico +0 -0
  472. data/test/stub/rails4.0/public/robots.txt +0 -5
  473. data/test/stub/rails4.0/test/controllers/.keep +0 -0
  474. data/test/stub/rails4.0/test/fixtures/.keep +0 -0
  475. data/test/stub/rails4.0/test/helpers/.keep +0 -0
  476. data/test/stub/rails4.0/test/integration/.keep +0 -0
  477. data/test/stub/rails4.0/test/mailers/.keep +0 -0
  478. data/test/stub/rails4.0/test/models/.keep +0 -0
  479. data/test/stub/rails4.0/test/test_helper.rb +0 -15
  480. data/test/stub/rails4.0/vendor/assets/javascripts/.keep +0 -0
  481. data/test/stub/rails4.0/vendor/assets/stylesheets/.keep +0 -0
  482. data/test/stub/rails4.1/.gitignore +0 -16
  483. data/test/stub/rails4.1/Gemfile +0 -45
  484. data/test/stub/rails4.1/Gemfile.lock +0 -129
  485. data/test/stub/rails4.1/README.rdoc +0 -28
  486. data/test/stub/rails4.1/Rakefile +0 -6
  487. data/test/stub/rails4.1/app/assets/images/.keep +0 -0
  488. data/test/stub/rails4.1/app/assets/javascripts/application.js +0 -16
  489. data/test/stub/rails4.1/app/assets/stylesheets/application.css +0 -13
  490. data/test/stub/rails4.1/app/controllers/application_controller.rb +0 -5
  491. data/test/stub/rails4.1/app/controllers/concerns/.keep +0 -0
  492. data/test/stub/rails4.1/app/helpers/application_helper.rb +0 -2
  493. data/test/stub/rails4.1/app/mailers/.keep +0 -0
  494. data/test/stub/rails4.1/app/models/.keep +0 -0
  495. data/test/stub/rails4.1/app/models/concerns/.keep +0 -0
  496. data/test/stub/rails4.1/app/views/layouts/application.html.erb +0 -14
  497. data/test/stub/rails4.1/bin/bundle +0 -3
  498. data/test/stub/rails4.1/bin/rails +0 -4
  499. data/test/stub/rails4.1/bin/rake +0 -4
  500. data/test/stub/rails4.1/config.ru +0 -4
  501. data/test/stub/rails4.1/config/application.rb +0 -23
  502. data/test/stub/rails4.1/config/boot.rb +0 -4
  503. data/test/stub/rails4.1/config/database.yml +0 -25
  504. data/test/stub/rails4.1/config/environment.rb +0 -5
  505. data/test/stub/rails4.1/config/environments/development.rb +0 -29
  506. data/test/stub/rails4.1/config/environments/production.rb +0 -80
  507. data/test/stub/rails4.1/config/environments/test.rb +0 -36
  508. data/test/stub/rails4.1/config/initializers/backtrace_silencers.rb +0 -7
  509. data/test/stub/rails4.1/config/initializers/filter_parameter_logging.rb +0 -4
  510. data/test/stub/rails4.1/config/initializers/inflections.rb +0 -16
  511. data/test/stub/rails4.1/config/initializers/mime_types.rb +0 -5
  512. data/test/stub/rails4.1/config/initializers/passenger.rb +0 -5
  513. data/test/stub/rails4.1/config/initializers/secret_token.rb +0 -12
  514. data/test/stub/rails4.1/config/initializers/session_store.rb +0 -3
  515. data/test/stub/rails4.1/config/initializers/wrap_parameters.rb +0 -14
  516. data/test/stub/rails4.1/config/locales/en.yml +0 -23
  517. data/test/stub/rails4.1/config/routes.rb +0 -57
  518. data/test/stub/rails4.1/db/seeds.rb +0 -7
  519. data/test/stub/rails4.1/lib/assets/.keep +0 -0
  520. data/test/stub/rails4.1/lib/tasks/.keep +0 -0
  521. data/test/stub/rails4.1/log/.keep +0 -0
  522. data/test/stub/rails4.1/public/404.html +0 -58
  523. data/test/stub/rails4.1/public/422.html +0 -58
  524. data/test/stub/rails4.1/public/500.html +0 -57
  525. data/test/stub/rails4.1/public/favicon.ico +0 -0
  526. data/test/stub/rails4.1/public/robots.txt +0 -5
  527. data/test/stub/rails4.1/test/controllers/.keep +0 -0
  528. data/test/stub/rails4.1/test/fixtures/.keep +0 -0
  529. data/test/stub/rails4.1/test/helpers/.keep +0 -0
  530. data/test/stub/rails4.1/test/integration/.keep +0 -0
  531. data/test/stub/rails4.1/test/mailers/.keep +0 -0
  532. data/test/stub/rails4.1/test/models/.keep +0 -0
  533. data/test/stub/rails4.1/test/test_helper.rb +0 -15
  534. data/test/stub/rails4.1/vendor/assets/javascripts/.keep +0 -0
  535. data/test/stub/rails4.1/vendor/assets/stylesheets/.keep +0 -0
  536. data/test/stub/start_error.pl +0 -24
  537. data/test/stub/upload_data.txt +0 -494
  538. data/test/stub/wsgi/passenger_wsgi.py +0 -212
  539. data/test/stub/wsgi/public/.gitignore +0 -0
  540. data/test/stub/wsgi/tmp/.gitignore +0 -0
  541. data/test/support/allocate_memory.c +0 -14
  542. data/test/support/apache2_controller.rb +0 -258
  543. data/test/support/multipart.rb +0 -62
  544. data/test/support/nginx_controller.rb +0 -97
  545. data/test/support/placebo-preloader.rb +0 -88
  546. data/test/support/test_helper.rb +0 -455
  547. data/test/support/valgrind.h +0 -2539
  548. data/test/tut/tut.h +0 -1310
  549. data/test/tut/tut_reporter.h +0 -256
  550. data/test/valgrind-osx.supp +0 -7
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2010-2013 Phusion
3
+ * Copyright (c) 2010-2015 Phusion
4
4
  *
5
5
  * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
6
6
  *
@@ -233,18 +233,20 @@ resolveHostname(const string &hostname, unsigned int port, bool shuffle) {
233
233
  }
234
234
 
235
235
  int
236
- createServer(const StaticString &address, unsigned int backlogSize, bool autoDelete) {
236
+ createServer(const StaticString &address, unsigned int backlogSize, bool autoDelete,
237
+ const char *file, unsigned int line)
238
+ {
237
239
  TRACE_POINT();
238
240
  switch (getSocketAddressType(address)) {
239
241
  case SAT_UNIX:
240
242
  return createUnixServer(parseUnixSocketAddress(address),
241
- backlogSize, autoDelete);
243
+ backlogSize, autoDelete, file, line);
242
244
  case SAT_TCP: {
243
245
  string host;
244
246
  unsigned short port;
245
247
 
246
248
  parseTcpSocketAddress(address, host, port);
247
- return createTcpServer(host.c_str(), port, backlogSize);
249
+ return createTcpServer(host.c_str(), port, backlogSize, file, line);
248
250
  }
249
251
  default:
250
252
  throw ArgumentException(string("Unknown address type for '") + address + "'");
@@ -252,7 +254,9 @@ createServer(const StaticString &address, unsigned int backlogSize, bool autoDel
252
254
  }
253
255
 
254
256
  int
255
- createUnixServer(const StaticString &filename, unsigned int backlogSize, bool autoDelete) {
257
+ createUnixServer(const StaticString &filename, unsigned int backlogSize, bool autoDelete,
258
+ const char *file, unsigned int line)
259
+ {
256
260
  struct sockaddr_un addr;
257
261
  int fd, ret;
258
262
 
@@ -269,7 +273,7 @@ createUnixServer(const StaticString &filename, unsigned int backlogSize, bool au
269
273
  throw SystemException("Cannot create a Unix socket file descriptor", e);
270
274
  }
271
275
 
272
- FdGuard guard(fd, true);
276
+ FdGuard guard(fd, file, line, true);
273
277
  addr.sun_family = AF_LOCAL;
274
278
  strncpy(addr.sun_path, filename.c_str(), filename.size());
275
279
  addr.sun_path[filename.size()] = '\0';
@@ -307,7 +311,9 @@ createUnixServer(const StaticString &filename, unsigned int backlogSize, bool au
307
311
  }
308
312
 
309
313
  int
310
- createTcpServer(const char *address, unsigned short port, unsigned int backlogSize) {
314
+ createTcpServer(const char *address, unsigned short port, unsigned int backlogSize,
315
+ const char *file, unsigned int line)
316
+ {
311
317
  struct sockaddr_in addr;
312
318
  int fd, ret, optval;
313
319
 
@@ -334,7 +340,7 @@ createTcpServer(const char *address, unsigned short port, unsigned int backlogSi
334
340
  throw SystemException("Cannot create a TCP socket file descriptor", e);
335
341
  }
336
342
 
337
- FdGuard guard(fd, true);
343
+ FdGuard guard(fd, file, line, true);
338
344
  ret = syscalls::bind(fd, (const struct sockaddr *) &addr, sizeof(addr));
339
345
  if (ret == -1) {
340
346
  int e = errno;
@@ -372,17 +378,17 @@ createTcpServer(const char *address, unsigned short port, unsigned int backlogSi
372
378
  }
373
379
 
374
380
  int
375
- connectToServer(const StaticString &address) {
381
+ connectToServer(const StaticString &address, const char *file, unsigned int line) {
376
382
  TRACE_POINT();
377
383
  switch (getSocketAddressType(address)) {
378
384
  case SAT_UNIX:
379
- return connectToUnixServer(parseUnixSocketAddress(address));
385
+ return connectToUnixServer(parseUnixSocketAddress(address), file, line);
380
386
  case SAT_TCP: {
381
387
  string host;
382
388
  unsigned short port;
383
389
 
384
390
  parseTcpSocketAddress(address, host, port);
385
- return connectToTcpServer(host, port);
391
+ return connectToTcpServer(host, port, file, line);
386
392
  }
387
393
  default:
388
394
  throw ArgumentException(string("Unknown address type for '") + address + "'");
@@ -390,14 +396,16 @@ connectToServer(const StaticString &address) {
390
396
  }
391
397
 
392
398
  int
393
- connectToUnixServer(const StaticString &filename) {
399
+ connectToUnixServer(const StaticString &filename, const char *file,
400
+ unsigned int line)
401
+ {
394
402
  int fd = syscalls::socket(PF_UNIX, SOCK_STREAM, 0);
395
403
  if (fd == -1) {
396
404
  int e = errno;
397
405
  throw SystemException("Cannot create a Unix socket file descriptor", e);
398
406
  }
399
407
 
400
- FdGuard guard(fd, true);
408
+ FdGuard guard(fd, file, line, true);
401
409
  int ret;
402
410
  struct sockaddr_un addr;
403
411
 
@@ -449,8 +457,10 @@ connectToUnixServer(const StaticString &filename) {
449
457
  }
450
458
 
451
459
  void
452
- setupNonBlockingUnixSocket(NUnix_State &state, const StaticString &filename) {
453
- state.fd = syscalls::socket(PF_UNIX, SOCK_STREAM, 0);
460
+ setupNonBlockingUnixSocket(NUnix_State &state, const StaticString &filename,
461
+ const char *file, unsigned int line)
462
+ {
463
+ state.fd.assign(syscalls::socket(PF_UNIX, SOCK_STREAM, 0), file, line);
454
464
  if (state.fd == -1) {
455
465
  int e = errno;
456
466
  throw SystemException("Cannot create a Unix socket file descriptor", e);
@@ -494,7 +504,9 @@ connectToUnixServer(NUnix_State &state) {
494
504
  }
495
505
 
496
506
  int
497
- connectToTcpServer(const StaticString &hostname, unsigned int port) {
507
+ connectToTcpServer(const StaticString &hostname, unsigned int port,
508
+ const char *file, unsigned int line)
509
+ {
498
510
  struct addrinfo hints, *res;
499
511
  int ret, e, fd;
500
512
 
@@ -543,11 +555,15 @@ connectToTcpServer(const StaticString &hostname, unsigned int port) {
543
555
  throw SystemException(message, e);
544
556
  }
545
557
 
558
+ P_LOG_FILE_DESCRIPTOR_OPEN3(fd, file, line);
559
+
546
560
  return fd;
547
561
  }
548
562
 
549
563
  void
550
- setupNonBlockingTcpSocket(NTCP_State &state, const StaticString &hostname, int port) {
564
+ setupNonBlockingTcpSocket(NTCP_State &state, const StaticString &hostname, int port,
565
+ const char *file, unsigned int line)
566
+ {
551
567
  int ret;
552
568
 
553
569
  memset(&state.hints, 0, sizeof(state.hints));
@@ -565,7 +581,7 @@ setupNonBlockingTcpSocket(NTCP_State &state, const StaticString &hostname, int p
565
581
  throw IOException(message);
566
582
  }
567
583
 
568
- state.fd = syscalls::socket(PF_INET, SOCK_STREAM, 0);
584
+ state.fd.assign(syscalls::socket(PF_INET, SOCK_STREAM, 0), file, line);
569
585
  if (state.fd == -1) {
570
586
  int e = errno;
571
587
  throw SystemException("Cannot create a TCP socket file descriptor", e);
@@ -605,19 +621,22 @@ connectToTcpServer(NTCP_State &state) {
605
621
  }
606
622
 
607
623
  void
608
- setupNonBlockingSocket(NConnect_State &state, const StaticString &address) {
624
+ setupNonBlockingSocket(NConnect_State &state, const StaticString &address,
625
+ const char *file, unsigned int line)
626
+ {
609
627
  TRACE_POINT();
610
628
  state.type = getSocketAddressType(address);
611
629
  switch (state.type) {
612
630
  case SAT_UNIX:
613
- setupNonBlockingUnixSocket(state.s_unix, parseUnixSocketAddress(address));
631
+ setupNonBlockingUnixSocket(state.s_unix, parseUnixSocketAddress(address),
632
+ file, line);
614
633
  break;
615
634
  case SAT_TCP: {
616
635
  string host;
617
636
  unsigned short port;
618
637
 
619
638
  parseTcpSocketAddress(address, host, port);
620
- setupNonBlockingTcpSocket(state.s_tcp, host, port);
639
+ setupNonBlockingTcpSocket(state.s_tcp, host, port, file, line);
621
640
  break;
622
641
  }
623
642
  default:
@@ -638,7 +657,7 @@ connectToServer(NConnect_State &state) {
638
657
  }
639
658
 
640
659
  SocketPair
641
- createUnixSocketPair() {
660
+ createUnixSocketPair(const char *file, unsigned int line) {
642
661
  int fds[2];
643
662
  FileDescriptor sockets[2];
644
663
 
@@ -646,14 +665,14 @@ createUnixSocketPair() {
646
665
  int e = errno;
647
666
  throw SystemException("Cannot create a Unix socket pair", e);
648
667
  } else {
649
- sockets[0] = fds[0];
650
- sockets[1] = fds[1];
668
+ sockets[0].assign(fds[0], file, line);
669
+ sockets[1].assign(fds[1], file, line);
651
670
  return SocketPair(sockets[0], sockets[1]);
652
671
  }
653
672
  }
654
673
 
655
674
  Pipe
656
- createPipe() {
675
+ createPipe(const char *file, unsigned int line) {
657
676
  int fds[2];
658
677
  FileDescriptor p[2];
659
678
 
@@ -661,8 +680,8 @@ createPipe() {
661
680
  int e = errno;
662
681
  throw SystemException("Cannot create a pipe", e);
663
682
  } else {
664
- p[0] = fds[0];
665
- p[1] = fds[1];
683
+ p[0].assign(fds[0], file, line);
684
+ p[1].assign(fds[1], file, line);
666
685
  return Pipe(p[0], p[1]);
667
686
  }
668
687
  }
@@ -1151,7 +1170,7 @@ string
1151
1170
  readAll(const string &filename) {
1152
1171
  FILE *f = fopen(filename.c_str(), "rb");
1153
1172
  if (f != NULL) {
1154
- StdioGuard guard(f);
1173
+ StdioGuard guard(f, NULL, 0);
1155
1174
  return readAll(fileno(f));
1156
1175
  } else {
1157
1176
  int e = errno;
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2010 Phusion
3
+ * Copyright (c) 2010-2015 Phusion
4
4
  *
5
5
  * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
6
6
  *
@@ -135,6 +135,9 @@ vector<string> resolveHostname(const string &hostname,
135
135
  * @param autoDelete If <tt>address</tt> is a Unix socket that already exists,
136
136
  * whether that should be deleted. Otherwise this argument
137
137
  * is ignored.
138
+ * @param file The name of the source file that called this function,
139
+ * for file descriptor logging purposes.
140
+ * @param line The line in the source file that called this function.
138
141
  * @return The file descriptor of the newly created server socket.
139
142
  * @throws ArgumentException The given address cannot be parsed.
140
143
  * @throws RuntimeException Something went wrong.
@@ -144,7 +147,9 @@ vector<string> resolveHostname(const string &hostname,
144
147
  */
145
148
  int createServer(const StaticString &address,
146
149
  unsigned int backlogSize = 0,
147
- bool autoDelete = true);
150
+ bool autoDelete = true,
151
+ const char *file = __FILE__,
152
+ unsigned int line = __LINE__);
148
153
 
149
154
  /**
150
155
  * Create a new Unix server socket which is bounded to <tt>filename</tt>.
@@ -153,6 +158,9 @@ int createServer(const StaticString &address,
153
158
  * @param backlogSize The size of the socket's backlog. Specify 0 to use the
154
159
  * platform's maximum allowed backlog size.
155
160
  * @param autoDelete Whether <tt>filename</tt> should be deleted, if it already exists.
161
+ * @param file The name of the source file that called this function,
162
+ * for file descriptor logging purposes.
163
+ * @param line The line in the source file that called this function.
156
164
  * @return The file descriptor of the newly created Unix server socket.
157
165
  * @throws RuntimeException Something went wrong.
158
166
  * @throws SystemException Something went wrong while creating the Unix server socket.
@@ -161,7 +169,9 @@ int createServer(const StaticString &address,
161
169
  */
162
170
  int createUnixServer(const StaticString &filename,
163
171
  unsigned int backlogSize = 0,
164
- bool autoDelete = true);
172
+ bool autoDelete = true,
173
+ const char *file = __FILE__,
174
+ unsigned int line = __LINE__);
165
175
 
166
176
  /**
167
177
  * Create a new TCP server socket which is bounded to the given address and port.
@@ -172,6 +182,9 @@ int createUnixServer(const StaticString &filename,
172
182
  * select a free port.
173
183
  * @param backlogSize The size of the socket's backlog. Specify 0 to use the
174
184
  * platform's maximum allowed backlog size.
185
+ * @param file The name of the source file that called this function,
186
+ * for file descriptor logging purposes.
187
+ * @param line The line in the source file that called this function.
175
188
  * @return The file descriptor of the newly created server socket.
176
189
  * @throws SystemException Something went wrong while creating the server socket.
177
190
  * @throws ArgumentException The given address cannot be parsed.
@@ -180,12 +193,17 @@ int createUnixServer(const StaticString &filename,
180
193
  */
181
194
  int createTcpServer(const char *address = "0.0.0.0",
182
195
  unsigned short port = 0,
183
- unsigned int backlogSize = 0);
196
+ unsigned int backlogSize = 0,
197
+ const char *file = __FILE__,
198
+ unsigned int line = __LINE__);
184
199
 
185
200
  /**
186
201
  * Connect to a server at the given address in a blocking manner.
187
202
  *
188
203
  * @param address An address as accepted by getSocketAddressType().
204
+ * @param file The name of the source file that called this function,
205
+ * for file descriptor logging purposes.
206
+ * @param line The line in the source file that called this function.
189
207
  * @return The file descriptor of the connected client socket.
190
208
  * @throws ArgumentException Unknown address type.
191
209
  * @throws RuntimeException Something went wrong.
@@ -194,32 +212,41 @@ int createTcpServer(const char *address = "0.0.0.0",
194
212
  * @throws boost::thread_interrupted A system call has been interrupted.
195
213
  * @ingroup Support
196
214
  */
197
- int connectToServer(const StaticString &address);
215
+ int connectToServer(const StaticString &address, const char *file,
216
+ unsigned int line);
198
217
 
199
218
  /**
200
219
  * Connect to a Unix server socket at <tt>filename</tt> in a blocking manner.
201
220
  *
202
221
  * @param filename The filename of the socket to connect to.
222
+ * @param file The name of the source file that called this function,
223
+ * for file descriptor logging purposes.
224
+ * @param line The line in the source file that called this function.
203
225
  * @return The file descriptor of the connected client socket.
204
226
  * @throws RuntimeException Something went wrong.
205
227
  * @throws SystemException Something went wrong while connecting to the Unix server.
206
228
  * @throws boost::thread_interrupted A system call has been interrupted.
207
229
  * @ingroup Support
208
230
  */
209
- int connectToUnixServer(const StaticString &filename);
231
+ int connectToUnixServer(const StaticString &filename, const char *file,
232
+ unsigned int line);
210
233
 
211
234
  /**
212
235
  * Connect to a TCP server socket at the given host name and port in a blocking manner.
213
236
  *
214
237
  * @param hostname The host name of the TCP server.
215
238
  * @param port The port number of the TCP server.
239
+ * @param file The name of the source file that called this function,
240
+ * for file descriptor logging purposes.
241
+ * @param line The line in the source file that called this function.
216
242
  * @return The file descriptor of the connected client socket.
217
243
  * @throws IOException Something went wrong while connecting to the Unix server.
218
244
  * @throws SystemException Something went wrong while connecting to the server.
219
245
  * @throws boost::thread_interrupted A system call has been interrupted.
220
246
  * @ingroup Support
221
247
  */
222
- int connectToTcpServer(const StaticString &hostname, unsigned int port);
248
+ int connectToTcpServer(const StaticString &hostname, unsigned int port,
249
+ const char *file, unsigned int line);
223
250
 
224
251
  /** State structure for non-blocking connectToUnixServer(). */
225
252
  struct NUnix_State {
@@ -233,12 +260,16 @@ struct NUnix_State {
233
260
  *
234
261
  * @param state A state structure.
235
262
  * @param filename The filename of the socket to connect to.
263
+ * @param file The name of the source file that called this function,
264
+ * for file descriptor logging purposes.
265
+ * @param line The line in the source file that called this function.
236
266
  * @throws SystemException Something went wrong.
237
267
  * @throws boost::thread_interrupted A system call has been interrupted.
238
268
  * @ingroup Support
239
269
  */
240
270
  void setupNonBlockingUnixSocket(NUnix_State & restrict_ref state,
241
- const StaticString & restrict_ref filename);
271
+ const StaticString & restrict_ref filename, const char *file,
272
+ unsigned int line);
242
273
 
243
274
  /**
244
275
  * Connect a Unix domain socket in non-blocking mode.
@@ -280,6 +311,9 @@ struct NTCP_State {
280
311
  * @param state A state structure.
281
312
  * @param hostname The host name of the TCP server.
282
313
  * @param port The port number of the TCP server.
314
+ * @param file The name of the source file that called this function,
315
+ * for file descriptor logging purposes.
316
+ * @param line The line in the source file that called this function.
283
317
  * @throws IOException Something went wrong.
284
318
  * @throws SystemException Something went wrong.
285
319
  * @throws boost::thread_interrupted A system call has been interrupted.
@@ -287,7 +321,7 @@ struct NTCP_State {
287
321
  */
288
322
  void setupNonBlockingTcpSocket(NTCP_State & restrict_ref state,
289
323
  const StaticString & restrict_ref hostname,
290
- int port);
324
+ int port, const char *file, unsigned int line);
291
325
 
292
326
  /**
293
327
  * Connect a TCP socket in non-blocking mode.
@@ -312,6 +346,9 @@ struct NConnect_State {
312
346
  *
313
347
  * @param A state structure.
314
348
  * @param address An address as accepted by getSocketAddressType().
349
+ * @param file The name of the source file that called this function,
350
+ * for file descriptor logging purposes.
351
+ * @param line The line in the source file that called this function.
315
352
  * @throws ArgumentException Unknown address type.
316
353
  * @throws RuntimeException Something went wrong.
317
354
  * @throws SystemException Something went wrong.
@@ -320,7 +357,8 @@ struct NConnect_State {
320
357
  * @ingroup Support
321
358
  */
322
359
  void setupNonBlockingSocket(NConnect_State & restrict_ref state,
323
- const StaticString & restrict_ref address);
360
+ const StaticString & restrict_ref address, const char *file,
361
+ unsigned int line);
324
362
 
325
363
  /**
326
364
  * Connect a socket in non-blocking mode.
@@ -338,18 +376,24 @@ bool connectToServer(NConnect_State &state);
338
376
  /**
339
377
  * Creates a Unix domain socket pair.
340
378
  *
379
+ * @param file The name of the source file that called this function,
380
+ * for file descriptor logging purposes.
381
+ * @param line The line in the source file that called this function.
341
382
  * @throws SystemException
342
383
  * @throws boost::thread_interrupted
343
384
  */
344
- SocketPair createUnixSocketPair();
385
+ SocketPair createUnixSocketPair(const char *file, unsigned int line);
345
386
 
346
387
  /**
347
388
  * Creates a pipe.
348
389
  *
390
+ * @param file The name of the source file that called this function,
391
+ * for file descriptor logging purposes.
392
+ * @param line The line in the source file that called this function.
349
393
  * @throws SystemException
350
394
  * @throws boost::thread_interrupted
351
395
  */
352
- Pipe createPipe();
396
+ Pipe createPipe(const char *file, unsigned int line);
353
397
 
354
398
  /**
355
399
  * Waits at most <tt>*timeout</tt> microseconds for the file descriptor to become readable.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2012 Phusion
3
+ * Copyright (c) 2012-2015 Phusion
4
4
  *
5
5
  * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
6
6
  *
@@ -112,7 +112,7 @@ struct Message {
112
112
  }
113
113
 
114
114
  void sendReply(const string &name) {
115
- sendReply(make_shared<Message>(name));
115
+ sendReply(boost::make_shared<Message>(name));
116
116
  }
117
117
  };
118
118
 
@@ -205,7 +205,7 @@ public:
205
205
  }
206
206
 
207
207
  void send(const string &name) {
208
- send(make_shared<Message>(name));
208
+ send(boost::make_shared<Message>(name));
209
209
  }
210
210
 
211
211
  const MessagePtr peek(const string &name) const {