rufus-lua-win 5.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +69 -0
  6. data/Rakefile +1 -0
  7. data/lib/rufus/lua/win.rb +18 -0
  8. data/lib/rufus/lua/win/version.rb +7 -0
  9. data/rufus-lua-win.gemspec +23 -0
  10. data/vendor/lua/bin/liblua.dll +0 -0
  11. data/vendor/lua/lib/lua/LuaXml.lua +119 -0
  12. data/vendor/lua/lib/lua/alien.lua +250 -0
  13. data/vendor/lua/lib/lua/alien/core.dll +0 -0
  14. data/vendor/lua/lib/lua/alien/struct.dll +0 -0
  15. data/vendor/lua/lib/lua/base.lua +536 -0
  16. data/vendor/lua/lib/lua/bin.lua +20 -0
  17. data/vendor/lua/lib/lua/bit.dll +0 -0
  18. data/vendor/lua/lib/lua/cdlua.dll +0 -0
  19. data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
  20. data/vendor/lua/lib/lua/cdluagl.dll +0 -0
  21. data/vendor/lua/lib/lua/cdluaim.dll +0 -0
  22. data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
  23. data/vendor/lua/lib/lua/copas.lua +543 -0
  24. data/vendor/lua/lib/lua/coxpcall.lua +57 -0
  25. data/vendor/lua/lib/lua/date.lua +745 -0
  26. data/vendor/lua/lib/lua/debug_ext.lua +84 -0
  27. data/vendor/lua/lib/lua/debug_init.lua +2 -0
  28. data/vendor/lua/lib/lua/des56.dll +0 -0
  29. data/vendor/lua/lib/lua/dist/config.lua +109 -0
  30. data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
  31. data/vendor/lua/lib/lua/dist/depends.lua +601 -0
  32. data/vendor/lua/lib/lua/dist/git.lua +307 -0
  33. data/vendor/lua/lib/lua/dist/init.lua +278 -0
  34. data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
  35. data/vendor/lua/lib/lua/dist/package.lua +583 -0
  36. data/vendor/lua/lib/lua/dist/sys.lua +367 -0
  37. data/vendor/lua/lib/lua/dist/utils.lua +130 -0
  38. data/vendor/lua/lib/lua/ex.dll +0 -0
  39. data/vendor/lua/lib/lua/fstable.lua +116 -0
  40. data/vendor/lua/lib/lua/getopt.lua +273 -0
  41. data/vendor/lua/lib/lua/git.lua +5 -0
  42. data/vendor/lua/lib/lua/git/core.dll +0 -0
  43. data/vendor/lua/lib/lua/git/objects.lua +121 -0
  44. data/vendor/lua/lib/lua/git/pack.lua +316 -0
  45. data/vendor/lua/lib/lua/git/protocol.lua +188 -0
  46. data/vendor/lua/lib/lua/git/repo.lua +283 -0
  47. data/vendor/lua/lib/lua/git/util.lua +233 -0
  48. data/vendor/lua/lib/lua/gzio.dll +0 -0
  49. data/vendor/lua/lib/lua/gzip.lua +81 -0
  50. data/vendor/lua/lib/lua/iconv.dll +0 -0
  51. data/vendor/lua/lib/lua/imlua.dll +0 -0
  52. data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
  53. data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
  54. data/vendor/lua/lib/lua/imlua_process.dll +0 -0
  55. data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
  56. data/vendor/lua/lib/lua/io_ext.lua +115 -0
  57. data/vendor/lua/lib/lua/iuplua.dll +0 -0
  58. data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
  59. data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
  60. data/vendor/lua/lib/lua/iupluacd.dll +0 -0
  61. data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
  62. data/vendor/lua/lib/lua/iupluagl.dll +0 -0
  63. data/vendor/lua/lib/lua/iupluaim.dll +0 -0
  64. data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
  65. data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
  66. data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
  67. data/vendor/lua/lib/lua/lanes.lua +591 -0
  68. data/vendor/lua/lib/lua/lanes/core.dll +0 -0
  69. data/vendor/lua/lib/lua/lcs.lua +55 -0
  70. data/vendor/lua/lib/lua/lemock.lua +659 -0
  71. data/vendor/lua/lib/lua/lfs.dll +0 -0
  72. data/vendor/lua/lib/lua/list.lua +375 -0
  73. data/vendor/lua/lib/lua/logging.lua +189 -0
  74. data/vendor/lua/lib/lua/logging/console.lua +22 -0
  75. data/vendor/lua/lib/lua/logging/email.lua +44 -0
  76. data/vendor/lua/lib/lua/logging/file.lua +55 -0
  77. data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
  78. data/vendor/lua/lib/lua/logging/socket.lua +35 -0
  79. data/vendor/lua/lib/lua/logging/sql.lua +64 -0
  80. data/vendor/lua/lib/lua/loop/base.lua +68 -0
  81. data/vendor/lua/lib/lua/loop/cached.lua +312 -0
  82. data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
  83. data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
  84. data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
  85. data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
  86. data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
  87. data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
  88. data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
  89. data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
  90. data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
  91. data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
  92. data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
  93. data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
  94. data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
  95. data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
  96. data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
  97. data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
  98. data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
  99. data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
  100. data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
  101. data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
  102. data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
  103. data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
  104. data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
  105. data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
  106. data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
  107. data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
  108. data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
  109. data/vendor/lua/lib/lua/loop/simple.lua +75 -0
  110. data/vendor/lua/lib/lua/loop/table.lua +71 -0
  111. data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
  112. data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
  113. data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
  114. data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
  115. data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
  116. data/vendor/lua/lib/lua/lpeg.dll +0 -0
  117. data/vendor/lua/lib/lua/ltn12.lua +292 -0
  118. data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
  119. data/vendor/lua/lib/lua/luacurl.dll +0 -0
  120. data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
  121. data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
  122. data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
  123. data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
  124. data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
  125. data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
  126. data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
  127. data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
  128. data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
  129. data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
  130. data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
  131. data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
  132. data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
  133. data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
  134. data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
  135. data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
  136. data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
  137. data/vendor/lua/lib/lua/luagl.dll +0 -0
  138. data/vendor/lua/lib/lua/luaglu.dll +0 -0
  139. data/vendor/lua/lib/lua/luaidl.lua +113 -0
  140. data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
  141. data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
  142. data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
  143. data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
  144. data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
  145. data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
  146. data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
  147. data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
  148. data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
  149. data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
  150. data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
  151. data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
  152. data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
  153. data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
  154. data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
  155. data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
  156. data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
  157. data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
  158. data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
  159. data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
  160. data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
  161. data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
  162. data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
  163. data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
  164. data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
  165. data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
  166. data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
  167. data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
  168. data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
  169. data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
  170. data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
  171. data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
  172. data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
  173. data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
  174. data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
  175. data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
  176. data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
  177. data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
  178. data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
  179. data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
  180. data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
  181. data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
  182. data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
  183. data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
  184. data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
  185. data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
  186. data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
  187. data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
  188. data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
  189. data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
  190. data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
  191. data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
  192. data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
  193. data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
  194. data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
  195. data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
  196. data/vendor/lua/lib/lua/luars232.dll +0 -0
  197. data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
  198. data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
  199. data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
  200. data/vendor/lua/lib/lua/luaunit.lua +601 -0
  201. data/vendor/lua/lib/lua/lxp.dll +0 -0
  202. data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
  203. data/vendor/lua/lib/lua/math_ext.lua +27 -0
  204. data/vendor/lua/lib/lua/mbox.lua +53 -0
  205. data/vendor/lua/lib/lua/md5.lua +19 -0
  206. data/vendor/lua/lib/lua/md5/core.dll +0 -0
  207. data/vendor/lua/lib/lua/metalua.lua +0 -0
  208. data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
  209. data/vendor/lua/lib/lua/metalua/base.lua +104 -0
  210. data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
  211. data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
  212. data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
  213. data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
  214. data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
  215. data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
  216. data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
  217. data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
  218. data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
  219. data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
  220. data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
  221. data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
  222. data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
  223. data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
  224. data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
  225. data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
  226. data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
  227. data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
  228. data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
  229. data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
  230. data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
  231. data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
  232. data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
  233. data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
  234. data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
  235. data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
  236. data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
  237. data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
  238. data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
  239. data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
  240. data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
  241. data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
  242. data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
  243. data/vendor/lua/lib/lua/mime.lua +87 -0
  244. data/vendor/lua/lib/lua/mime/core.dll +0 -0
  245. data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
  246. data/vendor/lua/lib/lua/modules.lua +16 -0
  247. data/vendor/lua/lib/lua/object.lua +56 -0
  248. data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
  249. data/vendor/lua/lib/lua/oil/arch.lua +27 -0
  250. data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
  251. data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
  252. data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
  253. data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
  254. data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
  255. data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
  256. data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
  257. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
  258. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
  259. data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
  260. data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
  261. data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
  262. data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
  263. data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
  264. data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
  265. data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
  266. data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
  267. data/vendor/lua/lib/lua/oil/assert.lua +87 -0
  268. data/vendor/lua/lib/lua/oil/builder.lua +45 -0
  269. data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
  270. data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
  271. data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
  272. data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
  273. data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
  274. data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
  275. data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
  276. data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
  277. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
  278. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
  279. data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
  280. data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
  281. data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
  282. data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
  283. data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
  284. data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
  285. data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
  286. data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
  287. data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
  288. data/vendor/lua/lib/lua/oil/compat.lua +846 -0
  289. data/vendor/lua/lib/lua/oil/component.lua +1 -0
  290. data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
  291. data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
  292. data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
  293. data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
  294. data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
  295. data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
  296. data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
  297. data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
  298. data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
  299. data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
  300. data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
  301. data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
  302. data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
  303. data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
  304. data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
  305. data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
  306. data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
  307. data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
  308. data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
  309. data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
  310. data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
  311. data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
  312. data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
  313. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
  314. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
  315. data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
  316. data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
  317. data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
  318. data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
  319. data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
  320. data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
  321. data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
  322. data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
  323. data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
  324. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
  325. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
  326. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
  327. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
  328. data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
  329. data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
  330. data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
  331. data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
  332. data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
  333. data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
  334. data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
  335. data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
  336. data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
  337. data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
  338. data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
  339. data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
  340. data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
  341. data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
  342. data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
  343. data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
  344. data/vendor/lua/lib/lua/oil/oo.lua +1 -0
  345. data/vendor/lua/lib/lua/oil/port.lua +1 -0
  346. data/vendor/lua/lib/lua/oil/properties.lua +57 -0
  347. data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
  348. data/vendor/lua/lib/lua/package_ext.lua +15 -0
  349. data/vendor/lua/lib/lua/parser.lua +268 -0
  350. data/vendor/lua/lib/lua/pl/Date.lua +555 -0
  351. data/vendor/lua/lib/lua/pl/List.lua +613 -0
  352. data/vendor/lua/lib/lua/pl/Map.lua +113 -0
  353. data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
  354. data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
  355. data/vendor/lua/lib/lua/pl/Set.lua +153 -0
  356. data/vendor/lua/lib/lua/pl/app.lua +165 -0
  357. data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
  358. data/vendor/lua/lib/lua/pl/class.lua +180 -0
  359. data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
  360. data/vendor/lua/lib/lua/pl/config.lua +176 -0
  361. data/vendor/lua/lib/lua/pl/data.lua +606 -0
  362. data/vendor/lua/lib/lua/pl/dir.lua +475 -0
  363. data/vendor/lua/lib/lua/pl/file.lua +70 -0
  364. data/vendor/lua/lib/lua/pl/func.lua +376 -0
  365. data/vendor/lua/lib/lua/pl/init.lua +68 -0
  366. data/vendor/lua/lib/lua/pl/input.lua +173 -0
  367. data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
  368. data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
  369. data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
  370. data/vendor/lua/lib/lua/pl/operator.lua +201 -0
  371. data/vendor/lua/lib/lua/pl/path.lua +398 -0
  372. data/vendor/lua/lib/lua/pl/permute.lua +63 -0
  373. data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
  374. data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
  375. data/vendor/lua/lib/lua/pl/seq.lua +551 -0
  376. data/vendor/lua/lib/lua/pl/sip.lua +344 -0
  377. data/vendor/lua/lib/lua/pl/strict.lua +70 -0
  378. data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
  379. data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
  380. data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
  381. data/vendor/lua/lib/lua/pl/template.lua +103 -0
  382. data/vendor/lua/lib/lua/pl/test.lua +135 -0
  383. data/vendor/lua/lib/lua/pl/text.lua +243 -0
  384. data/vendor/lua/lib/lua/pl/utils.lua +550 -0
  385. data/vendor/lua/lib/lua/pl/xml.lua +689 -0
  386. data/vendor/lua/lib/lua/profiler.dll +0 -0
  387. data/vendor/lua/lib/lua/re.lua +248 -0
  388. data/vendor/lua/lib/lua/rex_onig.dll +0 -0
  389. data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
  390. data/vendor/lua/lib/lua/rex_posix.dll +0 -0
  391. data/vendor/lua/lib/lua/rings.dll +0 -0
  392. data/vendor/lua/lib/lua/serialize.lua +193 -0
  393. data/vendor/lua/lib/lua/set.lua +149 -0
  394. data/vendor/lua/lib/lua/socket.lua +133 -0
  395. data/vendor/lua/lib/lua/socket/core.dll +0 -0
  396. data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
  397. data/vendor/lua/lib/lua/socket/http.lua +350 -0
  398. data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
  399. data/vendor/lua/lib/lua/socket/tp.lua +123 -0
  400. data/vendor/lua/lib/lua/socket/url.lua +297 -0
  401. data/vendor/lua/lib/lua/ssl.dll +0 -0
  402. data/vendor/lua/lib/lua/ssl.lua +93 -0
  403. data/vendor/lua/lib/lua/ssl/https.lua +138 -0
  404. data/vendor/lua/lib/lua/stable.lua +28 -0
  405. data/vendor/lua/lib/lua/std.lua +16 -0
  406. data/vendor/lua/lib/lua/strbuf.lua +32 -0
  407. data/vendor/lua/lib/lua/strict.lua +45 -0
  408. data/vendor/lua/lib/lua/string_ext.lua +274 -0
  409. data/vendor/lua/lib/lua/table_ext.lua +117 -0
  410. data/vendor/lua/lib/lua/tar.lua +262 -0
  411. data/vendor/lua/lib/lua/task.dll +0 -0
  412. data/vendor/lua/lib/lua/tree.lua +81 -0
  413. data/vendor/lua/lib/lua/unicode.dll +0 -0
  414. data/vendor/lua/lib/lua/verbose_require.lua +11 -0
  415. data/vendor/lua/lib/lua/vstruct.lua +86 -0
  416. data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
  417. data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
  418. data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
  419. data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
  420. data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
  421. data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
  422. data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
  423. data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
  424. data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
  425. data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
  426. data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
  427. data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
  428. data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
  429. data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
  430. data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
  431. data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
  432. data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
  433. data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
  434. data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
  435. data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
  436. data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
  437. data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
  438. data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
  439. data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
  440. data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
  441. data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
  442. data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
  443. data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
  444. data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
  445. data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
  446. data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
  447. data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
  448. data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
  449. data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
  450. data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
  451. data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
  452. data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
  453. data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
  454. data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
  455. data/vendor/lua/lib/lua/wx.dll +0 -0
  456. data/vendor/lua/lib/lua/xml.lua +75 -0
  457. data/vendor/lua/lib/lua/zip.dll +0 -0
  458. data/vendor/lua/lib/lua/zlib.dll +0 -0
  459. metadata +529 -0
@@ -0,0 +1,123 @@
1
+ -----------------------------------------------------------------------------
2
+ -- Unified SMTP/FTP subsystem
3
+ -- LuaSocket toolkit.
4
+ -- Author: Diego Nehab
5
+ -- RCS ID: $Id$
6
+ -----------------------------------------------------------------------------
7
+
8
+ -----------------------------------------------------------------------------
9
+ -- Declare module and import dependencies
10
+ -----------------------------------------------------------------------------
11
+ local base = _G
12
+ local string = require("string")
13
+ local socket = require("socket")
14
+ local ltn12 = require("ltn12")
15
+ module("socket.tp")
16
+
17
+ -----------------------------------------------------------------------------
18
+ -- Program constants
19
+ -----------------------------------------------------------------------------
20
+ TIMEOUT = 60
21
+
22
+ -----------------------------------------------------------------------------
23
+ -- Implementation
24
+ -----------------------------------------------------------------------------
25
+ -- gets server reply (works for SMTP and FTP)
26
+ local function get_reply(c)
27
+ local code, current, sep
28
+ local line, err = c:receive()
29
+ local reply = line
30
+ if err then return nil, err end
31
+ code, sep = socket.skip(2, string.find(line, "^(%d%d%d)(.?)"))
32
+ if not code then return nil, "invalid server reply" end
33
+ if sep == "-" then -- reply is multiline
34
+ repeat
35
+ line, err = c:receive()
36
+ if err then return nil, err end
37
+ current, sep = socket.skip(2, string.find(line, "^(%d%d%d)(.?)"))
38
+ reply = reply .. "\n" .. line
39
+ -- reply ends with same code
40
+ until code == current and sep == " "
41
+ end
42
+ return code, reply
43
+ end
44
+
45
+ -- metatable for sock object
46
+ local metat = { __index = {} }
47
+
48
+ function metat.__index:check(ok)
49
+ local code, reply = get_reply(self.c)
50
+ if not code then return nil, reply end
51
+ if base.type(ok) ~= "function" then
52
+ if base.type(ok) == "table" then
53
+ for i, v in base.ipairs(ok) do
54
+ if string.find(code, v) then
55
+ return base.tonumber(code), reply
56
+ end
57
+ end
58
+ return nil, reply
59
+ else
60
+ if string.find(code, ok) then return base.tonumber(code), reply
61
+ else return nil, reply end
62
+ end
63
+ else return ok(base.tonumber(code), reply) end
64
+ end
65
+
66
+ function metat.__index:command(cmd, arg)
67
+ if arg then
68
+ return self.c:send(cmd .. " " .. arg.. "\r\n")
69
+ else
70
+ return self.c:send(cmd .. "\r\n")
71
+ end
72
+ end
73
+
74
+ function metat.__index:sink(snk, pat)
75
+ local chunk, err = c:receive(pat)
76
+ return snk(chunk, err)
77
+ end
78
+
79
+ function metat.__index:send(data)
80
+ return self.c:send(data)
81
+ end
82
+
83
+ function metat.__index:receive(pat)
84
+ return self.c:receive(pat)
85
+ end
86
+
87
+ function metat.__index:getfd()
88
+ return self.c:getfd()
89
+ end
90
+
91
+ function metat.__index:dirty()
92
+ return self.c:dirty()
93
+ end
94
+
95
+ function metat.__index:getcontrol()
96
+ return self.c
97
+ end
98
+
99
+ function metat.__index:source(source, step)
100
+ local sink = socket.sink("keep-open", self.c)
101
+ local ret, err = ltn12.pump.all(source, sink, step or ltn12.pump.step)
102
+ return ret, err
103
+ end
104
+
105
+ -- closes the underlying c
106
+ function metat.__index:close()
107
+ self.c:close()
108
+ return 1
109
+ end
110
+
111
+ -- connect with server and return c object
112
+ function connect(host, port, timeout, create)
113
+ local c, e = (create or socket.tcp)()
114
+ if not c then return nil, e end
115
+ c:settimeout(timeout or TIMEOUT)
116
+ local r, e = c:connect(host, port)
117
+ if not r then
118
+ c:close()
119
+ return nil, e
120
+ end
121
+ return base.setmetatable({c = c}, metat)
122
+ end
123
+
@@ -0,0 +1,297 @@
1
+ -----------------------------------------------------------------------------
2
+ -- URI parsing, composition and relative URL resolution
3
+ -- LuaSocket toolkit.
4
+ -- Author: Diego Nehab
5
+ -- RCS ID: $Id$
6
+ -----------------------------------------------------------------------------
7
+
8
+ -----------------------------------------------------------------------------
9
+ -- Declare module
10
+ -----------------------------------------------------------------------------
11
+ local string = require("string")
12
+ local base = _G
13
+ local table = require("table")
14
+ module("socket.url")
15
+
16
+ -----------------------------------------------------------------------------
17
+ -- Module version
18
+ -----------------------------------------------------------------------------
19
+ _VERSION = "URL 1.0.1"
20
+
21
+ -----------------------------------------------------------------------------
22
+ -- Encodes a string into its escaped hexadecimal representation
23
+ -- Input
24
+ -- s: binary string to be encoded
25
+ -- Returns
26
+ -- escaped representation of string binary
27
+ -----------------------------------------------------------------------------
28
+ function escape(s)
29
+ return string.gsub(s, "([^A-Za-z0-9_])", function(c)
30
+ return string.format("%%%02x", string.byte(c))
31
+ end)
32
+ end
33
+
34
+ -----------------------------------------------------------------------------
35
+ -- Protects a path segment, to prevent it from interfering with the
36
+ -- url parsing.
37
+ -- Input
38
+ -- s: binary string to be encoded
39
+ -- Returns
40
+ -- escaped representation of string binary
41
+ -----------------------------------------------------------------------------
42
+ local function make_set(t)
43
+ local s = {}
44
+ for i,v in base.ipairs(t) do
45
+ s[t[i]] = 1
46
+ end
47
+ return s
48
+ end
49
+
50
+ -- these are allowed withing a path segment, along with alphanum
51
+ -- other characters must be escaped
52
+ local segment_set = make_set {
53
+ "-", "_", ".", "!", "~", "*", "'", "(",
54
+ ")", ":", "@", "&", "=", "+", "$", ",",
55
+ }
56
+
57
+ local function protect_segment(s)
58
+ return string.gsub(s, "([^A-Za-z0-9_])", function (c)
59
+ if segment_set[c] then return c
60
+ else return string.format("%%%02x", string.byte(c)) end
61
+ end)
62
+ end
63
+
64
+ -----------------------------------------------------------------------------
65
+ -- Encodes a string into its escaped hexadecimal representation
66
+ -- Input
67
+ -- s: binary string to be encoded
68
+ -- Returns
69
+ -- escaped representation of string binary
70
+ -----------------------------------------------------------------------------
71
+ function unescape(s)
72
+ return string.gsub(s, "%%(%x%x)", function(hex)
73
+ return string.char(base.tonumber(hex, 16))
74
+ end)
75
+ end
76
+
77
+ -----------------------------------------------------------------------------
78
+ -- Builds a path from a base path and a relative path
79
+ -- Input
80
+ -- base_path
81
+ -- relative_path
82
+ -- Returns
83
+ -- corresponding absolute path
84
+ -----------------------------------------------------------------------------
85
+ local function absolute_path(base_path, relative_path)
86
+ if string.sub(relative_path, 1, 1) == "/" then return relative_path end
87
+ local path = string.gsub(base_path, "[^/]*$", "")
88
+ path = path .. relative_path
89
+ path = string.gsub(path, "([^/]*%./)", function (s)
90
+ if s ~= "./" then return s else return "" end
91
+ end)
92
+ path = string.gsub(path, "/%.$", "/")
93
+ local reduced
94
+ while reduced ~= path do
95
+ reduced = path
96
+ path = string.gsub(reduced, "([^/]*/%.%./)", function (s)
97
+ if s ~= "../../" then return "" else return s end
98
+ end)
99
+ end
100
+ path = string.gsub(reduced, "([^/]*/%.%.)$", function (s)
101
+ if s ~= "../.." then return "" else return s end
102
+ end)
103
+ return path
104
+ end
105
+
106
+ -----------------------------------------------------------------------------
107
+ -- Parses a url and returns a table with all its parts according to RFC 2396
108
+ -- The following grammar describes the names given to the URL parts
109
+ -- <url> ::= <scheme>://<authority>/<path>;<params>?<query>#<fragment>
110
+ -- <authority> ::= <userinfo>@<host>:<port>
111
+ -- <userinfo> ::= <user>[:<password>]
112
+ -- <path> :: = {<segment>/}<segment>
113
+ -- Input
114
+ -- url: uniform resource locator of request
115
+ -- default: table with default values for each field
116
+ -- Returns
117
+ -- table with the following fields, where RFC naming conventions have
118
+ -- been preserved:
119
+ -- scheme, authority, userinfo, user, password, host, port,
120
+ -- path, params, query, fragment
121
+ -- Obs:
122
+ -- the leading '/' in {/<path>} is considered part of <path>
123
+ -----------------------------------------------------------------------------
124
+ function parse(url, default)
125
+ -- initialize default parameters
126
+ local parsed = {}
127
+ for i,v in base.pairs(default or parsed) do parsed[i] = v end
128
+ -- empty url is parsed to nil
129
+ if not url or url == "" then return nil, "invalid url" end
130
+ -- remove whitespace
131
+ -- url = string.gsub(url, "%s", "")
132
+ -- get fragment
133
+ url = string.gsub(url, "#(.*)$", function(f)
134
+ parsed.fragment = f
135
+ return ""
136
+ end)
137
+ -- get scheme
138
+ url = string.gsub(url, "^([%w][%w%+%-%.]*)%:",
139
+ function(s) parsed.scheme = s; return "" end)
140
+ -- get authority
141
+ url = string.gsub(url, "^//([^/]*)", function(n)
142
+ parsed.authority = n
143
+ return ""
144
+ end)
145
+ -- get query stringing
146
+ url = string.gsub(url, "%?(.*)", function(q)
147
+ parsed.query = q
148
+ return ""
149
+ end)
150
+ -- get params
151
+ url = string.gsub(url, "%;(.*)", function(p)
152
+ parsed.params = p
153
+ return ""
154
+ end)
155
+ -- path is whatever was left
156
+ if url ~= "" then parsed.path = url end
157
+ local authority = parsed.authority
158
+ if not authority then return parsed end
159
+ authority = string.gsub(authority,"^([^@]*)@",
160
+ function(u) parsed.userinfo = u; return "" end)
161
+ authority = string.gsub(authority, ":([^:]*)$",
162
+ function(p) parsed.port = p; return "" end)
163
+ if authority ~= "" then parsed.host = authority end
164
+ local userinfo = parsed.userinfo
165
+ if not userinfo then return parsed end
166
+ userinfo = string.gsub(userinfo, ":([^:]*)$",
167
+ function(p) parsed.password = p; return "" end)
168
+ parsed.user = userinfo
169
+ return parsed
170
+ end
171
+
172
+ -----------------------------------------------------------------------------
173
+ -- Rebuilds a parsed URL from its components.
174
+ -- Components are protected if any reserved or unallowed characters are found
175
+ -- Input
176
+ -- parsed: parsed URL, as returned by parse
177
+ -- Returns
178
+ -- a stringing with the corresponding URL
179
+ -----------------------------------------------------------------------------
180
+ function build(parsed)
181
+ local ppath = parse_path(parsed.path or "")
182
+ local url = build_path(ppath)
183
+ if parsed.params then url = url .. ";" .. parsed.params end
184
+ if parsed.query then url = url .. "?" .. parsed.query end
185
+ local authority = parsed.authority
186
+ if parsed.host then
187
+ authority = parsed.host
188
+ if parsed.port then authority = authority .. ":" .. parsed.port end
189
+ local userinfo = parsed.userinfo
190
+ if parsed.user then
191
+ userinfo = parsed.user
192
+ if parsed.password then
193
+ userinfo = userinfo .. ":" .. parsed.password
194
+ end
195
+ end
196
+ if userinfo then authority = userinfo .. "@" .. authority end
197
+ end
198
+ if authority then url = "//" .. authority .. url end
199
+ if parsed.scheme then url = parsed.scheme .. ":" .. url end
200
+ if parsed.fragment then url = url .. "#" .. parsed.fragment end
201
+ -- url = string.gsub(url, "%s", "")
202
+ return url
203
+ end
204
+
205
+ -----------------------------------------------------------------------------
206
+ -- Builds a absolute URL from a base and a relative URL according to RFC 2396
207
+ -- Input
208
+ -- base_url
209
+ -- relative_url
210
+ -- Returns
211
+ -- corresponding absolute url
212
+ -----------------------------------------------------------------------------
213
+ function absolute(base_url, relative_url)
214
+ if base.type(base_url) == "table" then
215
+ base_parsed = base_url
216
+ base_url = build(base_parsed)
217
+ else
218
+ base_parsed = parse(base_url)
219
+ end
220
+ local relative_parsed = parse(relative_url)
221
+ if not base_parsed then return relative_url
222
+ elseif not relative_parsed then return base_url
223
+ elseif relative_parsed.scheme then return relative_url
224
+ else
225
+ relative_parsed.scheme = base_parsed.scheme
226
+ if not relative_parsed.authority then
227
+ relative_parsed.authority = base_parsed.authority
228
+ if not relative_parsed.path then
229
+ relative_parsed.path = base_parsed.path
230
+ if not relative_parsed.params then
231
+ relative_parsed.params = base_parsed.params
232
+ if not relative_parsed.query then
233
+ relative_parsed.query = base_parsed.query
234
+ end
235
+ end
236
+ else
237
+ relative_parsed.path = absolute_path(base_parsed.path or "",
238
+ relative_parsed.path)
239
+ end
240
+ end
241
+ return build(relative_parsed)
242
+ end
243
+ end
244
+
245
+ -----------------------------------------------------------------------------
246
+ -- Breaks a path into its segments, unescaping the segments
247
+ -- Input
248
+ -- path
249
+ -- Returns
250
+ -- segment: a table with one entry per segment
251
+ -----------------------------------------------------------------------------
252
+ function parse_path(path)
253
+ local parsed = {}
254
+ path = path or ""
255
+ --path = string.gsub(path, "%s", "")
256
+ string.gsub(path, "([^/]+)", function (s) table.insert(parsed, s) end)
257
+ for i = 1, table.getn(parsed) do
258
+ parsed[i] = unescape(parsed[i])
259
+ end
260
+ if string.sub(path, 1, 1) == "/" then parsed.is_absolute = 1 end
261
+ if string.sub(path, -1, -1) == "/" then parsed.is_directory = 1 end
262
+ return parsed
263
+ end
264
+
265
+ -----------------------------------------------------------------------------
266
+ -- Builds a path component from its segments, escaping protected characters.
267
+ -- Input
268
+ -- parsed: path segments
269
+ -- unsafe: if true, segments are not protected before path is built
270
+ -- Returns
271
+ -- path: corresponding path stringing
272
+ -----------------------------------------------------------------------------
273
+ function build_path(parsed, unsafe)
274
+ local path = ""
275
+ local n = table.getn(parsed)
276
+ if unsafe then
277
+ for i = 1, n-1 do
278
+ path = path .. parsed[i]
279
+ path = path .. "/"
280
+ end
281
+ if n > 0 then
282
+ path = path .. parsed[n]
283
+ if parsed.is_directory then path = path .. "/" end
284
+ end
285
+ else
286
+ for i = 1, n-1 do
287
+ path = path .. protect_segment(parsed[i])
288
+ path = path .. "/"
289
+ end
290
+ if n > 0 then
291
+ path = path .. protect_segment(parsed[n])
292
+ if parsed.is_directory then path = path .. "/" end
293
+ end
294
+ end
295
+ if parsed.is_absolute then path = "/" .. path end
296
+ return path
297
+ end
@@ -0,0 +1,93 @@
1
+ ------------------------------------------------------------------------------
2
+ -- LuaSec 0.4
3
+ -- Copyright (C) 2006-2009 Bruno Silvestre
4
+ --
5
+ ------------------------------------------------------------------------------
6
+
7
+ module("ssl", package.seeall)
8
+
9
+ require("ssl.core")
10
+ require("ssl.context")
11
+
12
+
13
+ _VERSION = "0.4"
14
+ _COPYRIGHT = "LuaSec 0.4 - Copyright (C) 2006-2009 Bruno Silvestre\n" ..
15
+ "LuaSocket 2.0.2 - Copyright (C) 2004-2007 Diego Nehab"
16
+
17
+ -- Export functions
18
+ rawconnection = core.rawconnection
19
+ rawcontext = context.rawcontext
20
+
21
+ --
22
+ --
23
+ --
24
+ local function optexec(func, param, ctx)
25
+ if param then
26
+ if type(param) == "table" then
27
+ return func(ctx, unpack(param))
28
+ else
29
+ return func(ctx, param)
30
+ end
31
+ end
32
+ return true
33
+ end
34
+
35
+ --
36
+ --
37
+ --
38
+ function newcontext(cfg)
39
+ local succ, msg, ctx
40
+ -- Create the context
41
+ ctx, msg = context.create(cfg.protocol)
42
+ if not ctx then return nil, msg end
43
+ -- Mode
44
+ succ, msg = context.setmode(ctx, cfg.mode)
45
+ if not succ then return nil, msg end
46
+ -- Load the key
47
+ if cfg.key then
48
+ succ, msg = context.loadkey(ctx, cfg.key, cfg.password)
49
+ if not succ then return nil, msg end
50
+ end
51
+ -- Load the certificate
52
+ if cfg.certificate then
53
+ succ, msg = context.loadcert(ctx, cfg.certificate)
54
+ if not succ then return nil, msg end
55
+ end
56
+ -- Load the CA certificates
57
+ if cfg.cafile or cfg.capath then
58
+ succ, msg = context.locations(ctx, cfg.cafile, cfg.capath)
59
+ if not succ then return nil, msg end
60
+ end
61
+ -- Set the verification options
62
+ succ, msg = optexec(context.setverify, cfg.verify, ctx)
63
+ if not succ then return nil, msg end
64
+ -- Set SSL options
65
+ succ, msg = optexec(context.setoptions, cfg.options, ctx)
66
+ if not succ then return nil, msg end
67
+ -- Set the depth for certificate verification
68
+ if cfg.depth then
69
+ succ, msg = context.setdepth(ctx, cfg.depth)
70
+ if not succ then return nil, msg end
71
+ end
72
+ return ctx
73
+ end
74
+
75
+ --
76
+ --
77
+ --
78
+ function wrap(sock, cfg)
79
+ local ctx, msg
80
+ if type(cfg) == "table" then
81
+ ctx, msg = newcontext(cfg)
82
+ if not ctx then return nil, msg end
83
+ else
84
+ ctx = cfg
85
+ end
86
+ local s, msg = core.create(ctx)
87
+ if s then
88
+ core.setfd(s, sock:getfd())
89
+ sock:setfd(core.invalidfd)
90
+ return s
91
+ end
92
+ return nil, msg
93
+ end