passenger 2.2.9 → 2.2.10

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 (435) hide show
  1. data/NEWS +10 -0
  2. data/doc/Architectural overview.html +202 -65
  3. data/doc/Security of user switching support.html +200 -63
  4. data/doc/Users guide Apache.html +266 -129
  5. data/doc/Users guide Nginx.html +234 -97
  6. data/doc/cxxapi/AbstractSpawnManager_8h-source.html +138 -0
  7. data/doc/cxxapi/Account_8h-source.html +202 -0
  8. data/doc/cxxapi/AccountsDatabase_8h-source.html +158 -0
  9. data/doc/cxxapi/AgentsStarter_8h-source.html +79 -0
  10. data/doc/cxxapi/BCrypt_8h-source.html +101 -0
  11. data/doc/cxxapi/BacktracesServer_8h-source.html +87 -0
  12. data/doc/cxxapi/Base64_8h-source.html +85 -0
  13. data/doc/cxxapi/Blowfish_8h-source.html +131 -0
  14. data/doc/cxxapi/Bucket_8h-source.html +1 -1
  15. data/doc/cxxapi/CachedFileStat_8h-source.html +49 -157
  16. data/doc/cxxapi/Configuration_8h-source.html +1 -1
  17. data/doc/cxxapi/Constants_8h-source.html +71 -0
  18. data/doc/cxxapi/ContentHandler_8h-source.html +92 -0
  19. data/doc/cxxapi/DirectoryMapper_8h-source.html +1 -1
  20. data/doc/cxxapi/Exceptions_8h-source.html +332 -236
  21. data/doc/cxxapi/FileChangeChecker_8h-source.html +237 -0
  22. data/doc/cxxapi/FileDescriptor_8h-source.html +206 -0
  23. data/doc/cxxapi/Hooks_8h-source.html +1 -1
  24. data/doc/cxxapi/HttpStatusExtractor_8h-source.html +378 -0
  25. data/doc/cxxapi/LoggingServer_8h-source.html +165 -0
  26. data/doc/cxxapi/Logging_8h-source.html +580 -112
  27. data/doc/cxxapi/MessageChannel_8h-source.html +789 -599
  28. data/doc/cxxapi/MessageClient_8h-source.html +297 -0
  29. data/doc/cxxapi/MessageServer_8h-source.html +607 -0
  30. data/doc/cxxapi/PoolOptions_8h-source.html +471 -278
  31. data/doc/cxxapi/Process_8h-source.html +272 -0
  32. data/doc/cxxapi/RandomGenerator_8h-source.html +156 -0
  33. data/doc/cxxapi/ResourceLocator_8h-source.html +104 -0
  34. data/doc/cxxapi/ScgiRequestParser_8h-source.html +399 -0
  35. data/doc/cxxapi/ServerInstanceDir_8h-source.html +356 -0
  36. data/doc/cxxapi/Session_8h-source.html +483 -0
  37. data/doc/cxxapi/SpawnManager_8h-source.html +590 -546
  38. data/doc/cxxapi/StaticContentHandler_8h-source.html +65 -0
  39. data/doc/cxxapi/StaticString_8h-source.html +214 -0
  40. data/doc/cxxapi/StringListCreator_8h-source.html +111 -0
  41. data/doc/cxxapi/SystemTime_8h-source.html +191 -78
  42. data/doc/cxxapi/Timer_8h-source.html +157 -0
  43. data/doc/cxxapi/Utils_8h-source.html +621 -434
  44. data/doc/cxxapi/Version_8h-source.html +59 -0
  45. data/doc/cxxapi/annotated.html +1 -1
  46. data/doc/cxxapi/apache2_2Configuration_8h-source.html +79 -0
  47. data/doc/cxxapi/classAgentWatcher-members.html +50 -0
  48. data/doc/cxxapi/classAgentWatcher.html +445 -0
  49. data/doc/cxxapi/classClient-members.html +4 -3
  50. data/doc/cxxapi/classClient.html +50 -46
  51. data/doc/cxxapi/classHooks-members.html +1 -1
  52. data/doc/cxxapi/classHooks.html +1 -1
  53. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +37 -0
  54. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +191 -0
  55. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.map +1 -0
  56. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.md5 +1 -0
  57. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.png +0 -0
  58. data/doc/cxxapi/{classPassenger_1_1DummySpawnManager-members.html → classPassenger_1_1ArgumentException-members.html} +3 -2
  59. data/doc/cxxapi/classPassenger_1_1ArgumentException.html +52 -0
  60. data/doc/cxxapi/classPassenger_1_1BacktracesServer-members.html +36 -0
  61. data/doc/cxxapi/classPassenger_1_1BacktracesServer.html +107 -0
  62. data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.map +1 -0
  63. data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.md5 +1 -0
  64. data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.png +0 -0
  65. data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +3 -3
  66. data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +18 -34
  67. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +2 -1
  68. data/doc/cxxapi/classPassenger_1_1BusyException.html +3 -2
  69. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +2 -1
  70. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +3 -2
  71. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +1 -1
  72. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +1 -1
  73. data/doc/cxxapi/{classPassenger_1_1FileChecker-members.html → classPassenger_1_1EOFException-members.html} +3 -4
  74. data/doc/cxxapi/classPassenger_1_1EOFException.html +57 -0
  75. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.map +1 -0
  76. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.md5 +1 -0
  77. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.png +0 -0
  78. data/doc/cxxapi/classPassenger_1_1EventFd-members.html +33 -0
  79. data/doc/cxxapi/classPassenger_1_1EventFd.html +49 -0
  80. data/doc/cxxapi/classPassenger_1_1FileChangeChecker-members.html +37 -0
  81. data/doc/cxxapi/classPassenger_1_1FileChangeChecker.html +166 -0
  82. data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +37 -0
  83. data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +159 -0
  84. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +2 -1
  85. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +3 -2
  86. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +2 -1
  87. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +3 -2
  88. data/doc/cxxapi/{classPassenger_1_1ApplicationPoolServer-members.html → classPassenger_1_1HttpStatusExtractor-members.html} +6 -5
  89. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +128 -0
  90. data/doc/cxxapi/classPassenger_1_1IOException-members.html +2 -1
  91. data/doc/cxxapi/classPassenger_1_1IOException.html +4 -3
  92. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +2 -1
  93. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +1 -1
  94. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
  95. data/doc/cxxapi/classPassenger_1_1MemZeroGuard-members.html +36 -0
  96. data/doc/cxxapi/classPassenger_1_1MemZeroGuard.html +147 -0
  97. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +12 -5
  98. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +267 -34
  99. data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +46 -0
  100. data/doc/cxxapi/classPassenger_1_1MessageServer.html +438 -0
  101. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +33 -0
  102. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +56 -0
  103. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +1 -0
  104. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +1 -0
  105. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
  106. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +38 -0
  107. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +175 -0
  108. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +1 -0
  109. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +1 -0
  110. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
  111. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +36 -0
  112. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +176 -0
  113. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.map +1 -0
  114. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.md5 +1 -0
  115. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.png +0 -0
  116. data/doc/cxxapi/classPassenger_1_1Process-members.html +40 -0
  117. data/doc/cxxapi/classPassenger_1_1Process.html +266 -0
  118. data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +33 -0
  119. data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +51 -0
  120. data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +2 -1
  121. data/doc/cxxapi/classPassenger_1_1RuntimeException.html +3 -2
  122. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +47 -0
  123. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +302 -0
  124. data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +33 -0
  125. data/doc/cxxapi/classPassenger_1_1SecurityException.html +52 -0
  126. data/doc/cxxapi/classPassenger_1_1Session-members.html +50 -0
  127. data/doc/cxxapi/classPassenger_1_1Session.html +577 -0
  128. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.map +1 -0
  129. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.md5 +1 -0
  130. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.png +0 -0
  131. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +2 -1
  132. data/doc/cxxapi/classPassenger_1_1SpawnException.html +5 -4
  133. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +8 -5
  134. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +127 -45
  135. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.map +1 -0
  136. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.md5 +1 -0
  137. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.png +0 -0
  138. data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +51 -0
  139. data/doc/cxxapi/classPassenger_1_1StandardSession.html +415 -0
  140. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.map +1 -0
  141. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.md5 +1 -0
  142. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.png +0 -0
  143. data/doc/cxxapi/classPassenger_1_1StaticString-members.html +33 -0
  144. data/doc/cxxapi/classPassenger_1_1StaticString.html +54 -0
  145. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +2 -1
  146. data/doc/cxxapi/classPassenger_1_1SystemException.html +4 -3
  147. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +1 -0
  148. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +1 -1
  149. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
  150. data/doc/cxxapi/classPassenger_1_1SystemTime-members.html +9 -1
  151. data/doc/cxxapi/classPassenger_1_1SystemTime.html +92 -8
  152. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +37 -0
  153. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +57 -0
  154. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.map +1 -0
  155. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.md5 +1 -0
  156. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.png +0 -0
  157. data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +33 -0
  158. data/doc/cxxapi/classPassenger_1_1TimeoutException.html +50 -0
  159. data/doc/cxxapi/{classPassenger_1_1Application-members.html → classPassenger_1_1Timer-members.html} +8 -7
  160. data/doc/cxxapi/classPassenger_1_1Timer.html +163 -0
  161. data/doc/cxxapi/classServer-members.html +33 -0
  162. data/doc/cxxapi/classServer.html +46 -0
  163. data/doc/cxxapi/classServerInstanceDirToucher-members.html +33 -0
  164. data/doc/cxxapi/classServerInstanceDirToucher.html +43 -0
  165. data/doc/cxxapi/classes.html +1 -1
  166. data/doc/cxxapi/definitions_8h-source.html +1 -1
  167. data/doc/cxxapi/files.html +1 -1
  168. data/doc/cxxapi/functions.html +1 -1
  169. data/doc/cxxapi/{functions_type.html → functions_enum.html} +7 -5
  170. data/doc/cxxapi/functions_eval.html +55 -0
  171. data/doc/cxxapi/functions_func.html +1 -1
  172. data/doc/cxxapi/functions_vars.html +106 -9
  173. data/doc/cxxapi/graph_legend.html +1 -1
  174. data/doc/cxxapi/group__Configuration.html +1 -1
  175. data/doc/cxxapi/group__Core.html +1 -1
  176. data/doc/cxxapi/group__Exceptions.html +17 -1
  177. data/doc/cxxapi/group__Hooks.html +1 -1
  178. data/doc/cxxapi/group__Support.html +1 -1
  179. data/doc/cxxapi/hierarchy.html +34 -12
  180. data/doc/cxxapi/inherit__graph__0.map +1 -1
  181. data/doc/cxxapi/inherit__graph__0.md5 +1 -1
  182. data/doc/cxxapi/inherit__graph__0.png +0 -0
  183. data/doc/cxxapi/inherit__graph__1.map +1 -1
  184. data/doc/cxxapi/inherit__graph__1.md5 +1 -1
  185. data/doc/cxxapi/inherit__graph__1.png +0 -0
  186. data/doc/cxxapi/inherit__graph__10.map +1 -1
  187. data/doc/cxxapi/inherit__graph__10.md5 +1 -1
  188. data/doc/cxxapi/inherit__graph__10.png +0 -0
  189. data/doc/cxxapi/inherit__graph__11.map +1 -1
  190. data/doc/cxxapi/inherit__graph__11.md5 +1 -1
  191. data/doc/cxxapi/inherit__graph__11.png +0 -0
  192. data/doc/cxxapi/inherit__graph__12.map +1 -1
  193. data/doc/cxxapi/inherit__graph__12.md5 +1 -1
  194. data/doc/cxxapi/inherit__graph__12.png +0 -0
  195. data/doc/cxxapi/inherit__graph__13.map +1 -1
  196. data/doc/cxxapi/inherit__graph__13.md5 +1 -1
  197. data/doc/cxxapi/inherit__graph__13.png +0 -0
  198. data/doc/cxxapi/inherit__graph__14.map +3 -2
  199. data/doc/cxxapi/inherit__graph__14.md5 +1 -1
  200. data/doc/cxxapi/inherit__graph__14.png +0 -0
  201. data/doc/cxxapi/inherit__graph__15.map +1 -1
  202. data/doc/cxxapi/inherit__graph__15.md5 +1 -1
  203. data/doc/cxxapi/inherit__graph__15.png +0 -0
  204. data/doc/cxxapi/inherit__graph__16.map +1 -1
  205. data/doc/cxxapi/inherit__graph__16.md5 +1 -1
  206. data/doc/cxxapi/inherit__graph__16.png +0 -0
  207. data/doc/cxxapi/inherit__graph__17.map +1 -1
  208. data/doc/cxxapi/inherit__graph__17.md5 +1 -1
  209. data/doc/cxxapi/inherit__graph__17.png +0 -0
  210. data/doc/cxxapi/inherit__graph__18.map +2 -1
  211. data/doc/cxxapi/inherit__graph__18.md5 +1 -1
  212. data/doc/cxxapi/inherit__graph__18.png +0 -0
  213. data/doc/cxxapi/inherit__graph__19.map +1 -1
  214. data/doc/cxxapi/inherit__graph__19.md5 +1 -1
  215. data/doc/cxxapi/inherit__graph__19.png +0 -0
  216. data/doc/cxxapi/inherit__graph__2.map +1 -1
  217. data/doc/cxxapi/inherit__graph__2.md5 +1 -1
  218. data/doc/cxxapi/inherit__graph__2.png +0 -0
  219. data/doc/cxxapi/inherit__graph__20.map +1 -2
  220. data/doc/cxxapi/inherit__graph__20.md5 +1 -1
  221. data/doc/cxxapi/inherit__graph__20.png +0 -0
  222. data/doc/cxxapi/inherit__graph__21.map +1 -1
  223. data/doc/cxxapi/inherit__graph__21.md5 +1 -1
  224. data/doc/cxxapi/inherit__graph__21.png +0 -0
  225. data/doc/cxxapi/inherit__graph__22.map +1 -0
  226. data/doc/cxxapi/inherit__graph__22.md5 +1 -0
  227. data/doc/cxxapi/inherit__graph__22.png +0 -0
  228. data/doc/cxxapi/inherit__graph__23.map +1 -0
  229. data/doc/cxxapi/inherit__graph__23.md5 +1 -0
  230. data/doc/cxxapi/inherit__graph__23.png +0 -0
  231. data/doc/cxxapi/inherit__graph__24.map +1 -0
  232. data/doc/cxxapi/inherit__graph__24.md5 +1 -0
  233. data/doc/cxxapi/inherit__graph__24.png +0 -0
  234. data/doc/cxxapi/inherit__graph__25.map +1 -0
  235. data/doc/cxxapi/inherit__graph__25.md5 +1 -0
  236. data/doc/cxxapi/inherit__graph__25.png +0 -0
  237. data/doc/cxxapi/inherit__graph__26.map +1 -0
  238. data/doc/cxxapi/inherit__graph__26.md5 +1 -0
  239. data/doc/cxxapi/inherit__graph__26.png +0 -0
  240. data/doc/cxxapi/inherit__graph__27.map +2 -0
  241. data/doc/cxxapi/inherit__graph__27.md5 +1 -0
  242. data/doc/cxxapi/inherit__graph__27.png +0 -0
  243. data/doc/cxxapi/inherit__graph__28.map +1 -0
  244. data/doc/cxxapi/inherit__graph__28.md5 +1 -0
  245. data/doc/cxxapi/inherit__graph__28.png +0 -0
  246. data/doc/cxxapi/inherit__graph__29.map +1 -0
  247. data/doc/cxxapi/inherit__graph__29.md5 +1 -0
  248. data/doc/cxxapi/inherit__graph__29.png +0 -0
  249. data/doc/cxxapi/inherit__graph__3.map +2 -1
  250. data/doc/cxxapi/inherit__graph__3.md5 +1 -1
  251. data/doc/cxxapi/inherit__graph__3.png +0 -0
  252. data/doc/cxxapi/inherit__graph__30.map +1 -0
  253. data/doc/cxxapi/inherit__graph__30.md5 +1 -0
  254. data/doc/cxxapi/inherit__graph__30.png +0 -0
  255. data/doc/cxxapi/inherit__graph__31.map +3 -0
  256. data/doc/cxxapi/inherit__graph__31.md5 +1 -0
  257. data/doc/cxxapi/inherit__graph__31.png +0 -0
  258. data/doc/cxxapi/inherit__graph__32.map +1 -0
  259. data/doc/cxxapi/inherit__graph__32.md5 +1 -0
  260. data/doc/cxxapi/inherit__graph__32.png +0 -0
  261. data/doc/cxxapi/inherit__graph__33.map +1 -0
  262. data/doc/cxxapi/inherit__graph__33.md5 +1 -0
  263. data/doc/cxxapi/inherit__graph__33.png +0 -0
  264. data/doc/cxxapi/inherit__graph__34.map +1 -0
  265. data/doc/cxxapi/inherit__graph__34.md5 +1 -0
  266. data/doc/cxxapi/inherit__graph__34.png +0 -0
  267. data/doc/cxxapi/inherit__graph__35.map +1 -0
  268. data/doc/cxxapi/inherit__graph__35.md5 +1 -0
  269. data/doc/cxxapi/inherit__graph__35.png +0 -0
  270. data/doc/cxxapi/inherit__graph__36.map +1 -0
  271. data/doc/cxxapi/inherit__graph__36.md5 +1 -0
  272. data/doc/cxxapi/inherit__graph__36.png +0 -0
  273. data/doc/cxxapi/inherit__graph__4.map +1 -1
  274. data/doc/cxxapi/inherit__graph__4.md5 +1 -1
  275. data/doc/cxxapi/inherit__graph__4.png +0 -0
  276. data/doc/cxxapi/inherit__graph__5.map +1 -1
  277. data/doc/cxxapi/inherit__graph__5.md5 +1 -1
  278. data/doc/cxxapi/inherit__graph__5.png +0 -0
  279. data/doc/cxxapi/inherit__graph__6.map +1 -2
  280. data/doc/cxxapi/inherit__graph__6.md5 +1 -1
  281. data/doc/cxxapi/inherit__graph__6.png +0 -0
  282. data/doc/cxxapi/inherit__graph__7.map +1 -1
  283. data/doc/cxxapi/inherit__graph__7.md5 +1 -1
  284. data/doc/cxxapi/inherit__graph__7.png +0 -0
  285. data/doc/cxxapi/inherit__graph__8.map +1 -1
  286. data/doc/cxxapi/inherit__graph__8.md5 +1 -1
  287. data/doc/cxxapi/inherit__graph__8.png +0 -0
  288. data/doc/cxxapi/inherit__graph__9.map +1 -1
  289. data/doc/cxxapi/inherit__graph__9.md5 +1 -1
  290. data/doc/cxxapi/inherit__graph__9.png +0 -0
  291. data/doc/cxxapi/inherits.html +81 -41
  292. data/doc/cxxapi/main.html +1 -1
  293. data/doc/cxxapi/md5_8h-source.html +121 -0
  294. data/doc/cxxapi/modules.html +1 -1
  295. data/doc/cxxapi/namespacePassenger.html +651 -0
  296. data/doc/cxxapi/namespacemembers.html +155 -0
  297. data/doc/cxxapi/namespacemembers_enum.html +46 -0
  298. data/doc/cxxapi/namespacemembers_eval.html +52 -0
  299. data/doc/cxxapi/namespacemembers_func.html +139 -0
  300. data/doc/cxxapi/namespacemembers_type.html +50 -0
  301. data/doc/cxxapi/namespaces.html +34 -0
  302. data/doc/cxxapi/nginx_2Configuration_8h-source.html +114 -0
  303. data/doc/cxxapi/ngx__http__passenger__module_8h-source.html +91 -0
  304. data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +2 -1
  305. data/doc/cxxapi/structPassenger_1_1AnythingToString.html +3 -2
  306. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +2 -1
  307. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +3 -2
  308. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +33 -0
  309. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +49 -0
  310. data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +19 -7
  311. data/doc/cxxapi/structPassenger_1_1PoolOptions.html +323 -53
  312. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +33 -0
  313. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +49 -0
  314. data/ext/common/MessageChannel.h +48 -4
  315. data/ext/common/Version.h +1 -1
  316. data/ext/nginx/HttpStatusExtractor.h +1 -0
  317. data/ext/nginx/ScgiRequestParser.h +1 -0
  318. data/ext/phusion_passenger/native_support.c +5 -1
  319. data/lib/phusion_passenger/constants.rb +1 -1
  320. data/lib/phusion_passenger/message_channel.rb +45 -3
  321. data/lib/phusion_passenger/rack/application_spawner.rb +4 -0
  322. data/lib/phusion_passenger/railz/application_spawner.rb +19 -1
  323. data/lib/phusion_passenger/utils.rb +3 -3
  324. data/lib/phusion_passenger/utils/rewindable_input.rb +5 -0
  325. data/test/MessageChannelTest.cpp +9 -1
  326. data/test/stub/message_channel.rb +1 -1
  327. data/test/stub/message_channel_2.rb +1 -1
  328. data/test/stub/message_channel_3.rb +2 -2
  329. metadata +173 -113
  330. data/doc/cxxapi/ApplicationPoolServer_8h-source.html +0 -833
  331. data/doc/cxxapi/ApplicationPool_8h-source.html +0 -226
  332. data/doc/cxxapi/Application_8h-source.html +0 -553
  333. data/doc/cxxapi/DummySpawnManager_8h-source.html +0 -130
  334. data/doc/cxxapi/FileChecker_8h-source.html +0 -134
  335. data/doc/cxxapi/StandardApplicationPool_8h-source.html +0 -842
  336. data/doc/cxxapi/classPassenger_1_1Application.html +0 -231
  337. data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +0 -41
  338. data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +0 -323
  339. data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +0 -227
  340. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +0 -1
  341. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +0 -1
  342. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
  343. data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +0 -44
  344. data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +0 -403
  345. data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +0 -53
  346. data/doc/cxxapi/classPassenger_1_1FileChecker.html +0 -124
  347. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +0 -44
  348. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +0 -342
  349. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +0 -1
  350. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +0 -1
  351. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
  352. data/doc/rdoc/classes/ConditionVariable.html +0 -194
  353. data/doc/rdoc/classes/Exception.html +0 -120
  354. data/doc/rdoc/classes/GC.html +0 -113
  355. data/doc/rdoc/classes/IO.html +0 -169
  356. data/doc/rdoc/classes/PhusionPassenger.html +0 -239
  357. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +0 -153
  358. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +0 -517
  359. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +0 -719
  360. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +0 -97
  361. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +0 -96
  362. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +0 -97
  363. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +0 -96
  364. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +0 -598
  365. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +0 -140
  366. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +0 -317
  367. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess/Instance.html +0 -138
  368. data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +0 -154
  369. data/doc/rdoc/classes/PhusionPassenger/Application.html +0 -283
  370. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +0 -172
  371. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +0 -145
  372. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +0 -175
  373. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +0 -141
  374. data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +0 -92
  375. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +0 -489
  376. data/doc/rdoc/classes/PhusionPassenger/NativeSupport.html +0 -350
  377. data/doc/rdoc/classes/PhusionPassenger/Rack.html +0 -91
  378. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +0 -188
  379. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +0 -199
  380. data/doc/rdoc/classes/PhusionPassenger/Railz.html +0 -95
  381. data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +0 -438
  382. data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner/Error.html +0 -98
  383. data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +0 -200
  384. data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +0 -436
  385. data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html +0 -98
  386. data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +0 -155
  387. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +0 -402
  388. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +0 -125
  389. data/doc/rdoc/classes/PhusionPassenger/Utils.html +0 -805
  390. data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +0 -169
  391. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +0 -247
  392. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +0 -120
  393. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +0 -140
  394. data/doc/rdoc/classes/PhusionPassenger/WSGI.html +0 -89
  395. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +0 -188
  396. data/doc/rdoc/classes/PlatformInfo.html +0 -866
  397. data/doc/rdoc/classes/RakeExtensions.html +0 -197
  398. data/doc/rdoc/classes/Signal.html +0 -139
  399. data/doc/rdoc/created.rid +0 -1
  400. data/doc/rdoc/files/DEVELOPERS_TXT.html +0 -255
  401. data/doc/rdoc/files/README.html +0 -157
  402. data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +0 -92
  403. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +0 -129
  404. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +0 -129
  405. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +0 -126
  406. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +0 -128
  407. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +0 -130
  408. data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +0 -122
  409. data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +0 -127
  410. data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +0 -126
  411. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +0 -122
  412. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +0 -134
  413. data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +0 -122
  414. data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +0 -122
  415. data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +0 -126
  416. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +0 -120
  417. data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +0 -122
  418. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +0 -127
  419. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +0 -133
  420. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +0 -125
  421. data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +0 -140
  422. data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +0 -126
  423. data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +0 -145
  424. data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +0 -125
  425. data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +0 -122
  426. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +0 -159
  427. data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +0 -100
  428. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +0 -174
  429. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +0 -129
  430. data/doc/rdoc/files/misc/rake/extensions_rb.html +0 -130
  431. data/doc/rdoc/fr_class_index.html +0 -93
  432. data/doc/rdoc/fr_file_index.html +0 -77
  433. data/doc/rdoc/fr_method_index.html +0 -212
  434. data/doc/rdoc/index.html +0 -26
  435. data/doc/rdoc/rdoc-style.css +0 -187
@@ -0,0 +1,79 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Passenger: AgentsStarter.h Source File</title>
4
+ <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="modules.html"><span>Modules</span></a></li>
13
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
14
+ <li><a href="annotated.html"><span>Classes</span></a></li>
15
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
16
+ </ul>
17
+ </div>
18
+ <div class="tabs">
19
+ <ul>
20
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
21
+ </ul>
22
+ </div>
23
+ <h1>AgentsStarter.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* C wrappers for Passenger::AgentsStarter. */</span>
24
+ <a name="l00002"></a>00002 <span class="preprocessor">#ifndef _PASSENGER_AGENTS_STARTER_H_</span>
25
+ <a name="l00003"></a>00003 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_AGENTS_STARTER_H_</span>
26
+ <a name="l00004"></a>00004 <span class="preprocessor"></span>
27
+ <a name="l00005"></a>00005 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
28
+ <a name="l00006"></a>00006 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
29
+ <a name="l00007"></a>00007
30
+ <a name="l00008"></a>00008 <span class="preprocessor">#ifdef __cplusplus</span>
31
+ <a name="l00009"></a>00009 <span class="preprocessor"></span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
32
+ <a name="l00010"></a>00010 <span class="preprocessor">#endif</span>
33
+ <a name="l00011"></a>00011 <span class="preprocessor"></span>
34
+ <a name="l00012"></a>00012
35
+ <a name="l00013"></a>00013 <span class="keyword">typedef</span> <span class="keywordtype">void</span> AgentsStarter;
36
+ <a name="l00014"></a>00014
37
+ <a name="l00015"></a>00015 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
38
+ <a name="l00016"></a>00016 AS_APACHE,
39
+ <a name="l00017"></a>00017 AS_NGINX
40
+ <a name="l00018"></a>00018 } AgentsStarterType;
41
+ <a name="l00019"></a>00019
42
+ <a name="l00020"></a>00020 <span class="keyword">typedef</span> void (*AfterForkCallback)(<span class="keywordtype">void</span> *);
43
+ <a name="l00021"></a>00021
44
+ <a name="l00022"></a>00022 AgentsStarter *agents_starter_new(AgentsStarterType type, <span class="keywordtype">char</span> **error_message);
45
+ <a name="l00023"></a>00023 <span class="keywordtype">int</span> agents_starter_start(AgentsStarter *as,
46
+ <a name="l00024"></a>00024 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> logLevel, pid_t webServerPid,
47
+ <a name="l00025"></a>00025 <span class="keyword">const</span> <span class="keywordtype">char</span> *tempDir, <span class="keywordtype">int</span> userSwitching,
48
+ <a name="l00026"></a>00026 <span class="keyword">const</span> <span class="keywordtype">char</span> *defaultUser, <span class="keyword">const</span> <span class="keywordtype">char</span> *defaultGroup,
49
+ <a name="l00027"></a>00027 uid_t webServerWorkerUid, gid_t webServerWorkerGid,
50
+ <a name="l00028"></a>00028 <span class="keyword">const</span> <span class="keywordtype">char</span> *passengerRoot,
51
+ <a name="l00029"></a>00029 <span class="keyword">const</span> <span class="keywordtype">char</span> *rubyCommand, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxPoolSize,
52
+ <a name="l00030"></a>00030 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxInstancesPerApp,
53
+ <a name="l00031"></a>00031 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> poolIdleTime,
54
+ <a name="l00032"></a>00032 <span class="keyword">const</span> <span class="keywordtype">char</span> *analyticsLogDir, <span class="keyword">const</span> <span class="keywordtype">char</span> *analyticsLogUser,
55
+ <a name="l00033"></a>00033 <span class="keyword">const</span> <span class="keywordtype">char</span> *analyticsLogGroup, <span class="keyword">const</span> <span class="keywordtype">char</span> *analyticsLogPermissions,
56
+ <a name="l00034"></a>00034 <span class="keyword">const</span> <span class="keywordtype">char</span> **prestartURLs, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prestartURLsCount,
57
+ <a name="l00035"></a>00035 <span class="keyword">const</span> AfterForkCallback afterFork,
58
+ <a name="l00036"></a>00036 <span class="keywordtype">void</span> *callbackArgument,
59
+ <a name="l00037"></a>00037 <span class="keywordtype">char</span> **errorMessage);
60
+ <a name="l00038"></a>00038 <span class="keyword">const</span> <span class="keywordtype">char</span> *agents_starter_get_request_socket_filename(AgentsStarter *as, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
61
+ <a name="l00039"></a>00039 <span class="keyword">const</span> <span class="keywordtype">char</span> *agents_starter_get_request_socket_password(AgentsStarter *as, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
62
+ <a name="l00040"></a>00040 <span class="keyword">const</span> <span class="keywordtype">char</span> *agents_starter_get_server_instance_dir(AgentsStarter *as);
63
+ <a name="l00041"></a>00041 <span class="keyword">const</span> <span class="keywordtype">char</span> *agents_starter_get_generation_dir(AgentsStarter *as);
64
+ <a name="l00042"></a>00042 pid_t agents_starter_get_pid(AgentsStarter *as);
65
+ <a name="l00043"></a>00043 <span class="keywordtype">void</span> agents_starter_detach(AgentsStarter *as);
66
+ <a name="l00044"></a>00044 <span class="keywordtype">void</span> agents_starter_free(AgentsStarter *as);
67
+ <a name="l00045"></a>00045
68
+ <a name="l00046"></a>00046
69
+ <a name="l00047"></a>00047 <span class="preprocessor">#ifdef __cplusplus</span>
70
+ <a name="l00048"></a>00048 <span class="preprocessor"></span> }
71
+ <a name="l00049"></a>00049 <span class="preprocessor">#endif</span>
72
+ <a name="l00050"></a>00050 <span class="preprocessor"></span>
73
+ <a name="l00051"></a>00051 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_AGENTS_STARTER_H_ */</span>
74
+ </pre></div></div>
75
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:45 2010 for Passenger by&nbsp;
76
+ <a href="http://www.doxygen.org/index.html">
77
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
78
+ </body>
79
+ </html>
@@ -0,0 +1,101 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Passenger: BCrypt.h Source File</title>
4
+ <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="modules.html"><span>Modules</span></a></li>
13
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
14
+ <li><a href="annotated.html"><span>Classes</span></a></li>
15
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
16
+ </ul>
17
+ </div>
18
+ <div class="tabs">
19
+ <ul>
20
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
21
+ </ul>
22
+ </div>
23
+ <h1>BCrypt.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
24
+ <a name="l00002"></a>00002 <span class="comment"> * Copyright 1997 Niels Provos &lt;provos@physnet.uni-hamburg.de&gt;</span>
25
+ <a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
26
+ <a name="l00004"></a>00004 <span class="comment"> *</span>
27
+ <a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
28
+ <a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions</span>
29
+ <a name="l00007"></a>00007 <span class="comment"> * are met:</span>
30
+ <a name="l00008"></a>00008 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
31
+ <a name="l00009"></a>00009 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
32
+ <a name="l00010"></a>00010 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
33
+ <a name="l00011"></a>00011 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
34
+ <a name="l00012"></a>00012 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
35
+ <a name="l00013"></a>00013 <span class="comment"> * 3. All advertising materials mentioning features or use of this software</span>
36
+ <a name="l00014"></a>00014 <span class="comment"> * must display the following acknowledgement:</span>
37
+ <a name="l00015"></a>00015 <span class="comment"> * This product includes software developed by Niels Provos.</span>
38
+ <a name="l00016"></a>00016 <span class="comment"> * 4. The name of the author may not be used to endorse or promote products</span>
39
+ <a name="l00017"></a>00017 <span class="comment"> * derived from this software without specific prior written permission.</span>
40
+ <a name="l00018"></a>00018 <span class="comment"> *</span>
41
+ <a name="l00019"></a>00019 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR</span>
42
+ <a name="l00020"></a>00020 <span class="comment"> * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES</span>
43
+ <a name="l00021"></a>00021 <span class="comment"> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.</span>
44
+ <a name="l00022"></a>00022 <span class="comment"> * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,</span>
45
+ <a name="l00023"></a>00023 <span class="comment"> * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT</span>
46
+ <a name="l00024"></a>00024 <span class="comment"> * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
47
+ <a name="l00025"></a>00025 <span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
48
+ <a name="l00026"></a>00026 <span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
49
+ <a name="l00027"></a>00027 <span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF</span>
50
+ <a name="l00028"></a>00028 <span class="comment"> * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
51
+ <a name="l00029"></a>00029 <span class="comment"> */</span>
52
+ <a name="l00030"></a>00030
53
+ <a name="l00031"></a>00031 <span class="comment">/*</span>
54
+ <a name="l00032"></a>00032 <span class="comment"> * Modified by &lt;hongli@phusion.nl&gt; on 2009-10-24:</span>
55
+ <a name="l00033"></a>00033 <span class="comment"> *</span>
56
+ <a name="l00034"></a>00034 <span class="comment"> * - Wrapped into C++ namespace.</span>
57
+ <a name="l00035"></a>00035 <span class="comment"> * - Changed some types (e.g. u_int8_t to uint8_t as defined in stdint.h)</span>
58
+ <a name="l00036"></a>00036 <span class="comment"> * for easier compilation.</span>
59
+ <a name="l00037"></a>00037 <span class="comment"> * - Moved some macros to the .c file.</span>
60
+ <a name="l00038"></a>00038 <span class="comment"> */</span>
61
+ <a name="l00039"></a>00039
62
+ <a name="l00040"></a>00040 <span class="preprocessor">#ifndef _PASSENGER_BCRYPT_H_</span>
63
+ <a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_BCRYPT_H_</span>
64
+ <a name="l00042"></a>00042 <span class="preprocessor"></span>
65
+ <a name="l00043"></a>00043 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
66
+ <a name="l00044"></a>00044
67
+ <a name="l00045"></a>00045 <span class="preprocessor">#define BCRYPT_MAXSALT 16 </span><span class="comment">/* Precomputation is just so nice */</span>
68
+ <a name="l00046"></a>00046 <span class="preprocessor">#define BCRYPT_SALT_OUTPUT_SIZE (7 + (BCRYPT_MAXSALT * 4 + 2) / 3 + 1)</span>
69
+ <a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define BCRYPT_OUTPUT_SIZE 128</span>
70
+ <a name="l00048"></a>00048 <span class="preprocessor"></span>
71
+ <a name="l00049"></a>00049 <span class="comment">/*</span>
72
+ <a name="l00050"></a>00050 <span class="comment"> * Given a logarithmic cost parameter, generates a salt for use with bcrypt().</span>
73
+ <a name="l00051"></a>00051 <span class="comment"> *</span>
74
+ <a name="l00052"></a>00052 <span class="comment"> * output: the computed salt will be stored here. This buffer must be</span>
75
+ <a name="l00053"></a>00053 <span class="comment"> * at least BCRYPT_SALT_OUTPUT_SIZE bytes. The result will be</span>
76
+ <a name="l00054"></a>00054 <span class="comment"> * null-terminated.</span>
77
+ <a name="l00055"></a>00055 <span class="comment"> * log_rounds: the logarithmic cost.</span>
78
+ <a name="l00056"></a>00056 <span class="comment"> * rseed: a seed of BCRYPT_MAXSALT bytes. Should be obtained from a</span>
79
+ <a name="l00057"></a>00057 <span class="comment"> * cryptographically secure random source.</span>
80
+ <a name="l00058"></a>00058 <span class="comment"> * Returns: output</span>
81
+ <a name="l00059"></a>00059 <span class="comment"> */</span>
82
+ <a name="l00060"></a>00060 <span class="keywordtype">char</span> *bcrypt_gensalt(<span class="keywordtype">char</span> *output, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> log_rounds, uint8_t *rseed);
83
+ <a name="l00061"></a>00061
84
+ <a name="l00062"></a>00062 <span class="comment">/*</span>
85
+ <a name="l00063"></a>00063 <span class="comment"> * Given a secret and a salt, generates a salted hash (which you can then store safely).</span>
86
+ <a name="l00064"></a>00064 <span class="comment"> *</span>
87
+ <a name="l00065"></a>00065 <span class="comment"> * output: the computed salted hash will be stored here. This buffer must</span>
88
+ <a name="l00066"></a>00066 <span class="comment"> * be at least BCRYPT_OUTPUT_SIZE bytes, and will become null-terminated.</span>
89
+ <a name="l00067"></a>00067 <span class="comment"> * key: A null-terminated secret.</span>
90
+ <a name="l00068"></a>00068 <span class="comment"> * salt: The salt, as generated by bcrypt_gensalt().</span>
91
+ <a name="l00069"></a>00069 <span class="comment"> * Returns: output on success, NULL on error.</span>
92
+ <a name="l00070"></a>00070 <span class="comment"> */</span>
93
+ <a name="l00071"></a>00071 <span class="keywordtype">char</span> *bcrypt(<span class="keywordtype">char</span> *output, <span class="keyword">const</span> <span class="keywordtype">char</span> *key, <span class="keyword">const</span> <span class="keywordtype">char</span> *salt);
94
+ <a name="l00072"></a>00072
95
+ <a name="l00073"></a>00073 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_BCRYPT_H_ */</span>
96
+ </pre></div></div>
97
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:45 2010 for Passenger by&nbsp;
98
+ <a href="http://www.doxygen.org/index.html">
99
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
100
+ </body>
101
+ </html>
@@ -0,0 +1,87 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Passenger: BacktracesServer.h Source File</title>
4
+ <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="modules.html"><span>Modules</span></a></li>
13
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
14
+ <li><a href="annotated.html"><span>Classes</span></a></li>
15
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
16
+ </ul>
17
+ </div>
18
+ <div class="tabs">
19
+ <ul>
20
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
21
+ </ul>
22
+ </div>
23
+ <h1>BacktracesServer.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
24
+ <a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
25
+ <a name="l00003"></a>00003 <span class="comment"> * Copyright (c) 2010 Phusion</span>
26
+ <a name="l00004"></a>00004 <span class="comment"> *</span>
27
+ <a name="l00005"></a>00005 <span class="comment"> * "Phusion Passenger" is a trademark of Hongli Lai &amp; Ninh Bui.</span>
28
+ <a name="l00006"></a>00006 <span class="comment"> *</span>
29
+ <a name="l00007"></a>00007 <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span>
30
+ <a name="l00008"></a>00008 <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span>
31
+ <a name="l00009"></a>00009 <span class="comment"> * in the Software without restriction, including without limitation the rights</span>
32
+ <a name="l00010"></a>00010 <span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span>
33
+ <a name="l00011"></a>00011 <span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span>
34
+ <a name="l00012"></a>00012 <span class="comment"> * furnished to do so, subject to the following conditions:</span>
35
+ <a name="l00013"></a>00013 <span class="comment"> *</span>
36
+ <a name="l00014"></a>00014 <span class="comment"> * The above copyright notice and this permission notice shall be included in</span>
37
+ <a name="l00015"></a>00015 <span class="comment"> * all copies or substantial portions of the Software.</span>
38
+ <a name="l00016"></a>00016 <span class="comment"> *</span>
39
+ <a name="l00017"></a>00017 <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span>
40
+ <a name="l00018"></a>00018 <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span>
41
+ <a name="l00019"></a>00019 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span>
42
+ <a name="l00020"></a>00020 <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span>
43
+ <a name="l00021"></a>00021 <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span>
44
+ <a name="l00022"></a>00022 <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span>
45
+ <a name="l00023"></a>00023 <span class="comment"> * THE SOFTWARE.</span>
46
+ <a name="l00024"></a>00024 <span class="comment"> */</span>
47
+ <a name="l00025"></a>00025 <span class="preprocessor">#ifndef _PASSENGER_BACKTRACES_SERVER_H_</span>
48
+ <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_BACKTRACES_SERVER_H_</span>
49
+ <a name="l00027"></a>00027 <span class="preprocessor"></span>
50
+ <a name="l00028"></a>00028 <span class="preprocessor">#include &lt;oxt/thread.hpp&gt;</span>
51
+ <a name="l00029"></a>00029 <span class="preprocessor">#include &lt;oxt/backtrace.hpp&gt;</span>
52
+ <a name="l00030"></a>00030 <span class="preprocessor">#include "MessageServer.h"</span>
53
+ <a name="l00031"></a>00031
54
+ <a name="l00032"></a>00032 <span class="keyword">namespace </span>Passenger {
55
+ <a name="l00033"></a>00033
56
+ <a name="l00034"></a>00034 <span class="keyword">using namespace </span>std;
57
+ <a name="l00035"></a>00035 <span class="comment"></span>
58
+ <a name="l00036"></a>00036 <span class="comment">/**</span>
59
+ <a name="l00037"></a>00037 <span class="comment"> * A MessageServer handler for reporting the backtraces of all running oxt::threads.</span>
60
+ <a name="l00038"></a>00038 <span class="comment"> */</span>
61
+ <a name="l00039"></a><a class="code" href="classPassenger_1_1BacktracesServer.html">00039</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1BacktracesServer.html" title="A MessageServer handler for reporting the backtraces of all running oxt::threads...">BacktracesServer</a>: <span class="keyword">public</span> <a class="code" href="classPassenger_1_1MessageServer.html" title="Simple pluggable request/response messaging server framework.">MessageServer</a>::Handler {
62
+ <a name="l00040"></a>00040 <span class="keyword">public</span>:
63
+ <a name="l00041"></a><a class="code" href="classPassenger_1_1BacktracesServer.html#550b776d102369b66081162d4fbba552">00041</a> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classPassenger_1_1BacktracesServer.html#550b776d102369b66081162d4fbba552" title="Called then a client has sent a request message.">processMessage</a>(<a class="code" href="classPassenger_1_1MessageServer_1_1CommonClientContext.html" title="A common client context, containing client-specific information used by MessageServer...">MessageServer::CommonClientContext</a> &amp;commonContext,
64
+ <a name="l00042"></a>00042 MessageServer::ClientContextPtr &amp;handlerSpecificContext,
65
+ <a name="l00043"></a>00043 <span class="keyword">const</span> vector&lt;string&gt; &amp;args)
66
+ <a name="l00044"></a>00044 {
67
+ <a name="l00045"></a>00045 TRACE_POINT();
68
+ <a name="l00046"></a>00046 <span class="keywordflow">if</span> (args[0] == <span class="stringliteral">"backtraces"</span>) {
69
+ <a name="l00047"></a>00047 UPDATE_TRACE_POINT();
70
+ <a name="l00048"></a>00048 commonContext.<a class="code" href="classPassenger_1_1MessageServer_1_1CommonClientContext.html#57a0ea308db6512e00a3526cb41be867" title="Checks whether this client has all of the rights in rights.">requireRights</a>(Account::INSPECT_BACKTRACES);
71
+ <a name="l00049"></a>00049 commonContext.<a class="code" href="classPassenger_1_1MessageServer_1_1CommonClientContext.html#1401aab009ce4f77c4e3aba1990c8f4a" title="The channel that&amp;#39;s associated with the client&amp;#39;s socket.">channel</a>.<a class="code" href="classPassenger_1_1MessageChannel.html#44e01a783c48abadeea0d915b9893bfb" title="Write a scalar message to the underlying file descriptor.">writeScalar</a>(oxt::thread::all_backtraces());
72
+ <a name="l00050"></a>00050 <span class="keywordflow">return</span> <span class="keyword">true</span>;
73
+ <a name="l00051"></a>00051 } <span class="keywordflow">else</span> {
74
+ <a name="l00052"></a>00052 <span class="keywordflow">return</span> <span class="keyword">false</span>;
75
+ <a name="l00053"></a>00053 }
76
+ <a name="l00054"></a>00054 }
77
+ <a name="l00055"></a>00055 };
78
+ <a name="l00056"></a>00056
79
+ <a name="l00057"></a>00057 } <span class="comment">// namespace Passenger</span>
80
+ <a name="l00058"></a>00058
81
+ <a name="l00059"></a>00059 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_BACKTRACES_SERVER_H_ */</span>
82
+ </pre></div></div>
83
+ <hr size="1"><address style="text-align: right;"><small>Generated on Mon Feb 8 22:53:21 2010 for Passenger by&nbsp;
84
+ <a href="http://www.doxygen.org/index.html">
85
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
86
+ </body>
87
+ </html>
@@ -0,0 +1,85 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Passenger: Base64.h Source File</title>
4
+ <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="modules.html"><span>Modules</span></a></li>
13
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
14
+ <li><a href="annotated.html"><span>Classes</span></a></li>
15
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
16
+ </ul>
17
+ </div>
18
+ <div class="tabs">
19
+ <ul>
20
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
21
+ </ul>
22
+ </div>
23
+ <h1>Base64.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
24
+ <a name="l00002"></a>00002 <span class="comment"> * Base64 encoding and decoding routines</span>
25
+ <a name="l00003"></a>00003 <span class="comment"> *</span>
26
+ <a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2004-2008 René Nyffenegger</span>
27
+ <a name="l00005"></a>00005 <span class="comment"> * Modified by Phusion for inclusion in Phusion Passenger.</span>
28
+ <a name="l00006"></a>00006 <span class="comment"> *</span>
29
+ <a name="l00007"></a>00007 <span class="comment"> * This source code is provided 'as-is', without any express or implied</span>
30
+ <a name="l00008"></a>00008 <span class="comment"> * warranty. In no event will the author be held liable for any damages</span>
31
+ <a name="l00009"></a>00009 <span class="comment"> * arising from the use of this software.</span>
32
+ <a name="l00010"></a>00010 <span class="comment"> *</span>
33
+ <a name="l00011"></a>00011 <span class="comment"> * Permission is granted to anyone to use this software for any purpose,</span>
34
+ <a name="l00012"></a>00012 <span class="comment"> * including commercial applications, and to alter it and redistribute it</span>
35
+ <a name="l00013"></a>00013 <span class="comment"> * freely, subject to the following restrictions:</span>
36
+ <a name="l00014"></a>00014 <span class="comment"> *</span>
37
+ <a name="l00015"></a>00015 <span class="comment"> * 1. The origin of this source code must not be misrepresented; you must not</span>
38
+ <a name="l00016"></a>00016 <span class="comment"> * claim that you wrote the original source code. If you use this source code</span>
39
+ <a name="l00017"></a>00017 <span class="comment"> * in a product, an acknowledgment in the product documentation would be</span>
40
+ <a name="l00018"></a>00018 <span class="comment"> * appreciated but is not required.</span>
41
+ <a name="l00019"></a>00019 <span class="comment"> *</span>
42
+ <a name="l00020"></a>00020 <span class="comment"> * 2. Altered source versions must be plainly marked as such, and must not be</span>
43
+ <a name="l00021"></a>00021 <span class="comment"> * misrepresented as being the original source code.</span>
44
+ <a name="l00022"></a>00022 <span class="comment"> *</span>
45
+ <a name="l00023"></a>00023 <span class="comment"> * 3. This notice may not be removed or altered from any source distribution.</span>
46
+ <a name="l00024"></a>00024 <span class="comment"> *</span>
47
+ <a name="l00025"></a>00025 <span class="comment"> * René Nyffenegger rene.nyffenegger@adp-gmbh.ch</span>
48
+ <a name="l00026"></a>00026 <span class="comment"> *</span>
49
+ <a name="l00027"></a>00027 <span class="comment"> */</span>
50
+ <a name="l00028"></a>00028
51
+ <a name="l00029"></a>00029 <span class="preprocessor">#ifndef _PASSENGER_BASE64_H_</span>
52
+ <a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_BASE64_H_</span>
53
+ <a name="l00031"></a>00031 <span class="preprocessor"></span>
54
+ <a name="l00032"></a>00032 <span class="preprocessor">#include &lt;iostream&gt;</span>
55
+ <a name="l00033"></a>00033 <span class="preprocessor">#include &lt;string&gt;</span>
56
+ <a name="l00034"></a>00034 <span class="preprocessor">#include "StaticString.h"</span>
57
+ <a name="l00035"></a>00035
58
+ <a name="l00036"></a>00036 <span class="keyword">namespace </span>Passenger {
59
+ <a name="l00037"></a>00037
60
+ <a name="l00038"></a>00038 <span class="keyword">using namespace </span>std;
61
+ <a name="l00039"></a>00039
62
+ <a name="l00040"></a>00040 <span class="keyword">class </span>Base64 {
63
+ <a name="l00041"></a>00041 <span class="keyword">public</span>:
64
+ <a name="l00042"></a>00042 <span class="keyword">static</span> <span class="keywordtype">string</span> encode(<span class="keyword">const</span> StaticString &amp;data) {
65
+ <a name="l00043"></a>00043 <span class="keywordflow">return</span> encode((<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *) data.data(), data.size());
66
+ <a name="l00044"></a>00044 }
67
+ <a name="l00045"></a>00045
68
+ <a name="l00046"></a>00046 <span class="keyword">static</span> <span class="keywordtype">string</span> decode(<span class="keyword">const</span> StaticString &amp;base64_data) {
69
+ <a name="l00047"></a>00047 <span class="keywordflow">return</span> decode((<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *) base64_data.data(), base64_data.size());
70
+ <a name="l00048"></a>00048 }
71
+ <a name="l00049"></a>00049
72
+ <a name="l00050"></a>00050 <span class="keyword">static</span> <span class="keywordtype">string</span> encode(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
73
+ <a name="l00051"></a>00051
74
+ <a name="l00052"></a>00052 <span class="keyword">static</span> <span class="keywordtype">string</span> decode(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *base64_data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
75
+ <a name="l00053"></a>00053 };
76
+ <a name="l00054"></a>00054
77
+ <a name="l00055"></a>00055 } <span class="comment">// namespace Passenger</span>
78
+ <a name="l00056"></a>00056
79
+ <a name="l00057"></a>00057 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_BASE64_H_ */</span>
80
+ </pre></div></div>
81
+ <hr size="1"><address style="text-align: right;"><small>Generated on Mon Feb 8 22:53:21 2010 for Passenger by&nbsp;
82
+ <a href="http://www.doxygen.org/index.html">
83
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
84
+ </body>
85
+ </html>
@@ -0,0 +1,131 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Passenger: Blowfish.h Source File</title>
4
+ <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="modules.html"><span>Modules</span></a></li>
13
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
14
+ <li><a href="annotated.html"><span>Classes</span></a></li>
15
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
16
+ </ul>
17
+ </div>
18
+ <div class="tabs">
19
+ <ul>
20
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
21
+ </ul>
22
+ </div>
23
+ <h1>Blowfish.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $OpenBSD: blf.h,v 1.6 2002/02/16 21:27:17 millert Exp $ */</span>
24
+ <a name="l00002"></a>00002 <span class="comment">/*</span>
25
+ <a name="l00003"></a>00003 <span class="comment"> * Blowfish - a fast block cipher designed by Bruce Schneier</span>
26
+ <a name="l00004"></a>00004 <span class="comment"> *</span>
27
+ <a name="l00005"></a>00005 <span class="comment"> * Copyright 1997 Niels Provos &lt;provos@physnet.uni-hamburg.de&gt;</span>
28
+ <a name="l00006"></a>00006 <span class="comment"> * All rights reserved.</span>
29
+ <a name="l00007"></a>00007 <span class="comment"> *</span>
30
+ <a name="l00008"></a>00008 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
31
+ <a name="l00009"></a>00009 <span class="comment"> * modification, are permitted provided that the following conditions</span>
32
+ <a name="l00010"></a>00010 <span class="comment"> * are met:</span>
33
+ <a name="l00011"></a>00011 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
34
+ <a name="l00012"></a>00012 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
35
+ <a name="l00013"></a>00013 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
36
+ <a name="l00014"></a>00014 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
37
+ <a name="l00015"></a>00015 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
38
+ <a name="l00016"></a>00016 <span class="comment"> * 3. All advertising materials mentioning features or use of this software</span>
39
+ <a name="l00017"></a>00017 <span class="comment"> * must display the following acknowledgement:</span>
40
+ <a name="l00018"></a>00018 <span class="comment"> * This product includes software developed by Niels Provos.</span>
41
+ <a name="l00019"></a>00019 <span class="comment"> * 4. The name of the author may not be used to endorse or promote products</span>
42
+ <a name="l00020"></a>00020 <span class="comment"> * derived from this software without specific prior written permission.</span>
43
+ <a name="l00021"></a>00021 <span class="comment"> *</span>
44
+ <a name="l00022"></a>00022 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR</span>
45
+ <a name="l00023"></a>00023 <span class="comment"> * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES</span>
46
+ <a name="l00024"></a>00024 <span class="comment"> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.</span>
47
+ <a name="l00025"></a>00025 <span class="comment"> * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,</span>
48
+ <a name="l00026"></a>00026 <span class="comment"> * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT</span>
49
+ <a name="l00027"></a>00027 <span class="comment"> * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
50
+ <a name="l00028"></a>00028 <span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
51
+ <a name="l00029"></a>00029 <span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
52
+ <a name="l00030"></a>00030 <span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF</span>
53
+ <a name="l00031"></a>00031 <span class="comment"> * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
54
+ <a name="l00032"></a>00032 <span class="comment"> */</span>
55
+ <a name="l00033"></a>00033
56
+ <a name="l00034"></a>00034 <span class="comment">/*</span>
57
+ <a name="l00035"></a>00035 <span class="comment"> * Modified by &lt;hongli@phusion.nl&gt; on 2009-10-24:</span>
58
+ <a name="l00036"></a>00036 <span class="comment"> *</span>
59
+ <a name="l00037"></a>00037 <span class="comment"> * - Made it so that this header cannot be included directly.</span>
60
+ <a name="l00038"></a>00038 <span class="comment"> */</span>
61
+ <a name="l00039"></a>00039
62
+ <a name="l00040"></a>00040 <span class="preprocessor">#ifndef IN_PASSENGER_BCRYPT_C</span>
63
+ <a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor"> #error "Do not include this header directly. Use BCrypt.h instead!"</span>
64
+ <a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
65
+ <a name="l00043"></a>00043 <span class="preprocessor"></span>
66
+ <a name="l00044"></a>00044 <span class="preprocessor">#ifndef _PASSENGER_BLOWFISH_H_</span>
67
+ <a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_BLOWFISH_H_</span>
68
+ <a name="l00046"></a>00046 <span class="preprocessor"></span>
69
+ <a name="l00047"></a>00047 <span class="comment">/* Add this type so we'll compile nicely on Solaris.</span>
70
+ <a name="l00048"></a>00048 <span class="comment"> Thanks to Jeremy LaTrasse and the Twitter crew. */</span>
71
+ <a name="l00049"></a>00049 <span class="preprocessor">#ifdef __sun</span>
72
+ <a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor"> #define u_int8_t uint8_t</span>
73
+ <a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor"> #define u_int16_t uint16_t</span>
74
+ <a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor"> #define u_int32_t uint32_t</span>
75
+ <a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor"> #define u_int64_t uint64_t</span>
76
+ <a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
77
+ <a name="l00055"></a>00055 <span class="preprocessor"></span>
78
+ <a name="l00056"></a>00056 <span class="comment">// Imported from pwd.h. &lt;coda.hale@gmail.com&gt;</span>
79
+ <a name="l00057"></a>00057 <span class="preprocessor">#define _PASSWORD_LEN 128 </span><span class="comment">/* max length, not counting NUL */</span>
80
+ <a name="l00058"></a>00058
81
+ <a name="l00059"></a>00059 <span class="comment">/* Schneier specifies a maximum key length of 56 bytes.</span>
82
+ <a name="l00060"></a>00060 <span class="comment"> * This ensures that every key bit affects every cipher</span>
83
+ <a name="l00061"></a>00061 <span class="comment"> * bit. However, the subkeys can hold up to 72 bytes.</span>
84
+ <a name="l00062"></a>00062 <span class="comment"> * Warning: For normal blowfish encryption only 56 bytes</span>
85
+ <a name="l00063"></a>00063 <span class="comment"> * of the key affect all cipherbits.</span>
86
+ <a name="l00064"></a>00064 <span class="comment"> */</span>
87
+ <a name="l00065"></a>00065
88
+ <a name="l00066"></a>00066 <span class="preprocessor">#define BLF_N 16 </span><span class="comment">/* Number of Subkeys */</span>
89
+ <a name="l00067"></a>00067 <span class="preprocessor">#define BLF_MAXKEYLEN ((BLF_N-2)*4) </span><span class="comment">/* 448 bits */</span>
90
+ <a name="l00068"></a>00068
91
+ <a name="l00069"></a>00069 <span class="comment">/* Blowfish context */</span>
92
+ <a name="l00070"></a>00070 <span class="keyword">typedef</span> <span class="keyword">struct </span>BlowfishContext {
93
+ <a name="l00071"></a>00071 u_int32_t S[4][256]; <span class="comment">/* S-Boxes */</span>
94
+ <a name="l00072"></a>00072 u_int32_t P[BLF_N + 2]; <span class="comment">/* Subkeys */</span>
95
+ <a name="l00073"></a>00073 } blf_ctx;
96
+ <a name="l00074"></a>00074
97
+ <a name="l00075"></a>00075 <span class="comment">/* Raw access to customized Blowfish</span>
98
+ <a name="l00076"></a>00076 <span class="comment"> * blf_key is just:</span>
99
+ <a name="l00077"></a>00077 <span class="comment"> * Blowfish_initstate( state )</span>
100
+ <a name="l00078"></a>00078 <span class="comment"> * Blowfish_expand0state( state, key, keylen )</span>
101
+ <a name="l00079"></a>00079 <span class="comment"> */</span>
102
+ <a name="l00080"></a>00080
103
+ <a name="l00081"></a>00081 <span class="keywordtype">void</span> Blowfish_encipher(blf_ctx *, u_int32_t *, u_int32_t *);
104
+ <a name="l00082"></a>00082 <span class="keywordtype">void</span> Blowfish_decipher(blf_ctx *, u_int32_t *, u_int32_t *);
105
+ <a name="l00083"></a>00083 <span class="keywordtype">void</span> Blowfish_initstate(blf_ctx *);
106
+ <a name="l00084"></a>00084 <span class="keywordtype">void</span> Blowfish_expand0state(blf_ctx *, <span class="keyword">const</span> u_int8_t *, u_int16_t);
107
+ <a name="l00085"></a>00085 <span class="keywordtype">void</span> Blowfish_expandstate
108
+ <a name="l00086"></a>00086 (blf_ctx *, <span class="keyword">const</span> u_int8_t *, u_int16_t, <span class="keyword">const</span> u_int8_t *, u_int16_t);
109
+ <a name="l00087"></a>00087
110
+ <a name="l00088"></a>00088 <span class="comment">/* Standard Blowfish */</span>
111
+ <a name="l00089"></a>00089
112
+ <a name="l00090"></a>00090 <span class="keywordtype">void</span> blf_key(blf_ctx *, <span class="keyword">const</span> u_int8_t *, u_int16_t);
113
+ <a name="l00091"></a>00091 <span class="keywordtype">void</span> blf_enc(blf_ctx *, u_int32_t *, u_int16_t);
114
+ <a name="l00092"></a>00092 <span class="keywordtype">void</span> blf_dec(blf_ctx *, u_int32_t *, u_int16_t);
115
+ <a name="l00093"></a>00093
116
+ <a name="l00094"></a>00094 <span class="keywordtype">void</span> blf_ecb_encrypt(blf_ctx *, u_int8_t *, u_int32_t);
117
+ <a name="l00095"></a>00095 <span class="keywordtype">void</span> blf_ecb_decrypt(blf_ctx *, u_int8_t *, u_int32_t);
118
+ <a name="l00096"></a>00096
119
+ <a name="l00097"></a>00097 <span class="keywordtype">void</span> blf_cbc_encrypt(blf_ctx *, u_int8_t *, u_int8_t *, u_int32_t);
120
+ <a name="l00098"></a>00098 <span class="keywordtype">void</span> blf_cbc_decrypt(blf_ctx *, u_int8_t *, u_int8_t *, u_int32_t);
121
+ <a name="l00099"></a>00099
122
+ <a name="l00100"></a>00100 <span class="comment">/* Converts u_int8_t to u_int32_t */</span>
123
+ <a name="l00101"></a>00101 u_int32_t Blowfish_stream2word(<span class="keyword">const</span> u_int8_t *, u_int16_t , u_int16_t *);
124
+ <a name="l00102"></a>00102
125
+ <a name="l00103"></a>00103 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_BLOWFISH_H_ */</span>
126
+ </pre></div></div>
127
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:45 2010 for Passenger by&nbsp;
128
+ <a href="http://www.doxygen.org/index.html">
129
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
130
+ </body>
131
+ </html>