passenger 5.0.20 → 5.0.21

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 (408) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/CHANGELOG +14 -0
  5. data/CONTRIBUTORS +1 -0
  6. data/README.md +1 -1
  7. data/Rakefile +4 -1
  8. data/bin/passenger +3 -2
  9. data/bin/passenger-config +3 -2
  10. data/bin/passenger-install-apache2-module +3 -3
  11. data/bin/passenger-install-nginx-module +10 -3
  12. data/bin/passenger-memory-stats +3 -2
  13. data/bin/passenger-status +3 -2
  14. data/build/agent.rb +4 -3
  15. data/build/apache2.rb +3 -2
  16. data/build/basics.rb +3 -2
  17. data/build/common_library.rb +9 -8
  18. data/build/cplusplus_support.rb +3 -2
  19. data/build/cxx_dependency_map.rb +67 -134
  20. data/build/cxx_tests.rb +3 -2
  21. data/build/documentation.rb +3 -2
  22. data/build/integration_tests.rb +3 -2
  23. data/build/misc.rb +3 -22
  24. data/build/nginx.rb +3 -2
  25. data/build/node_tests.rb +3 -2
  26. data/build/oxt_tests.rb +3 -2
  27. data/build/packaging.rb +4 -3
  28. data/build/ruby_extension.rb +3 -2
  29. data/build/ruby_tests.rb +3 -2
  30. data/build/test_basics.rb +3 -2
  31. data/dev/copy_boost_headers +3 -2
  32. data/doc/Design and Architecture.html +1 -1
  33. data/doc/Design and Architecture.txt +1 -1
  34. data/doc/Users guide Apache.html +1 -1
  35. data/doc/Users guide Nginx.html +1 -1
  36. data/doc/users_guide_snippets/appendix_a_about.txt +1 -1
  37. data/man/passenger-config.1 +0 -2
  38. data/man/passenger-memory-stats.8 +0 -2
  39. data/man/passenger-status.8 +0 -2
  40. data/src/agent/AgentMain.cpp +3 -2
  41. data/src/agent/Core/ApiServer.h +3 -2
  42. data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +3 -2
  43. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +3 -2
  44. data/src/agent/Core/ApplicationPool/Common.h +3 -2
  45. data/src/agent/Core/ApplicationPool/Context.h +3 -2
  46. data/src/agent/Core/ApplicationPool/ErrorRenderer.h +3 -2
  47. data/src/agent/Core/ApplicationPool/Group.h +3 -2
  48. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +3 -2
  49. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +3 -2
  50. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +3 -2
  51. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +3 -2
  52. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +3 -2
  53. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +3 -2
  54. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +3 -2
  55. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +3 -2
  56. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +3 -2
  57. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +3 -2
  58. data/src/agent/Core/ApplicationPool/Implementation.cpp +3 -2
  59. data/src/agent/Core/ApplicationPool/Options.h +3 -11
  60. data/src/agent/Core/ApplicationPool/Pool.h +3 -2
  61. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +3 -2
  62. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +3 -2
  63. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +3 -2
  64. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +3 -2
  65. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +3 -2
  66. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +3 -2
  67. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +3 -2
  68. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +3 -2
  69. data/src/agent/Core/ApplicationPool/Process.h +3 -2
  70. data/src/agent/Core/ApplicationPool/Session.h +3 -2
  71. data/src/agent/Core/ApplicationPool/Socket.h +3 -2
  72. data/src/agent/Core/CoreMain.cpp +3 -2
  73. data/src/agent/Core/OptionParser.h +3 -2
  74. data/src/agent/Core/RequestHandler.h +3 -2
  75. data/src/agent/Core/RequestHandler/AppResponse.h +3 -2
  76. data/src/agent/Core/RequestHandler/BufferBody.cpp +3 -2
  77. data/src/agent/Core/RequestHandler/CheckoutSession.cpp +3 -2
  78. data/src/agent/Core/RequestHandler/Client.h +3 -2
  79. data/src/agent/Core/RequestHandler/ForwardResponse.cpp +3 -2
  80. data/src/agent/Core/RequestHandler/Hooks.cpp +4 -2
  81. data/src/agent/Core/RequestHandler/InitRequest.cpp +13 -4
  82. data/src/agent/Core/RequestHandler/Request.h +10 -2
  83. data/src/agent/Core/RequestHandler/SendRequest.cpp +40 -9
  84. data/src/agent/Core/RequestHandler/TurboCaching.h +3 -2
  85. data/src/agent/Core/RequestHandler/Utils.cpp +3 -2
  86. data/src/agent/Core/ResponseCache.h +3 -2
  87. data/src/agent/Core/SpawningKit/BackgroundIOCapturer.h +3 -2
  88. data/src/agent/Core/SpawningKit/Config.h +3 -2
  89. data/src/agent/Core/SpawningKit/DirectSpawner.h +3 -2
  90. data/src/agent/Core/SpawningKit/DummySpawner.h +3 -2
  91. data/src/agent/Core/SpawningKit/Factory.h +3 -2
  92. data/src/agent/Core/SpawningKit/Options.h +3 -2
  93. data/src/agent/Core/SpawningKit/PipeWatcher.h +3 -2
  94. data/src/agent/Core/SpawningKit/Result.h +3 -2
  95. data/src/agent/Core/SpawningKit/SmartSpawner.h +3 -2
  96. data/src/agent/Core/SpawningKit/Spawner.h +18 -2
  97. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +3 -2
  98. data/src/agent/Core/UnionStation/Connection.h +3 -2
  99. data/src/agent/Core/UnionStation/Core.h +3 -2
  100. data/src/agent/Core/UnionStation/StopwatchLog.h +3 -2
  101. data/src/agent/Core/UnionStation/Transaction.h +3 -2
  102. data/src/agent/Shared/ApiServerUtils.h +3 -2
  103. data/src/agent/Shared/ApplicationPoolApiKey.h +3 -2
  104. data/src/agent/Shared/Base.cpp +3 -2
  105. data/src/agent/Shared/Base.h +3 -2
  106. data/src/agent/SpawnPreparer/SpawnPreparerMain.cpp +3 -2
  107. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +3 -2
  108. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +3 -2
  109. data/src/agent/UstRouter/ApiServer.h +3 -2
  110. data/src/agent/UstRouter/Client.h +3 -2
  111. data/src/agent/UstRouter/Controller.h +3 -2
  112. data/src/agent/UstRouter/DataStoreId.h +3 -2
  113. data/src/agent/UstRouter/FileSink.h +3 -2
  114. data/src/agent/UstRouter/LogSink.h +3 -2
  115. data/src/agent/UstRouter/OptionParser.h +3 -2
  116. data/src/agent/UstRouter/RemoteSender.h +3 -2
  117. data/src/agent/UstRouter/RemoteSink.h +3 -2
  118. data/src/agent/UstRouter/Transaction.h +3 -2
  119. data/src/agent/UstRouter/UstRouterMain.cpp +3 -2
  120. data/src/agent/Watchdog/AgentWatcher.cpp +3 -2
  121. data/src/agent/Watchdog/ApiServer.h +3 -2
  122. data/src/agent/Watchdog/CoreWatcher.cpp +3 -2
  123. data/src/agent/Watchdog/InstanceDirToucher.cpp +3 -2
  124. data/src/agent/Watchdog/UstRouterWatcher.cpp +3 -2
  125. data/src/agent/Watchdog/WatchdogMain.cpp +4 -3
  126. data/src/apache2_module/Bucket.cpp +3 -2
  127. data/src/apache2_module/Bucket.h +3 -2
  128. data/src/apache2_module/Configuration.cpp +3 -2
  129. data/src/apache2_module/Configuration.h +3 -2
  130. data/src/apache2_module/Configuration.hpp +3 -2
  131. data/src/apache2_module/ConfigurationCommands.cpp +3 -2
  132. data/src/apache2_module/ConfigurationCommands.cpp.erb +3 -2
  133. data/src/apache2_module/ConfigurationFields.hpp +3 -2
  134. data/src/apache2_module/ConfigurationFields.hpp.erb +3 -2
  135. data/src/apache2_module/ConfigurationSetters.cpp +3 -2
  136. data/src/apache2_module/ConfigurationSetters.cpp.erb +3 -2
  137. data/src/apache2_module/CreateDirConfig.cpp +3 -2
  138. data/src/apache2_module/CreateDirConfig.cpp.erb +3 -2
  139. data/src/apache2_module/DirectoryMapper.h +3 -2
  140. data/src/apache2_module/Hooks.cpp +12 -11
  141. data/src/apache2_module/Hooks.h +3 -2
  142. data/src/apache2_module/MergeDirConfig.cpp +3 -2
  143. data/src/apache2_module/MergeDirConfig.cpp.erb +3 -2
  144. data/src/apache2_module/SetHeaders.cpp +3 -2
  145. data/src/apache2_module/SetHeaders.cpp.erb +3 -2
  146. data/src/apache2_module/mod_passenger.c +3 -2
  147. data/src/cxx_supportlib/AppTypes.cpp +3 -2
  148. data/src/cxx_supportlib/AppTypes.h +3 -2
  149. data/src/cxx_supportlib/BackgroundEventLoop.cpp +3 -2
  150. data/src/cxx_supportlib/BackgroundEventLoop.h +3 -2
  151. data/src/cxx_supportlib/Constants.h +4 -7
  152. data/src/cxx_supportlib/Constants.h.erb +3 -4
  153. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +3 -2
  154. data/src/cxx_supportlib/DataStructures/LString.h +3 -2
  155. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +3 -2
  156. data/src/cxx_supportlib/Exceptions.cpp +3 -2
  157. data/src/cxx_supportlib/Exceptions.h +3 -2
  158. data/src/cxx_supportlib/FileDescriptor.h +3 -2
  159. data/src/cxx_supportlib/Hooks.h +3 -2
  160. data/src/cxx_supportlib/InstanceDirectory.h +4 -3
  161. data/src/cxx_supportlib/Logging.cpp +3 -2
  162. data/src/cxx_supportlib/Logging.h +3 -2
  163. data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
  164. data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
  165. data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
  166. data/src/cxx_supportlib/MessageClient.h +3 -2
  167. data/src/cxx_supportlib/MessageReadersWriters.h +3 -2
  168. data/src/cxx_supportlib/RandomGenerator.h +3 -2
  169. data/src/cxx_supportlib/ResourceLocator.h +3 -2
  170. data/src/cxx_supportlib/SafeLibev.h +3 -2
  171. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +3 -2
  172. data/src/cxx_supportlib/ServerKit/Channel.h +3 -2
  173. data/src/cxx_supportlib/ServerKit/Client.h +3 -2
  174. data/src/cxx_supportlib/ServerKit/ClientRef.h +3 -2
  175. data/src/cxx_supportlib/ServerKit/Context.h +3 -2
  176. data/src/cxx_supportlib/ServerKit/CookieUtils.h +3 -2
  177. data/src/cxx_supportlib/ServerKit/Errors.h +3 -2
  178. data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +3 -2
  179. data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +3 -2
  180. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -2
  181. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +3 -2
  182. data/src/cxx_supportlib/ServerKit/HeaderTable.h +3 -2
  183. data/src/cxx_supportlib/ServerKit/Hooks.h +3 -2
  184. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +3 -2
  185. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +3 -2
  186. data/src/cxx_supportlib/ServerKit/HttpClient.h +3 -2
  187. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +3 -2
  188. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +3 -2
  189. data/src/cxx_supportlib/ServerKit/HttpRequest.h +3 -2
  190. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +3 -2
  191. data/src/cxx_supportlib/ServerKit/HttpServer.h +3 -2
  192. data/src/cxx_supportlib/ServerKit/Implementation.cpp +3 -2
  193. data/src/cxx_supportlib/ServerKit/Server.h +3 -2
  194. data/src/cxx_supportlib/StaticString.h +3 -2
  195. data/src/cxx_supportlib/UnionStationFilterSupport.cpp +3 -2
  196. data/src/cxx_supportlib/UnionStationFilterSupport.h +3 -2
  197. data/src/cxx_supportlib/Utils.cpp +3 -2
  198. data/src/cxx_supportlib/Utils.h +3 -2
  199. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +3 -2
  200. data/src/cxx_supportlib/Utils/BlockingQueue.h +3 -2
  201. data/src/cxx_supportlib/Utils/BufferedIO.h +3 -2
  202. data/src/cxx_supportlib/Utils/CachedFileStat.cpp +3 -2
  203. data/src/cxx_supportlib/Utils/CachedFileStat.h +3 -2
  204. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +3 -2
  205. data/src/cxx_supportlib/Utils/ClassUtils.h +20 -2
  206. data/src/cxx_supportlib/Utils/Curl.h +3 -2
  207. data/src/cxx_supportlib/Utils/DateParsing.h +3 -2
  208. data/src/cxx_supportlib/Utils/FastStringStream.h +3 -2
  209. data/src/cxx_supportlib/Utils/FileChangeChecker.h +3 -2
  210. data/src/cxx_supportlib/Utils/HashMap.h +3 -2
  211. data/src/cxx_supportlib/Utils/Hasher.cpp +3 -2
  212. data/src/cxx_supportlib/Utils/Hasher.h +3 -2
  213. data/src/cxx_supportlib/Utils/HttpConstants.h +3 -2
  214. data/src/cxx_supportlib/Utils/IOUtils.cpp +3 -2
  215. data/src/cxx_supportlib/Utils/IOUtils.h +3 -2
  216. data/src/cxx_supportlib/Utils/IniFile.h +3 -2
  217. data/src/cxx_supportlib/Utils/JsonUtils.h +3 -2
  218. data/src/cxx_supportlib/Utils/LargeFiles.h +3 -2
  219. data/src/cxx_supportlib/Utils/MemZeroGuard.h +3 -2
  220. data/src/cxx_supportlib/Utils/MemoryBarrier.h +3 -2
  221. data/src/cxx_supportlib/Utils/MessageIO.h +3 -2
  222. data/src/cxx_supportlib/Utils/MessagePassing.h +4 -3
  223. data/src/cxx_supportlib/Utils/OptionParsing.h +3 -2
  224. data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +3 -2
  225. data/src/cxx_supportlib/Utils/ScopeGuard.h +3 -2
  226. data/src/cxx_supportlib/Utils/SpeedMeter.h +3 -2
  227. data/src/cxx_supportlib/Utils/StrIntUtils.cpp +3 -2
  228. data/src/cxx_supportlib/Utils/StrIntUtils.h +3 -2
  229. data/src/cxx_supportlib/Utils/StrIntUtilsNoStrictAliasing.cpp +3 -2
  230. data/src/cxx_supportlib/Utils/StringMap.h +3 -2
  231. data/src/cxx_supportlib/Utils/StringScanning.h +3 -2
  232. data/src/cxx_supportlib/Utils/SystemMetricsCollector.h +3 -2
  233. data/src/cxx_supportlib/Utils/SystemTime.cpp +3 -2
  234. data/src/cxx_supportlib/Utils/SystemTime.h +3 -2
  235. data/src/cxx_supportlib/Utils/Timer.h +3 -2
  236. data/src/cxx_supportlib/Utils/VariantMap.h +3 -2
  237. data/src/cxx_supportlib/{AgentsStarter.cpp → WatchdogLauncher.cpp} +42 -41
  238. data/src/cxx_supportlib/{AgentsStarter.h → WatchdogLauncher.h} +99 -112
  239. data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
  240. data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
  241. data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
  242. data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
  243. data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +1 -1
  244. data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +1 -1
  245. data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +1 -1
  246. data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +1 -1
  247. data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +1 -1
  248. data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +1 -1
  249. data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +1 -1
  250. data/src/cxx_supportlib/oxt/implementation.cpp +1 -1
  251. data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
  252. data/src/cxx_supportlib/oxt/macros.hpp +1 -1
  253. data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
  254. data/src/cxx_supportlib/oxt/system_calls.cpp +1 -1
  255. data/src/cxx_supportlib/oxt/system_calls.hpp +1 -1
  256. data/src/cxx_supportlib/oxt/thread.hpp +1 -1
  257. data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +1 -1
  259. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -2
  260. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/Changes +0 -0
  261. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/LICENSE +0 -0
  262. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/Makefile.am +0 -0
  263. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/Makefile.in +0 -0
  264. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/README +0 -0
  265. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/aclocal.m4 +0 -0
  266. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/autogen.sh +0 -0
  267. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/config.guess +0 -0
  268. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/config.h.in +0 -0
  269. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/config.sub +0 -0
  270. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/configure +0 -0
  271. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/configure.ac +0 -0
  272. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/depcomp +0 -0
  273. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev++.h +0 -0
  274. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev.c +0 -0
  275. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev.h +0 -0
  276. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_epoll.c +0 -0
  277. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_kqueue.c +0 -0
  278. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_poll.c +0 -0
  279. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_port.c +0 -0
  280. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_select.c +0 -0
  281. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_vars.h +0 -0
  282. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_win32.c +0 -0
  283. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_wrap.h +0 -0
  284. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/event.c +0 -0
  285. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/event.h +0 -0
  286. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/install-sh +0 -0
  287. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/libev.m4 +0 -0
  288. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ltmain.sh +0 -0
  289. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/missing +0 -0
  290. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/mkinstalldirs +0 -0
  291. data/src/helper-scripts/backtrace-sanitizer.rb +3 -2
  292. data/src/helper-scripts/crash-watch.rb +1 -1
  293. data/src/helper-scripts/download_binaries/extconf.rb +3 -2
  294. data/src/helper-scripts/meteor-loader.rb +3 -2
  295. data/src/helper-scripts/node-loader.js +8 -5
  296. data/src/helper-scripts/prespawn +3 -2
  297. data/src/helper-scripts/rack-loader.rb +6 -3
  298. data/src/helper-scripts/rack-preloader.rb +6 -3
  299. data/src/helper-scripts/wsgi-loader.py +3 -2
  300. data/src/nginx_module/CacheLocationConfig.c +3 -2
  301. data/src/nginx_module/CacheLocationConfig.c.erb +3 -2
  302. data/src/nginx_module/Configuration.c +1 -1
  303. data/src/nginx_module/Configuration.h +1 -1
  304. data/src/nginx_module/ConfigurationCommands.c +3 -2
  305. data/src/nginx_module/ConfigurationCommands.c.erb +3 -2
  306. data/src/nginx_module/ConfigurationFields.h +3 -2
  307. data/src/nginx_module/ConfigurationFields.h.erb +3 -2
  308. data/src/nginx_module/ContentHandler.c +7 -7
  309. data/src/nginx_module/ContentHandler.h +1 -1
  310. data/src/nginx_module/CreateLocationConfig.c +3 -2
  311. data/src/nginx_module/CreateLocationConfig.c.erb +3 -2
  312. data/src/nginx_module/MergeLocationConfig.c +3 -2
  313. data/src/nginx_module/MergeLocationConfig.c.erb +3 -2
  314. data/src/nginx_module/StaticContentHandler.c +1 -1
  315. data/src/nginx_module/StaticContentHandler.h +1 -1
  316. data/src/nginx_module/config +1 -1
  317. data/src/nginx_module/ngx_http_passenger_module.c +46 -46
  318. data/src/nginx_module/ngx_http_passenger_module.h +3 -3
  319. data/src/nodejs_supportlib/phusion_passenger/line_reader.js +3 -2
  320. data/src/ruby_native_extension/extconf.rb +3 -2
  321. data/src/ruby_native_extension/passenger_native_support.c +6 -5
  322. data/src/ruby_supportlib/phusion_passenger.rb +4 -3
  323. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +3 -2
  324. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +3 -2
  325. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +3 -2
  326. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
  327. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +3 -2
  328. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +3 -2
  329. data/src/ruby_supportlib/phusion_passenger/common_library.rb +6 -5
  330. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +3 -2
  331. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +3 -2
  332. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +3 -2
  333. data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +3 -2
  334. data/src/ruby_supportlib/phusion_passenger/config/command.rb +3 -2
  335. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +3 -2
  336. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +3 -2
  337. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +3 -2
  338. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -2
  339. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -2
  340. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -2
  341. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -2
  342. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +3 -2
  343. data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +3 -2
  344. data/src/ruby_supportlib/phusion_passenger/config/main.rb +3 -2
  345. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +25 -3
  346. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +3 -2
  347. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +4 -3
  348. data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +3 -2
  349. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +3 -2
  350. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +3 -2
  351. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +3 -2
  352. data/src/ruby_supportlib/phusion_passenger/constants.rb +3 -11
  353. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +3 -2
  354. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +21 -2
  355. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +8 -2
  356. data/src/ruby_supportlib/phusion_passenger/message_client.rb +3 -2
  357. data/src/ruby_supportlib/phusion_passenger/native_support.rb +3 -2
  358. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +3 -2
  359. data/src/ruby_supportlib/phusion_passenger/packaging.rb +3 -2
  360. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +3 -2
  361. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +3 -2
  362. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +3 -2
  363. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +3 -2
  364. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +3 -2
  365. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +3 -2
  366. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +3 -2
  367. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck.rb +6 -0
  368. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +5 -1
  369. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +3 -2
  370. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +61 -0
  371. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +3 -2
  372. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +3 -2
  373. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +3 -2
  374. data/src/ruby_supportlib/phusion_passenger/plugin.rb +3 -2
  375. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +3 -2
  376. data/src/ruby_supportlib/phusion_passenger/public_api.rb +3 -2
  377. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +3 -2
  378. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +18 -6
  379. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +3 -2
  380. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +3 -2
  381. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +45 -18
  382. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +3 -2
  383. data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +3 -2
  384. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +8 -7
  385. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +3 -2
  386. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +4 -3
  387. data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +3 -2
  388. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +3 -2
  389. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +23 -20
  390. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -2
  391. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +3 -2
  392. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +8 -3
  393. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +8 -3
  394. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +5 -3
  395. data/src/ruby_supportlib/phusion_passenger/utils.rb +3 -2
  396. data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +3 -2
  397. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +3 -2
  398. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +3 -2
  399. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +3 -2
  400. data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +3 -2
  401. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +3 -2
  402. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +3 -2
  403. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +3 -2
  404. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +3 -2
  405. metadata +36 -37
  406. metadata.gz.asc +7 -7
  407. data/src/cxx_supportlib/Account.h +0 -171
  408. data/src/cxx_supportlib/AccountsDatabase.h +0 -125
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2010-2015 Phusion
3
+ * Copyright (c) 2010-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -30,7 +31,6 @@
30
31
  #include <utility>
31
32
  #include <boost/shared_array.hpp>
32
33
  #include <AppTypes.h>
33
- #include <Account.h>
34
34
  #include <DataStructures/HashedStaticString.h>
35
35
  #include <Constants.h>
36
36
  #include <ResourceLocator.h>
@@ -272,13 +272,6 @@ public:
272
272
  */
273
273
  StaticString meteorAppSettings;
274
274
 
275
- /**
276
- * Any rights that the spawned application process may have. The SpawnManager
277
- * will create a new account for each spawned app, and that account will be
278
- * assigned these rights.
279
- */
280
- Account::Rights rights;
281
-
282
275
  /**
283
276
  * Environment variables which should be passed to the spawned application
284
277
  * process. This is a base64-encoded string of key-value pairs, with each
@@ -468,7 +461,6 @@ public:
468
461
  ruby(DEFAULT_RUBY, sizeof(DEFAULT_RUBY) - 1),
469
462
  python(DEFAULT_PYTHON, sizeof(DEFAULT_PYTHON) - 1),
470
463
  nodejs(DEFAULT_NODEJS, sizeof(DEFAULT_NODEJS) - 1),
471
- rights(DEFAULT_BACKEND_ACCOUNT_RIGHTS),
472
464
  debugger(false),
473
465
  loadShellEnvvars(true),
474
466
  userSwitching(true),
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2010-2015 Phusion
3
+ * Copyright (c) 2010-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2010-2015 Phusion
3
+ * Copyright (c) 2010-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2014-2015 Phusion
3
+ * Copyright (c) 2014-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -95,6 +96,7 @@ virtual void reinitializeRequest(Client *client, Request *req) {
95
96
  req->cacheKey = HashedStaticString();
96
97
  req->cacheControl = NULL;
97
98
  req->varyCookie = NULL;
99
+ req->envvars = NULL;
98
100
 
99
101
  #ifdef DEBUG_RH_EVENT_LOOP_BLOCKING
100
102
  req->timedAppPoolGet = false;
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -195,12 +196,20 @@ initializePoolOptions(Client *client, Request *req, RequestAnalysis &analysis) {
195
196
  }
196
197
  } else {
197
198
  disconnectWithError(&client, "the !~PASSENGER_APP_GROUP_NAME header must be set");
198
- return;
199
199
  }
200
200
  }
201
201
 
202
202
  if (!req->ended()) {
203
- fillPoolOption(req, req->options.environmentVariables, PASSENGER_ENV_VARS);
203
+ // See comment for req->envvars to learn how it is different
204
+ // from req->options.environmentVariables.
205
+ req->envvars = req->secureHeaders.lookup(PASSENGER_ENV_VARS);
206
+ if (req->envvars != NULL && req->envvars->size > 0) {
207
+ req->envvars = psg_lstr_make_contiguous(req->envvars, req->pool);
208
+ req->options.environmentVariables = StaticString(
209
+ req->envvars->start->data,
210
+ req->envvars->size);
211
+ }
212
+
204
213
  fillPoolOption(req, req->options.maxRequests, PASSENGER_MAX_REQUESTS);
205
214
  }
206
215
  }
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -93,6 +94,13 @@ public:
93
94
  HashedStaticString cacheKey;
94
95
  LString *cacheControl;
95
96
  LString *varyCookie;
97
+ // Value of the `!~PASSENGER_ENV_VARS` header. This is different
98
+ // from `options.environmentVariables`. If `!~PASSENGER_ENV_VARS`
99
+ // is not set or is empty, then `envvars` is NULL, while
100
+ // `options.environmentVariables` retains a previous value.
101
+ //
102
+ // This value is guaranteed to be contiguous.
103
+ LString *envvars;
96
104
 
97
105
  #ifdef DEBUG_RH_EVENT_LOOP_BLOCKING
98
106
  bool timedAppPoolGet;
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion
3
+ * Copyright (c) 2011-2015 Phusion Holding B.V.
4
4
  *
5
- * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
+ * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
+ * trademarks of Phusion Holding B.V.
6
7
  *
7
8
  * Permission is hereby granted, free of charge, to any person obtaining a copy
8
9
  * of this software and associated documentation files (the "Software"), to deal
@@ -194,16 +195,16 @@ determineHeaderSizeForSessionProtocol(Request *req,
194
195
  } else {
195
196
  state.contentLength = NULL;
196
197
  }
197
- if (!req->options.environmentVariables.empty()) {
198
- size_t len = modp_b64_decode_len(req->options.environmentVariables.size());
198
+ if (req->envvars != NULL) {
199
+ size_t len = modp_b64_decode_len(req->envvars->size);
199
200
  state.environmentVariablesData = (char *) malloc(len);
200
201
  if (state.environmentVariablesData == NULL) {
201
202
  throw RuntimeException("Unable to allocate memory for base64 "
202
203
  "decoding of environment variables");
203
204
  }
204
205
  len = modp_b64_decode(state.environmentVariablesData,
205
- req->options.environmentVariables.data(),
206
- req->options.environmentVariables.size());
206
+ req->envvars->start->data,
207
+ req->envvars->size);
207
208
  if (len == (size_t) -1) {
208
209
  throw RuntimeException("Unable to base64 decode environment variables");
209
210
  }
@@ -546,7 +547,8 @@ sendHeaderToAppWithHttpProtocol(Client *client, Request *req) {
546
547
  unsigned int nbuffers, dataSize;
547
548
  bool ok;
548
549
 
549
- ok = constructHeaderBuffersForHttpProtocol(req, NULL, 0, nbuffers, dataSize, cache);
550
+ ok = constructHeaderBuffersForHttpProtocol(req, NULL, 0,
551
+ nbuffers, dataSize, cache);
550
552
  assert(ok);
551
553
 
552
554
  buffers = (struct iovec *) psg_palloc(req->pool,
@@ -625,7 +627,7 @@ constructHeaderBuffersForHttpProtocol(Request *req, struct iovec *buffers,
625
627
  if (!cache.cached) {
626
628
  cache.methodStr = http_method_str(req->method);
627
629
  cache.remoteAddr = req->secureHeaders.lookup(REMOTE_ADDR);
628
- cache.setCookie = req->headers.lookup(ServerKit::HTTP_SET_COOKIE);
630
+ cache.setCookie = req->headers.lookup(ServerKit::HTTP_SET_COOKIE);
629
631
  cache.cached = true;
630
632
  }
631
633
 
@@ -719,6 +721,7 @@ constructHeaderBuffersForHttpProtocol(Request *req, struct iovec *buffers,
719
721
 
720
722
  if (req->https) {
721
723
  PUSH_STATIC_BUFFER("X-Forwarded-Proto: https\r\n");
724
+ PUSH_STATIC_BUFFER("!~Passenger-Proto: https\r\n");
722
725
  }
723
726
 
724
727
  if (cache.remoteAddr != NULL && cache.remoteAddr->size > 0) {
@@ -737,10 +740,38 @@ constructHeaderBuffersForHttpProtocol(Request *req, struct iovec *buffers,
737
740
  dataSize += cache.remoteAddr->size;
738
741
 
739
742
  PUSH_STATIC_BUFFER("\r\n");
743
+
744
+ PUSH_STATIC_BUFFER("!~Passenger-Client-Address: ");
745
+
746
+ part = cache.remoteAddr->start;
747
+ while (part != NULL) {
748
+ if (buffers != NULL) {
749
+ BEGIN_PUSH_NEXT_BUFFER();
750
+ buffers[i].iov_base = (void *) part->data;
751
+ buffers[i].iov_len = part->size;
752
+ }
753
+ INC_BUFFER_ITER(i);
754
+ part = part->next;
755
+ }
756
+ dataSize += cache.remoteAddr->size;
757
+
758
+ PUSH_STATIC_BUFFER("\r\n");
759
+ }
760
+
761
+ if (req->envvars != NULL) {
762
+ PUSH_STATIC_BUFFER("!~Passenger-Envvars: ");
763
+ if (buffers != NULL) {
764
+ BEGIN_PUSH_NEXT_BUFFER();
765
+ buffers[i].iov_base = (void *) req->envvars->start->data;
766
+ buffers[i].iov_len = req->envvars->size;
767
+ }
768
+ INC_BUFFER_ITER(i);
769
+ dataSize += req->envvars->size;
770
+ PUSH_STATIC_BUFFER("\r\n");
740
771
  }
741
772
 
742
773
  if (req->options.analytics) {
743
- PUSH_STATIC_BUFFER("Passenger-Txn-Id: ");
774
+ PUSH_STATIC_BUFFER("!~Passenger-Txn-Id: ");
744
775
 
745
776
  if (buffers != NULL) {
746
777
  BEGIN_PUSH_NEXT_BUFFER();