passenger 3.0.7 → 3.0.8

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 (439) hide show
  1. data/NEWS +27 -0
  2. data/README +1 -1
  3. data/bin/passenger-install-nginx-module +3 -1
  4. data/build/config.rb +2 -1
  5. data/build/cxx_tests.rb +7 -3
  6. data/build/documentation.rb +5 -40
  7. data/build/nginx.rb +0 -1
  8. data/build/packaging.rb +0 -6
  9. data/build/rake_extensions.rb +5 -0
  10. data/doc/Architectural overview.html +344 -77
  11. data/doc/Security of user switching support.html +338 -71
  12. data/doc/Users guide Apache with comments.html +4830 -0
  13. data/doc/Users guide Apache.html +695 -428
  14. data/doc/Users guide Apache.idmap.txt +80 -0
  15. data/doc/Users guide Apache.txt +5 -5
  16. data/doc/Users guide Nginx.html +591 -313
  17. data/doc/Users guide Nginx.txt +9 -3
  18. data/doc/Users guide Standalone.html +344 -77
  19. data/ext/boost/src/pthread/thread.cpp +1 -1
  20. data/ext/common/AccountsDatabase.h +1 -1
  21. data/ext/common/Constants.h +2 -2
  22. data/ext/common/Logging.h +2 -1
  23. data/ext/common/LoggingAgent/FilterSupport.h +107 -3
  24. data/ext/common/Session.h +1 -1
  25. data/ext/common/Utils.cpp +2 -0
  26. data/ext/common/Utils/Dechunker.h +232 -0
  27. data/ext/common/Utils/HttpHeaderBufferer.h +165 -0
  28. data/ext/common/Utils/StrIntUtils.cpp +51 -15
  29. data/ext/common/Utils/StrIntUtils.h +3 -0
  30. data/ext/common/Utils/StreamBoyerMooreHorspool.h +506 -0
  31. data/ext/nginx/Configuration.c +36 -282
  32. data/ext/nginx/ContentHandler.c +17 -0
  33. data/ext/nginx/HelperAgent.cpp +397 -39
  34. data/ext/oxt/tracable_exception.cpp +3 -1
  35. data/ext/ruby/extconf.rb +1 -0
  36. data/ext/ruby/passenger_native_support.c +3 -0
  37. data/helper-scripts/prespawn +113 -31
  38. data/lib/phusion_passenger.rb +2 -2
  39. data/lib/phusion_passenger/standalone/runtime_installer.rb +3 -2
  40. data/lib/phusion_passenger/standalone/start_command.rb +12 -12
  41. data/test/cxx/DechunkerTest.cpp +216 -0
  42. data/test/cxx/FilterSupportTest.cpp +31 -4
  43. data/test/cxx/HttpHeaderBuffererTest.cpp +203 -0
  44. data/test/cxx/UtilsTest.cpp +46 -3
  45. data/test/integration_tests/hello_world_rack_spec.rb +7 -0
  46. data/test/stub/rack/config.ru +6 -1
  47. data/test/stub/rails_apps/1.2/empty/public/dispatch.cgi +1 -1
  48. data/test/stub/rails_apps/1.2/empty/public/dispatch.fcgi +1 -1
  49. data/test/stub/rails_apps/1.2/empty/public/dispatch.rb +1 -1
  50. data/test/stub/rails_apps/2.0/empty/public/dispatch.cgi +1 -1
  51. data/test/stub/rails_apps/2.0/empty/public/dispatch.fcgi +1 -1
  52. data/test/stub/rails_apps/2.0/empty/public/dispatch.rb +1 -1
  53. data/test/stub/rails_apps/2.2/empty/public/dispatch.cgi +1 -1
  54. data/test/stub/rails_apps/2.2/empty/public/dispatch.fcgi +1 -1
  55. data/test/stub/rails_apps/2.2/empty/public/dispatch.rb +1 -1
  56. metadata +20 -403
  57. data/doc/Doxyfile +0 -241
  58. data/doc/cxxapi/AbstractSpawnManager_8h_source.html +0 -141
  59. data/doc/cxxapi/Account_8h_source.html +0 -206
  60. data/doc/cxxapi/AccountsDatabase_8h_source.html +0 -161
  61. data/doc/cxxapi/AgentBase_8h_source.html +0 -70
  62. data/doc/cxxapi/AgentsStarter_8h_source.html +0 -112
  63. data/doc/cxxapi/BCrypt_8h_source.html +0 -104
  64. data/doc/cxxapi/Blowfish_8h_source.html +0 -134
  65. data/doc/cxxapi/Bucket_8h_source.html +0 -118
  66. data/doc/cxxapi/Constants_8h_source.html +0 -79
  67. data/doc/cxxapi/ContentHandler_8h_source.html +0 -95
  68. data/doc/cxxapi/DirectoryMapper_8h_source.html +0 -311
  69. data/doc/cxxapi/EventedClient_8h_source.html +0 -733
  70. data/doc/cxxapi/EventedMessageServer_8h_source.html +0 -358
  71. data/doc/cxxapi/EventedServer_8h_source.html +0 -326
  72. data/doc/cxxapi/Exceptions_8h_source.html +0 -393
  73. data/doc/cxxapi/FileDescriptor_8h_source.html +0 -324
  74. data/doc/cxxapi/Hooks_8h_source.html +0 -76
  75. data/doc/cxxapi/HttpStatusExtractor_8h_source.html +0 -382
  76. data/doc/cxxapi/IniFile_8h_source.html +0 -527
  77. data/doc/cxxapi/Logging_8h_source.html +0 -796
  78. data/doc/cxxapi/MessageChannel_8h_source.html +0 -776
  79. data/doc/cxxapi/MessageClient_8h_source.html +0 -328
  80. data/doc/cxxapi/MessageReadersWriters_8h_source.html +0 -539
  81. data/doc/cxxapi/MessageServer_8h_source.html +0 -612
  82. data/doc/cxxapi/PoolOptions_8h_source.html +0 -549
  83. data/doc/cxxapi/Process_8h_source.html +0 -286
  84. data/doc/cxxapi/RandomGenerator_8h_source.html +0 -191
  85. data/doc/cxxapi/ResourceLocator_8h_source.html +0 -166
  86. data/doc/cxxapi/SafeLibev_8h_source.html +0 -180
  87. data/doc/cxxapi/ScgiRequestParser_8h_source.html +0 -406
  88. data/doc/cxxapi/ServerInstanceDir_8h_source.html +0 -378
  89. data/doc/cxxapi/Session_8h_source.html +0 -501
  90. data/doc/cxxapi/SpawnManager_8h_source.html +0 -647
  91. data/doc/cxxapi/StaticContentHandler_8h_source.html +0 -69
  92. data/doc/cxxapi/StaticString_8h_source.html +0 -329
  93. data/doc/cxxapi/StringListCreator_8h_source.html +0 -114
  94. data/doc/cxxapi/Utils_8h_source.html +0 -469
  95. data/doc/cxxapi/annotated.html +0 -87
  96. data/doc/cxxapi/apache2_2Configuration_8h_source.html +0 -82
  97. data/doc/cxxapi/classAgentWatcher-members.html +0 -54
  98. data/doc/cxxapi/classAgentWatcher.html +0 -419
  99. data/doc/cxxapi/classClient-members.html +0 -38
  100. data/doc/cxxapi/classClient.html +0 -123
  101. data/doc/cxxapi/classHooks-members.html +0 -40
  102. data/doc/cxxapi/classHooks.html +0 -153
  103. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +0 -40
  104. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +0 -187
  105. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.map +0 -3
  106. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.md5 +0 -1
  107. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.png +0 -0
  108. data/doc/cxxapi/classPassenger_1_1ArgumentException-members.html +0 -36
  109. data/doc/cxxapi/classPassenger_1_1ArgumentException.html +0 -56
  110. data/doc/cxxapi/classPassenger_1_1ArrayMessage-members.html +0 -37
  111. data/doc/cxxapi/classPassenger_1_1ArrayMessage.html +0 -113
  112. data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +0 -38
  113. data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +0 -112
  114. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +0 -36
  115. data/doc/cxxapi/classPassenger_1_1BusyException.html +0 -54
  116. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +0 -36
  117. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +0 -51
  118. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +0 -41
  119. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +0 -223
  120. data/doc/cxxapi/classPassenger_1_1EOFException-members.html +0 -36
  121. data/doc/cxxapi/classPassenger_1_1EOFException.html +0 -61
  122. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.map +0 -3
  123. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.md5 +0 -1
  124. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.png +0 -0
  125. data/doc/cxxapi/classPassenger_1_1EventFd-members.html +0 -36
  126. data/doc/cxxapi/classPassenger_1_1EventFd.html +0 -52
  127. data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +0 -59
  128. data/doc/cxxapi/classPassenger_1_1EventedClient.html +0 -531
  129. data/doc/cxxapi/classPassenger_1_1EventedMessageServer-members.html +0 -37
  130. data/doc/cxxapi/classPassenger_1_1EventedMessageServer.html +0 -59
  131. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.map +0 -3
  132. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.md5 +0 -1
  133. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.png +0 -0
  134. data/doc/cxxapi/classPassenger_1_1EventedServer-members.html +0 -37
  135. data/doc/cxxapi/classPassenger_1_1EventedServer.html +0 -93
  136. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.map +0 -3
  137. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.md5 +0 -1
  138. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.png +0 -0
  139. data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +0 -41
  140. data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +0 -178
  141. data/doc/cxxapi/classPassenger_1_1FileDescriptorPair-members.html +0 -36
  142. data/doc/cxxapi/classPassenger_1_1FileDescriptorPair.html +0 -52
  143. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +0 -36
  144. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +0 -58
  145. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +0 -3
  146. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +0 -1
  147. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
  148. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +0 -41
  149. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +0 -66
  150. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +0 -3
  151. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +0 -1
  152. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
  153. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor-members.html +0 -39
  154. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +0 -128
  155. data/doc/cxxapi/classPassenger_1_1IOException-members.html +0 -36
  156. data/doc/cxxapi/classPassenger_1_1IOException.html +0 -61
  157. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +0 -4
  158. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +0 -1
  159. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
  160. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +0 -57
  161. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +0 -839
  162. data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +0 -49
  163. data/doc/cxxapi/classPassenger_1_1MessageServer.html +0 -407
  164. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +0 -36
  165. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +0 -58
  166. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +0 -3
  167. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +0 -1
  168. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
  169. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +0 -41
  170. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +0 -165
  171. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +0 -3
  172. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +0 -1
  173. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
  174. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +0 -39
  175. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +0 -173
  176. data/doc/cxxapi/classPassenger_1_1Process-members.html +0 -44
  177. data/doc/cxxapi/classPassenger_1_1Process.html +0 -290
  178. data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +0 -37
  179. data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +0 -79
  180. data/doc/cxxapi/classPassenger_1_1ResourceLocator-members.html +0 -36
  181. data/doc/cxxapi/classPassenger_1_1ResourceLocator.html +0 -51
  182. data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +0 -36
  183. data/doc/cxxapi/classPassenger_1_1RuntimeException.html +0 -54
  184. data/doc/cxxapi/classPassenger_1_1SafeLibev-members.html +0 -36
  185. data/doc/cxxapi/classPassenger_1_1SafeLibev.html +0 -51
  186. data/doc/cxxapi/classPassenger_1_1ScalarMessage-members.html +0 -37
  187. data/doc/cxxapi/classPassenger_1_1ScalarMessage.html +0 -76
  188. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +0 -50
  189. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +0 -285
  190. data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +0 -36
  191. data/doc/cxxapi/classPassenger_1_1SecurityException.html +0 -56
  192. data/doc/cxxapi/classPassenger_1_1Session-members.html +0 -53
  193. data/doc/cxxapi/classPassenger_1_1Session.html +0 -556
  194. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.map +0 -3
  195. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.md5 +0 -1
  196. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.png +0 -0
  197. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +0 -39
  198. data/doc/cxxapi/classPassenger_1_1SpawnException.html +0 -101
  199. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +0 -42
  200. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +0 -292
  201. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.map +0 -3
  202. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.md5 +0 -1
  203. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.png +0 -0
  204. data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +0 -54
  205. data/doc/cxxapi/classPassenger_1_1StandardSession.html +0 -394
  206. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.map +0 -3
  207. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.md5 +0 -1
  208. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.png +0 -0
  209. data/doc/cxxapi/classPassenger_1_1StaticString-members.html +0 -36
  210. data/doc/cxxapi/classPassenger_1_1StaticString.html +0 -56
  211. data/doc/cxxapi/classPassenger_1_1SyntaxError-members.html +0 -36
  212. data/doc/cxxapi/classPassenger_1_1SyntaxError.html +0 -54
  213. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +0 -40
  214. data/doc/cxxapi/classPassenger_1_1SystemException.html +0 -155
  215. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +0 -4
  216. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +0 -1
  217. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
  218. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +0 -40
  219. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +0 -61
  220. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.map +0 -3
  221. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.md5 +0 -1
  222. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.png +0 -0
  223. data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +0 -36
  224. data/doc/cxxapi/classPassenger_1_1TimeoutException.html +0 -54
  225. data/doc/cxxapi/classPassenger_1_1Uint16Message-members.html +0 -36
  226. data/doc/cxxapi/classPassenger_1_1Uint16Message.html +0 -51
  227. data/doc/cxxapi/classPassenger_1_1Uint32Message-members.html +0 -36
  228. data/doc/cxxapi/classPassenger_1_1Uint32Message.html +0 -51
  229. data/doc/cxxapi/classServer-members.html +0 -36
  230. data/doc/cxxapi/classServer.html +0 -49
  231. data/doc/cxxapi/classServerInstanceDirToucher-members.html +0 -36
  232. data/doc/cxxapi/classServerInstanceDirToucher.html +0 -47
  233. data/doc/cxxapi/classes.html +0 -52
  234. data/doc/cxxapi/definitions_8h_source.html +0 -36
  235. data/doc/cxxapi/doxygen.css +0 -532
  236. data/doc/cxxapi/doxygen.png +0 -0
  237. data/doc/cxxapi/files.html +0 -76
  238. data/doc/cxxapi/ftv2blank.png +0 -0
  239. data/doc/cxxapi/ftv2doc.png +0 -0
  240. data/doc/cxxapi/ftv2folderclosed.png +0 -0
  241. data/doc/cxxapi/ftv2folderopen.png +0 -0
  242. data/doc/cxxapi/ftv2lastnode.png +0 -0
  243. data/doc/cxxapi/ftv2link.png +0 -0
  244. data/doc/cxxapi/ftv2mlastnode.png +0 -0
  245. data/doc/cxxapi/ftv2mnode.png +0 -0
  246. data/doc/cxxapi/ftv2node.png +0 -0
  247. data/doc/cxxapi/ftv2plastnode.png +0 -0
  248. data/doc/cxxapi/ftv2pnode.png +0 -0
  249. data/doc/cxxapi/ftv2vertline.png +0 -0
  250. data/doc/cxxapi/functions.html +0 -103
  251. data/doc/cxxapi/functions_0x62.html +0 -82
  252. data/doc/cxxapi/functions_0x63.html +0 -102
  253. data/doc/cxxapi/functions_0x64.html +0 -102
  254. data/doc/cxxapi/functions_0x65.html +0 -88
  255. data/doc/cxxapi/functions_0x66.html +0 -100
  256. data/doc/cxxapi/functions_0x67.html +0 -167
  257. data/doc/cxxapi/functions_0x68.html +0 -88
  258. data/doc/cxxapi/functions_0x69.html +0 -96
  259. data/doc/cxxapi/functions_0x6b.html +0 -80
  260. data/doc/cxxapi/functions_0x6c.html +0 -88
  261. data/doc/cxxapi/functions_0x6d.html +0 -88
  262. data/doc/cxxapi/functions_0x6e.html +0 -86
  263. data/doc/cxxapi/functions_0x6f.html +0 -94
  264. data/doc/cxxapi/functions_0x70.html +0 -94
  265. data/doc/cxxapi/functions_0x72.html +0 -110
  266. data/doc/cxxapi/functions_0x73.html +0 -171
  267. data/doc/cxxapi/functions_0x74.html +0 -85
  268. data/doc/cxxapi/functions_0x75.html +0 -85
  269. data/doc/cxxapi/functions_0x77.html +0 -92
  270. data/doc/cxxapi/functions_0x7e.html +0 -79
  271. data/doc/cxxapi/functions_enum.html +0 -49
  272. data/doc/cxxapi/functions_eval.html +0 -67
  273. data/doc/cxxapi/functions_func.html +0 -531
  274. data/doc/cxxapi/functions_vars.html +0 -278
  275. data/doc/cxxapi/graph_legend.dot +0 -22
  276. data/doc/cxxapi/graph_legend.html +0 -92
  277. data/doc/cxxapi/graph_legend.png +0 -0
  278. data/doc/cxxapi/group__Core.html +0 -46
  279. data/doc/cxxapi/group__Core.map +0 -3
  280. data/doc/cxxapi/group__Core.png +0 -0
  281. data/doc/cxxapi/group__Exceptions.html +0 -53
  282. data/doc/cxxapi/group__Hooks.html +0 -42
  283. data/doc/cxxapi/group__Hooks.map +0 -3
  284. data/doc/cxxapi/group__Hooks.png +0 -0
  285. data/doc/cxxapi/group__Support.html +0 -538
  286. data/doc/cxxapi/hierarchy.html +0 -101
  287. data/doc/cxxapi/index.html +0 -16
  288. data/doc/cxxapi/inherit__graph__0.map +0 -3
  289. data/doc/cxxapi/inherit__graph__0.md5 +0 -1
  290. data/doc/cxxapi/inherit__graph__0.png +0 -0
  291. data/doc/cxxapi/inherit__graph__1.map +0 -3
  292. data/doc/cxxapi/inherit__graph__1.md5 +0 -1
  293. data/doc/cxxapi/inherit__graph__1.png +0 -0
  294. data/doc/cxxapi/inherit__graph__10.map +0 -3
  295. data/doc/cxxapi/inherit__graph__10.md5 +0 -1
  296. data/doc/cxxapi/inherit__graph__10.png +0 -0
  297. data/doc/cxxapi/inherit__graph__11.map +0 -4
  298. data/doc/cxxapi/inherit__graph__11.md5 +0 -1
  299. data/doc/cxxapi/inherit__graph__11.png +0 -0
  300. data/doc/cxxapi/inherit__graph__12.map +0 -3
  301. data/doc/cxxapi/inherit__graph__12.md5 +0 -1
  302. data/doc/cxxapi/inherit__graph__12.png +0 -0
  303. data/doc/cxxapi/inherit__graph__13.map +0 -3
  304. data/doc/cxxapi/inherit__graph__13.md5 +0 -1
  305. data/doc/cxxapi/inherit__graph__13.png +0 -0
  306. data/doc/cxxapi/inherit__graph__14.map +0 -3
  307. data/doc/cxxapi/inherit__graph__14.md5 +0 -1
  308. data/doc/cxxapi/inherit__graph__14.png +0 -0
  309. data/doc/cxxapi/inherit__graph__15.map +0 -3
  310. data/doc/cxxapi/inherit__graph__15.md5 +0 -1
  311. data/doc/cxxapi/inherit__graph__15.png +0 -0
  312. data/doc/cxxapi/inherit__graph__16.map +0 -5
  313. data/doc/cxxapi/inherit__graph__16.md5 +0 -1
  314. data/doc/cxxapi/inherit__graph__16.png +0 -0
  315. data/doc/cxxapi/inherit__graph__17.map +0 -3
  316. data/doc/cxxapi/inherit__graph__17.md5 +0 -1
  317. data/doc/cxxapi/inherit__graph__17.png +0 -0
  318. data/doc/cxxapi/inherit__graph__18.map +0 -3
  319. data/doc/cxxapi/inherit__graph__18.md5 +0 -1
  320. data/doc/cxxapi/inherit__graph__18.png +0 -0
  321. data/doc/cxxapi/inherit__graph__19.map +0 -4
  322. data/doc/cxxapi/inherit__graph__19.md5 +0 -1
  323. data/doc/cxxapi/inherit__graph__19.png +0 -0
  324. data/doc/cxxapi/inherit__graph__2.map +0 -3
  325. data/doc/cxxapi/inherit__graph__2.md5 +0 -1
  326. data/doc/cxxapi/inherit__graph__2.png +0 -0
  327. data/doc/cxxapi/inherit__graph__20.map +0 -3
  328. data/doc/cxxapi/inherit__graph__20.md5 +0 -1
  329. data/doc/cxxapi/inherit__graph__20.png +0 -0
  330. data/doc/cxxapi/inherit__graph__21.map +0 -3
  331. data/doc/cxxapi/inherit__graph__21.md5 +0 -1
  332. data/doc/cxxapi/inherit__graph__21.png +0 -0
  333. data/doc/cxxapi/inherit__graph__22.map +0 -3
  334. data/doc/cxxapi/inherit__graph__22.md5 +0 -1
  335. data/doc/cxxapi/inherit__graph__22.png +0 -0
  336. data/doc/cxxapi/inherit__graph__23.map +0 -3
  337. data/doc/cxxapi/inherit__graph__23.md5 +0 -1
  338. data/doc/cxxapi/inherit__graph__23.png +0 -0
  339. data/doc/cxxapi/inherit__graph__24.map +0 -3
  340. data/doc/cxxapi/inherit__graph__24.md5 +0 -1
  341. data/doc/cxxapi/inherit__graph__24.png +0 -0
  342. data/doc/cxxapi/inherit__graph__25.map +0 -3
  343. data/doc/cxxapi/inherit__graph__25.md5 +0 -1
  344. data/doc/cxxapi/inherit__graph__25.png +0 -0
  345. data/doc/cxxapi/inherit__graph__26.map +0 -3
  346. data/doc/cxxapi/inherit__graph__26.md5 +0 -1
  347. data/doc/cxxapi/inherit__graph__26.png +0 -0
  348. data/doc/cxxapi/inherit__graph__27.map +0 -3
  349. data/doc/cxxapi/inherit__graph__27.md5 +0 -1
  350. data/doc/cxxapi/inherit__graph__27.png +0 -0
  351. data/doc/cxxapi/inherit__graph__28.map +0 -3
  352. data/doc/cxxapi/inherit__graph__28.md5 +0 -1
  353. data/doc/cxxapi/inherit__graph__28.png +0 -0
  354. data/doc/cxxapi/inherit__graph__29.map +0 -3
  355. data/doc/cxxapi/inherit__graph__29.md5 +0 -1
  356. data/doc/cxxapi/inherit__graph__29.png +0 -0
  357. data/doc/cxxapi/inherit__graph__3.map +0 -4
  358. data/doc/cxxapi/inherit__graph__3.md5 +0 -1
  359. data/doc/cxxapi/inherit__graph__3.png +0 -0
  360. data/doc/cxxapi/inherit__graph__30.map +0 -3
  361. data/doc/cxxapi/inherit__graph__30.md5 +0 -1
  362. data/doc/cxxapi/inherit__graph__30.png +0 -0
  363. data/doc/cxxapi/inherit__graph__31.map +0 -4
  364. data/doc/cxxapi/inherit__graph__31.md5 +0 -1
  365. data/doc/cxxapi/inherit__graph__31.png +0 -0
  366. data/doc/cxxapi/inherit__graph__32.map +0 -3
  367. data/doc/cxxapi/inherit__graph__32.md5 +0 -1
  368. data/doc/cxxapi/inherit__graph__32.png +0 -0
  369. data/doc/cxxapi/inherit__graph__33.map +0 -3
  370. data/doc/cxxapi/inherit__graph__33.md5 +0 -1
  371. data/doc/cxxapi/inherit__graph__33.png +0 -0
  372. data/doc/cxxapi/inherit__graph__34.map +0 -3
  373. data/doc/cxxapi/inherit__graph__34.md5 +0 -1
  374. data/doc/cxxapi/inherit__graph__34.png +0 -0
  375. data/doc/cxxapi/inherit__graph__35.map +0 -3
  376. data/doc/cxxapi/inherit__graph__35.md5 +0 -1
  377. data/doc/cxxapi/inherit__graph__35.png +0 -0
  378. data/doc/cxxapi/inherit__graph__36.map +0 -5
  379. data/doc/cxxapi/inherit__graph__36.md5 +0 -1
  380. data/doc/cxxapi/inherit__graph__36.png +0 -0
  381. data/doc/cxxapi/inherit__graph__37.map +0 -3
  382. data/doc/cxxapi/inherit__graph__37.md5 +0 -1
  383. data/doc/cxxapi/inherit__graph__37.png +0 -0
  384. data/doc/cxxapi/inherit__graph__38.map +0 -3
  385. data/doc/cxxapi/inherit__graph__38.md5 +0 -1
  386. data/doc/cxxapi/inherit__graph__38.png +0 -0
  387. data/doc/cxxapi/inherit__graph__39.map +0 -3
  388. data/doc/cxxapi/inherit__graph__39.md5 +0 -1
  389. data/doc/cxxapi/inherit__graph__39.png +0 -0
  390. data/doc/cxxapi/inherit__graph__4.map +0 -3
  391. data/doc/cxxapi/inherit__graph__4.md5 +0 -1
  392. data/doc/cxxapi/inherit__graph__4.png +0 -0
  393. data/doc/cxxapi/inherit__graph__40.map +0 -3
  394. data/doc/cxxapi/inherit__graph__40.md5 +0 -1
  395. data/doc/cxxapi/inherit__graph__40.png +0 -0
  396. data/doc/cxxapi/inherit__graph__41.map +0 -3
  397. data/doc/cxxapi/inherit__graph__41.md5 +0 -1
  398. data/doc/cxxapi/inherit__graph__41.png +0 -0
  399. data/doc/cxxapi/inherit__graph__5.map +0 -3
  400. data/doc/cxxapi/inherit__graph__5.md5 +0 -1
  401. data/doc/cxxapi/inherit__graph__5.png +0 -0
  402. data/doc/cxxapi/inherit__graph__6.map +0 -3
  403. data/doc/cxxapi/inherit__graph__6.md5 +0 -1
  404. data/doc/cxxapi/inherit__graph__6.png +0 -0
  405. data/doc/cxxapi/inherit__graph__7.map +0 -3
  406. data/doc/cxxapi/inherit__graph__7.md5 +0 -1
  407. data/doc/cxxapi/inherit__graph__7.png +0 -0
  408. data/doc/cxxapi/inherit__graph__8.map +0 -3
  409. data/doc/cxxapi/inherit__graph__8.md5 +0 -1
  410. data/doc/cxxapi/inherit__graph__8.png +0 -0
  411. data/doc/cxxapi/inherit__graph__9.map +0 -3
  412. data/doc/cxxapi/inherit__graph__9.md5 +0 -1
  413. data/doc/cxxapi/inherit__graph__9.png +0 -0
  414. data/doc/cxxapi/inherits.html +0 -165
  415. data/doc/cxxapi/main.html +0 -28
  416. data/doc/cxxapi/modules.html +0 -36
  417. data/doc/cxxapi/namespacePassenger.html +0 -585
  418. data/doc/cxxapi/namespacemembers.html +0 -190
  419. data/doc/cxxapi/namespacemembers_enum.html +0 -48
  420. data/doc/cxxapi/namespacemembers_eval.html +0 -57
  421. data/doc/cxxapi/namespacemembers_func.html +0 -114
  422. data/doc/cxxapi/namespacemembers_type.html +0 -54
  423. data/doc/cxxapi/namespaces.html +0 -37
  424. data/doc/cxxapi/nginx_2Configuration_8h_source.html +0 -126
  425. data/doc/cxxapi/ngx__http__passenger__module_8h_source.html +0 -95
  426. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +0 -36
  427. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +0 -51
  428. data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +0 -67
  429. data/doc/cxxapi/structPassenger_1_1PoolOptions.html +0 -647
  430. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +0 -36
  431. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +0 -51
  432. data/doc/cxxapi/tab_b.gif +0 -0
  433. data/doc/cxxapi/tab_l.gif +0 -0
  434. data/doc/cxxapi/tab_r.gif +0 -0
  435. data/doc/cxxapi/tabs.css +0 -105
  436. data/doc/cxxapi/tree.html +0 -249
  437. data/doc/template/horo.rb +0 -613
  438. data/ext/libev/config.h +0 -122
  439. data/ext/nginx/HttpStatusExtractor.h +0 -351
@@ -1,16 +1,35 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
1
+ <!DOCTYPE html>
2
+ <html lang="en">
4
3
  <head>
5
- <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
6
- <meta name="generator" content="AsciiDoc 8.6.1" />
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <meta name="generator" content="AsciiDoc 8.6.5">
7
6
  <title>Security of user switching support in Passenger</title>
8
7
  <style type="text/css">
9
- /* Debug borders */
10
- p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11
8
  /*
12
- border: 1px solid red;
13
- */
9
+ * AsciiDoc 'flask' theme for xhtml11 and html5 backends. A shameless knock-off
10
+ * of the Flask website styling (http://flask.pocoo.org/docs/).
11
+ *
12
+ * The implementation is straight-forward, consisting of the asciidoc.css file
13
+ * followed by theme specific overrides.
14
+ *
15
+ * */
16
+
17
+
18
+ /* Shared CSS for AsciiDoc xhtml11 and html5 backends */
19
+
20
+ /* Default font. */
21
+ body {
22
+ font-family: Georgia,serif;
23
+ }
24
+
25
+ /* Title font. */
26
+ h1, h2, h3, h4, h5, h6,
27
+ div.title, caption.title,
28
+ thead, p.table.header,
29
+ #toctitle,
30
+ #author, #revnumber, #revdate, #revremark,
31
+ #footer {
32
+ font-family: Arial,Helvetica,sans-serif;
14
33
  }
15
34
 
16
35
  body {
@@ -35,13 +54,8 @@ strong {
35
54
  color: #083194;
36
55
  }
37
56
 
38
- tt {
39
- color: navy;
40
- }
41
-
42
57
  h1, h2, h3, h4, h5, h6 {
43
58
  color: #527bbd;
44
- font-family: sans-serif;
45
59
  margin-top: 1.2em;
46
60
  margin-bottom: 0.5em;
47
61
  line-height: 1.3;
@@ -59,9 +73,11 @@ h3 {
59
73
  h3 + * {
60
74
  clear: left;
61
75
  }
76
+ h5 {
77
+ font-size: 1.0em;
78
+ }
62
79
 
63
80
  div.sectionbody {
64
- font-family: serif;
65
81
  margin-left: 0;
66
82
  }
67
83
 
@@ -77,45 +93,44 @@ p {
77
93
  ul, ol, li > p {
78
94
  margin-top: 0;
79
95
  }
96
+ ul > li { color: #aaa; }
97
+ ul > li > * { color: black; }
80
98
 
81
99
  pre {
82
100
  padding: 0;
83
101
  margin: 0;
84
102
  }
85
103
 
86
- span#author {
104
+ #author {
87
105
  color: #527bbd;
88
- font-family: sans-serif;
89
106
  font-weight: bold;
90
107
  font-size: 1.1em;
91
108
  }
92
- span#email {
109
+ #email {
93
110
  }
94
- span#revnumber, span#revdate, span#revremark {
95
- font-family: sans-serif;
111
+ #revnumber, #revdate, #revremark {
96
112
  }
97
113
 
98
- div#footer {
99
- font-family: sans-serif;
114
+ #footer {
100
115
  font-size: small;
101
116
  border-top: 2px solid silver;
102
117
  padding-top: 0.5em;
103
118
  margin-top: 4.0em;
104
119
  }
105
- div#footer-text {
120
+ #footer-text {
106
121
  float: left;
107
122
  padding-bottom: 0.5em;
108
123
  }
109
- div#footer-badges {
124
+ #footer-badges {
110
125
  float: right;
111
126
  padding-bottom: 0.5em;
112
127
  }
113
128
 
114
- div#preamble {
129
+ #preamble {
115
130
  margin-top: 1.5em;
116
131
  margin-bottom: 1.5em;
117
132
  }
118
- div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
133
+ div.imageblock, div.exampleblock, div.verseblock,
119
134
  div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
120
135
  div.admonitionblock {
121
136
  margin-top: 1.0em;
@@ -135,7 +150,6 @@ div.content { /* Block element content. */
135
150
  /* Block element titles. */
136
151
  div.title, caption.title {
137
152
  color: #527bbd;
138
- font-family: sans-serif;
139
153
  font-weight: bold;
140
154
  text-align: left;
141
155
  margin-top: 1.0em;
@@ -157,13 +171,15 @@ div.content + div.title {
157
171
 
158
172
  div.sidebarblock > div.content {
159
173
  background: #ffffee;
160
- border: 1px solid silver;
174
+ border: 1px solid #dddddd;
175
+ border-left: 4px solid #f0f0f0;
161
176
  padding: 0.5em;
162
177
  }
163
178
 
164
179
  div.listingblock > div.content {
165
- border: 1px solid silver;
166
- background: #f4f4f4;
180
+ border: 1px solid #dddddd;
181
+ border-left: 5px solid #f0f0f0;
182
+ background: #f8f8f8;
167
183
  padding: 0.5em;
168
184
  }
169
185
 
@@ -171,7 +187,7 @@ div.quoteblock, div.verseblock {
171
187
  padding-left: 1.0em;
172
188
  margin-left: 1.0em;
173
189
  margin-right: 10%;
174
- border-left: 5px solid #dddddd;
190
+ border-left: 5px solid #f0f0f0;
175
191
  color: #777777;
176
192
  }
177
193
 
@@ -182,6 +198,7 @@ div.quoteblock > div.attribution {
182
198
 
183
199
  div.verseblock > pre.content {
184
200
  font-family: inherit;
201
+ font-size: inherit;
185
202
  }
186
203
  div.verseblock > div.attribution {
187
204
  padding-top: 0.75em;
@@ -254,36 +271,12 @@ div.compact div, div.compact div {
254
271
  margin-bottom: 0.1em;
255
272
  }
256
273
 
257
- div.tableblock > table {
258
- border: 3px solid #527bbd;
259
- }
260
- thead, p.table.header {
261
- font-family: sans-serif;
262
- font-weight: bold;
263
- color: #527bbd;
264
- }
265
274
  tfoot {
266
275
  font-weight: bold;
267
276
  }
268
277
  td > div.verse {
269
278
  white-space: pre;
270
279
  }
271
- p.table {
272
- margin-top: 0;
273
- }
274
- /* Because the table frame attribute is overriden by CSS in most browsers. */
275
- div.tableblock > table[frame="void"] {
276
- border-style: none;
277
- }
278
- div.tableblock > table[frame="hsides"] {
279
- border-left-style: none;
280
- border-right-style: none;
281
- }
282
- div.tableblock > table[frame="vsides"] {
283
- border-top-style: none;
284
- border-bottom-style: none;
285
- }
286
-
287
280
 
288
281
  div.hdlist {
289
282
  margin-top: 0.8em;
@@ -350,16 +343,15 @@ div.colist td img {
350
343
  }
351
344
 
352
345
  @media print {
353
- div#footer-badges { display: none; }
346
+ #footer-badges { display: none; }
354
347
  }
355
348
 
356
- div#toc {
349
+ #toc {
357
350
  margin-bottom: 2.5em;
358
351
  }
359
352
 
360
- div#toctitle {
353
+ #toctitle {
361
354
  color: #527bbd;
362
- font-family: sans-serif;
363
355
  font-size: 1.1em;
364
356
  font-weight: bold;
365
357
  margin-top: 1.0em;
@@ -383,10 +375,223 @@ div.toclevel4 {
383
375
  font-size: 0.9em;
384
376
  }
385
377
 
378
+ span.aqua { color: aqua; }
379
+ span.black { color: black; }
380
+ span.blue { color: blue; }
381
+ span.fuchsia { color: fuchsia; }
382
+ span.gray { color: gray; }
383
+ span.green { color: green; }
384
+ span.lime { color: lime; }
385
+ span.maroon { color: maroon; }
386
+ span.navy { color: navy; }
387
+ span.olive { color: olive; }
388
+ span.purple { color: purple; }
389
+ span.red { color: red; }
390
+ span.silver { color: silver; }
391
+ span.teal { color: teal; }
392
+ span.white { color: white; }
393
+ span.yellow { color: yellow; }
394
+
395
+ span.aqua-background { background: aqua; }
396
+ span.black-background { background: black; }
397
+ span.blue-background { background: blue; }
398
+ span.fuchsia-background { background: fuchsia; }
399
+ span.gray-background { background: gray; }
400
+ span.green-background { background: green; }
401
+ span.lime-background { background: lime; }
402
+ span.maroon-background { background: maroon; }
403
+ span.navy-background { background: navy; }
404
+ span.olive-background { background: olive; }
405
+ span.purple-background { background: purple; }
406
+ span.red-background { background: red; }
407
+ span.silver-background { background: silver; }
408
+ span.teal-background { background: teal; }
409
+ span.white-background { background: white; }
410
+ span.yellow-background { background: yellow; }
411
+
412
+ span.big { font-size: 2em; }
413
+ span.small { font-size: 0.6em; }
414
+
415
+ span.underline { text-decoration: underline; }
416
+ span.overline { text-decoration: overline; }
417
+ span.line-through { text-decoration: line-through; }
418
+
419
+
420
+ /*
421
+ * xhtml11 specific
422
+ *
423
+ * */
424
+
425
+ tt {
426
+ font-family: monospace;
427
+ font-size: inherit;
428
+ color: navy;
429
+ }
430
+
431
+ div.tableblock {
432
+ margin-top: 1.0em;
433
+ margin-bottom: 1.5em;
434
+ }
435
+ div.tableblock > table {
436
+ border: 3px solid #527bbd;
437
+ }
438
+ thead, p.table.header {
439
+ font-weight: bold;
440
+ color: #527bbd;
441
+ }
442
+ p.table {
443
+ margin-top: 0;
444
+ }
445
+ /* Because the table frame attribute is overriden by CSS in most browsers. */
446
+ div.tableblock > table[frame="void"] {
447
+ border-style: none;
448
+ }
449
+ div.tableblock > table[frame="hsides"] {
450
+ border-left-style: none;
451
+ border-right-style: none;
452
+ }
453
+ div.tableblock > table[frame="vsides"] {
454
+ border-top-style: none;
455
+ border-bottom-style: none;
456
+ }
457
+
458
+
459
+ /*
460
+ * html5 specific
461
+ *
462
+ * */
463
+
464
+ .monospaced {
465
+ font-family: monospace;
466
+ font-size: inherit;
467
+ color: navy;
468
+ }
469
+
470
+ table.tableblock {
471
+ margin-top: 1.0em;
472
+ margin-bottom: 1.5em;
473
+ }
474
+ thead, p.tableblock.header {
475
+ font-weight: bold;
476
+ color: #527bbd;
477
+ }
478
+ p.tableblock {
479
+ margin-top: 0;
480
+ }
481
+ table.tableblock {
482
+ border-width: 3px;
483
+ border-spacing: 0px;
484
+ border-style: solid;
485
+ border-color: #527bbd;
486
+ border-collapse: collapse;
487
+ }
488
+ th.tableblock, td.tableblock {
489
+ border-width: 1px;
490
+ padding: 4px;
491
+ border-style: solid;
492
+ border-color: #527bbd;
493
+ }
494
+
495
+ table.tableblock.frame-topbot {
496
+ border-left-style: hidden;
497
+ border-right-style: hidden;
498
+ }
499
+ table.tableblock.frame-sides {
500
+ border-top-style: hidden;
501
+ border-bottom-style: hidden;
502
+ }
503
+ table.tableblock.frame-none {
504
+ border-style: hidden;
505
+ }
506
+
507
+ th.tableblock.halign-left, td.tableblock.halign-left {
508
+ text-align: left;
509
+ }
510
+ th.tableblock.halign-center, td.tableblock.halign-center {
511
+ text-align: center;
512
+ }
513
+ th.tableblock.halign-right, td.tableblock.halign-right {
514
+ text-align: right;
515
+ }
516
+
517
+ th.tableblock.valign-top, td.tableblock.valign-top {
518
+ vertical-align: top;
519
+ }
520
+ th.tableblock.valign-middle, td.tableblock.valign-middle {
521
+ vertical-align: middle;
522
+ }
523
+ th.tableblock.valign-bottom, td.tableblock.valign-bottom {
524
+ vertical-align: bottom;
525
+ }
526
+
527
+
528
+ /*
529
+ * Theme specific overrides of the preceding (asciidoc.css) CSS.
530
+ *
531
+ */
532
+ body {
533
+ font-family: Garamond, Georgia, serif;
534
+ font-size: 17px;
535
+ color: #3E4349;
536
+ line-height: 1.3em;
537
+ }
538
+ h1, h2, h3, h4, h5, h6,
539
+ div.title, caption.title,
540
+ thead, p.table.header,
541
+ #toctitle,
542
+ #author, #revnumber, #revdate, #revremark,
543
+ #footer {
544
+ font-family: Garmond, Georgia, serif;
545
+ font-weight: normal;
546
+ border-bottom-width: 0;
547
+ color: #3E4349;
548
+ }
549
+ div.title, caption.title { color: #596673; font-weight: bold; }
550
+ h1 { font-size: 240%; }
551
+ h2 { font-size: 180%; }
552
+ h3 { font-size: 150%; }
553
+ h4 { font-size: 130%; }
554
+ h5 { font-size: 100%; }
555
+ h6 { font-size: 100%; }
556
+ #header h1 { margin-top: 0; }
557
+ #toc {
558
+ color: #444444;
559
+ line-height: 1.5;
560
+ padding-top: 1.5em;
561
+ }
562
+ #toctitle {
563
+ font-size: 20px;
564
+ }
565
+ #toc a {
566
+ border-bottom: 1px dotted #999999;
567
+ color: #444444 !important;
568
+ text-decoration: none !important;
569
+ }
570
+ #toc a:hover {
571
+ border-bottom: 1px solid #6D4100;
572
+ color: #6D4100 !important;
573
+ text-decoration: none !important;
574
+ }
575
+ div.toclevel1 { margin-top: 0.2em; font-size: 16px; }
576
+ div.toclevel2 { margin-top: 0.15em; font-size: 14px; }
577
+ em, dt, td.hdlist1 { color: black; }
578
+ strong { color: #3E4349; }
579
+ a { color: #004B6B; text-decoration: none; border-bottom: 1px dotted #004B6B; }
580
+ a:visited { color: #615FA0; border-bottom: 1px dotted #615FA0; }
581
+ a:hover { color: #6D4100; border-bottom: 1px solid #6D4100; }
582
+ div.tableblock > table, table.tableblock { border: 3px solid #E8E8E8; }
583
+ th.tableblock, td.tableblock { border: 1px solid #E8E8E8; }
584
+ ul > li > * { color: #3E4349; }
585
+ pre, tt, .monospaced { font-family: Consolas,Menlo,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace; }
586
+ tt, .monospaced { font-size: 0.9em; color: black;
587
+ }
588
+ div.exampleblock > div.content, div.sidebarblock > div.content, div.listingblock > div.content { border-width: 0 0 0 3px; border-color: #E8E8E8; }
589
+ div.verseblock { border-left-width: 0; margin-left: 3em; }
590
+ div.quoteblock { border-left-width: 3px; margin-left: 0; margin-right: 0;}
591
+ div.admonitionblock td.content { border-left: 3px solid #E8E8E8; }
386
592
  </style>
387
593
  <script type="text/javascript">
388
594
  /*<![CDATA[*/
389
- window.onload = function(){asciidoc.footnotes(); asciidoc.toc(3);}
390
595
  var asciidoc = { // Namespace.
391
596
 
392
597
  /////////////////////////////////////////////////////////////////////
@@ -448,6 +653,25 @@ toc: function (toclevels) {
448
653
  }
449
654
 
450
655
  var toc = document.getElementById("toc");
656
+ if (!toc) {
657
+ return;
658
+ }
659
+
660
+ // Delete existing TOC entries in case we're reloading the TOC.
661
+ var tocEntriesToRemove = [];
662
+ var i;
663
+ for (i = 0; i < toc.childNodes.length; i++) {
664
+ var entry = toc.childNodes[i];
665
+ if (entry.nodeName == 'DIV'
666
+ && entry.getAttribute("class")
667
+ && entry.getAttribute("class").match(/^toclevel/))
668
+ tocEntriesToRemove.push(entry);
669
+ }
670
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
671
+ toc.removeChild(tocEntriesToRemove[i]);
672
+ }
673
+
674
+ // Rebuild TOC entries.
451
675
  var entries = tocEntries(document.getElementById("content"), toclevels);
452
676
  for (var i = 0; i < entries.length; ++i) {
453
677
  var entry = entries[i];
@@ -475,24 +699,44 @@ toc: function (toclevels) {
475
699
  */
476
700
 
477
701
  footnotes: function () {
478
- var cont = document.getElementById("content");
702
+ // Delete existing footnote entries in case we're reloading the footnodes.
703
+ var i;
479
704
  var noteholder = document.getElementById("footnotes");
705
+ if (!noteholder) {
706
+ return;
707
+ }
708
+ var entriesToRemove = [];
709
+ for (i = 0; i < noteholder.childNodes.length; i++) {
710
+ var entry = noteholder.childNodes[i];
711
+ if (entry.nodeName == 'DIV' && entry.getAttribute("class") == "footnote")
712
+ entriesToRemove.push(entry);
713
+ }
714
+ for (i = 0; i < entriesToRemove.length; i++) {
715
+ noteholder.removeChild(entriesToRemove[i]);
716
+ }
717
+
718
+ // Rebuild footnote entries.
719
+ var cont = document.getElementById("content");
480
720
  var spans = cont.getElementsByTagName("span");
481
721
  var refs = {};
482
722
  var n = 0;
483
723
  for (i=0; i<spans.length; i++) {
484
724
  if (spans[i].className == "footnote") {
485
725
  n++;
486
- // Use [\s\S] in place of . so multi-line matches work.
487
- // Because JavaScript has no s (dotall) regex flag.
488
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
726
+ var note = spans[i].getAttribute("data-note");
727
+ if (!note) {
728
+ // Use [\s\S] in place of . so multi-line matches work.
729
+ // Because JavaScript has no s (dotall) regex flag.
730
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
731
+ spans[i].innerHTML =
732
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
733
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
734
+ spans[i].setAttribute("data-note", note);
735
+ }
489
736
  noteholder.innerHTML +=
490
737
  "<div class='footnote' id='_footnote_" + n + "'>" +
491
738
  "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
492
739
  n + "</a>. " + note + "</div>";
493
- spans[i].innerHTML =
494
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
495
- "' title='View footnote' class='footnote'>" + n + "</a>]";
496
740
  var id =spans[i].getAttribute("id");
497
741
  if (id != null) refs["#"+id] = n;
498
742
  }
@@ -512,9 +756,32 @@ footnotes: function () {
512
756
  }
513
757
  }
514
758
  }
759
+ },
760
+
761
+ install: function(toclevels) {
762
+ var timerId;
763
+
764
+ function reinstall() {
765
+ asciidoc.footnotes();
766
+ if (toclevels) {
767
+ asciidoc.toc(toclevels);
768
+ }
769
+ }
770
+
771
+ function reinstallAndRemoveTimer() {
772
+ clearInterval(timerId);
773
+ reinstall();
774
+ }
775
+
776
+ timerId = setInterval(reinstall, 500);
777
+ if (document.addEventListener)
778
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
779
+ else
780
+ window.onload = reinstallAndRemoveTimer;
515
781
  }
516
782
 
517
783
  }
784
+ asciidoc.install(3);
518
785
  /*]]>*/
519
786
  </script>
520
787
  </head>
@@ -533,7 +800,7 @@ footnotes: function () {
533
800
  <div class="admonitionblock">
534
801
  <table><tr>
535
802
  <td class="icon">
536
- <img src="./images/icons/tip.png" alt="Tip" />
803
+ <img src="./images/icons/tip.png" alt="Tip">
537
804
  </td>
538
805
  <td class="content">It is strongly recommended that you first read our
539
806
  <a href="Architectural%20overview.html">Architectural Overview</a>.</td>
@@ -680,7 +947,7 @@ i.e. it will use a password file for authorization.</p></div>
680
947
  server. This spawn server is also responsible for preloading the Rails
681
948
  framework and the Rails application code, in order to speed up the spawning
682
949
  of Rails applications. See the design document of the spawn server for details.
683
- The spawn server never calls <tt>exec()</tt>: doing so will make preloading useless.
950
+ The spawn server never calls <span class="monospaced">exec()</span>: doing so will make preloading useless.
684
951
  If Passenger is to use a setuid $X wrapper, then it must start the spawn
685
952
  server via the wrapper. The spawn server itself cannot use the wrapper.</p></div>
686
953
  <div class="paragraph"><p>However, doing so will make preloading less efficient. Passenger will be forced
@@ -707,7 +974,7 @@ communicate with the spawn server via a non-anonymous channel, such as a named
707
974
  Unix socket. Because other processes can access this channel, it can introduce
708
975
  potential security problems. Note that passing information via program arguments
709
976
  is not secure: it is possible to view that information with tools like <em>ps</em>,
710
- or (on Linux) by reading the file <tt>/proc/$PID/cmdline</tt>.</p></div>
977
+ or (on Linux) by reading the file <span class="monospaced">/proc/$PID/cmdline</span>.</p></div>
711
978
  <div class="paragraph"><p>So it seems <em>sudo</em> is not a viable alternative.</p></div>
712
979
  </div>
713
980
  <div class="sect2">
@@ -759,7 +1026,7 @@ feel free to discuss it with us.</p></div>
759
1026
  </div>
760
1027
  </div>
761
1028
  </div>
762
- <div id="footnotes"><hr /></div>
1029
+ <div id="footnotes"><hr></div>
763
1030
  <div id="footer">
764
1031
  <div id="footer-text">
765
1032
  Last updated 2010-09-25 20:09:08 CEST