uWSGI 2.0.27__tar.gz → 2.0.29__tar.gz

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 (759) hide show
  1. {uwsgi-2.0.27 → uwsgi-2.0.29}/.github/workflows/compile-test.yml +1 -7
  2. {uwsgi-2.0.27 → uwsgi-2.0.29}/.github/workflows/test.yml +10 -9
  3. {uwsgi-2.0.27 → uwsgi-2.0.29}/Makefile +2 -0
  4. {uwsgi-2.0.27 → uwsgi-2.0.29}/PKG-INFO +1 -1
  5. uwsgi-2.0.29/buildconf/integration-tests.ini +4 -0
  6. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/emperormon.ru +4 -4
  7. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/graphite_uwsgi.py +1 -0
  8. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/pypy/uwsgi_pypy_greenlets.py +7 -4
  9. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/pyuwsgi.py +1 -1
  10. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/runuwsgi.py +6 -5
  11. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/spoolqueue/producer.py +2 -3
  12. uwsgi-2.0.29/contrib/spoolqueue/tasks.py +13 -0
  13. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/spoolqueue/tasksconsumer.py +19 -17
  14. uwsgi-2.0.29/contrib/twuwsgi.py +118 -0
  15. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/uwsgi-cache-monitor.py +50 -26
  16. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/uwsgisubscribers.ru +4 -4
  17. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/emperor.c +1 -1
  18. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/fifo.c +24 -24
  19. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/init.c +1 -1
  20. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/master_utils.c +1 -7
  21. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/reader.c +1 -1
  22. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/signal.c +1 -1
  23. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/spooler.c +1 -1
  24. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/utils.c +1 -1
  25. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/uwsgi.c +11 -2
  26. uwsgi-2.0.29/examples/bootstrap5.py +3 -0
  27. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/flaskpost.py +2 -0
  28. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/heavytest.py +7 -1
  29. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/info_uwsgi.php +1 -1
  30. uwsgi-2.0.29/examples/mjpeg_stream.py +24 -0
  31. uwsgi-2.0.29/examples/multiapp.py +30 -0
  32. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/simple_app.py +7 -7
  33. uwsgi-2.0.29/examples/simple_app_wsgi2.py +10 -0
  34. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/simple_logger.py +2 -1
  35. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/staticfilesnmp.py +3 -2
  36. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/taskqueue.py +9 -6
  37. uwsgi-2.0.29/examples/uwsgirouter.py +76 -0
  38. uwsgi-2.0.29/examples/uwsgirouter2.py +8 -0
  39. uwsgi-2.0.29/examples/uwsgirouter3.py +26 -0
  40. uwsgi-2.0.29/examples/uwsgirouter4.py +15 -0
  41. uwsgi-2.0.29/examples/uwsgirouter5.py +10 -0
  42. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/uwsgistatus.py +9 -9
  43. uwsgi-2.0.29/examples/welcome.py +167 -0
  44. uwsgi-2.0.29/examples/welcome3.py +62 -0
  45. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/fiber/fiber.c +2 -2
  46. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/pypy/pypy_plugin.c +1 -1
  47. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/pypy/pypy_setup.py +209 -160
  48. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/pyloader.c +18 -6
  49. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/uwsgiplugin.py +13 -8
  50. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rack/rack_plugin.c +14 -10
  51. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/cachebitmap.py +27 -16
  52. uwsgi-2.0.29/t/cachetest.py +35 -0
  53. uwsgi-2.0.29/t/cgi/hello.cgi +6 -0
  54. uwsgi-2.0.29/t/core/readline/app.py +16 -0
  55. uwsgi-2.0.29/t/core/readline/client.py +8 -0
  56. uwsgi-2.0.29/t/core/readline/requirements.txt +2 -0
  57. uwsgi-2.0.29/t/cron.ini +3 -0
  58. uwsgi-2.0.29/t/perl/apps/body-types.psgi +43 -0
  59. uwsgi-2.0.29/t/perl/apps/env.psgi +10 -0
  60. uwsgi-2.0.29/t/perl/body-types.t +57 -0
  61. uwsgi-2.0.29/t/perl/env.t +79 -0
  62. uwsgi-2.0.29/t/perl/run +48 -0
  63. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/perl/test_harakiri.psgi +6 -0
  64. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/perl/test_post.psgi +1 -1
  65. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/php/config.ini +1 -1
  66. uwsgi-2.0.29/t/php/test.php +23 -0
  67. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/pypy/config.ini +2 -2
  68. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/pypy/t_continulet1.py +6 -4
  69. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/pypy/t_continulet2.py +7 -5
  70. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/python/manage_script_name/manage_script_name_test.ini +0 -4
  71. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/python/manage_script_name/useless_app.py +1 -1
  72. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/python/spooler_decorators/spooler_decorator_test.ini +3 -2
  73. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/python/spooler_decorators/spooler_handlers.py +1 -1
  74. uwsgi-2.0.29/t/python/spooler_handler.py +34 -0
  75. uwsgi-2.0.29/t/python/spooler_priority/spooler_priority_constants.py +22 -0
  76. uwsgi-2.0.29/t/python/spooler_priority/spooler_priority_handler.py +33 -0
  77. uwsgi-2.0.29/t/python/spooler_priority/spooler_priority_test.ini +17 -0
  78. uwsgi-2.0.29/t/python/spooler_priority/spooler_priority_test.py +81 -0
  79. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/python/testba.py +4 -2
  80. uwsgi-2.0.29/t/python/testmultipleenv.py +12 -0
  81. uwsgi-2.0.29/t/python/timers.py +6 -0
  82. uwsgi-2.0.29/t/python/wsgi_chunked.py +16 -0
  83. uwsgi-2.0.29/t/rack/app.ru +9 -0
  84. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/ring/src/uwsgi/ring/tests/body.clj +1 -1
  85. uwsgi-2.0.29/t/runner +258 -0
  86. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/sharedarea/bigranges.py +2 -2
  87. uwsgi-2.0.29/t/spooler/cheap.py +21 -0
  88. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/static/config.ini +1 -1
  89. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/Responder.pm +1 -1
  90. uwsgi-2.0.29/tests/__init__.py +0 -0
  91. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/badthread.py +2 -2
  92. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/badwrites.py +3 -3
  93. uwsgi-2.0.29/tests/cpubound_async.py +7 -0
  94. uwsgi-2.0.29/tests/cpubound_green.py +16 -0
  95. uwsgi-2.0.29/tests/cpubound_stackless.py +14 -0
  96. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/decoratortest.py +26 -10
  97. uwsgi-2.0.29/tests/else_test.ini +18 -0
  98. uwsgi-2.0.29/tests/fileserve_async.py +17 -0
  99. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/gevent_spool.py +6 -2
  100. uwsgi-2.0.29/tests/grunter.py +24 -0
  101. uwsgi-2.0.29/tests/iobound_async.py +43 -0
  102. uwsgi-2.0.29/tests/iobound_async_unix.py +51 -0
  103. uwsgi-2.0.29/tests/iobound_green.py +42 -0
  104. uwsgi-2.0.29/tests/logger.py +12 -0
  105. uwsgi-2.0.29/tests/mako_ugreen.py +18 -0
  106. uwsgi-2.0.29/tests/mule_file.py +3 -0
  107. uwsgi-2.0.29/tests/mulefunc.py +29 -0
  108. uwsgi-2.0.29/tests/myadmin.py +16 -0
  109. uwsgi-2.0.29/tests/pgbound_async.py +39 -0
  110. uwsgi-2.0.29/tests/picazzo.py +26 -0
  111. uwsgi-2.0.29/tests/psycogreen_green.py +45 -0
  112. uwsgi-2.0.29/tests/psycopg2_green.py +52 -0
  113. uwsgi-2.0.29/tests/pump.py +12 -0
  114. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/queue.py +9 -5
  115. uwsgi-2.0.29/tests/refcount.py +7 -0
  116. uwsgi-2.0.29/tests/rpc.py +10 -0
  117. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/runningthread.py +2 -1
  118. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/sendchunked.py +4 -1
  119. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/sharedarea.py +2 -1
  120. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/signals.py +13 -10
  121. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/sigwait.py +3 -1
  122. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/sleeping_async.py +2 -1
  123. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/sleeping_green.py +2 -2
  124. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/sleepthreadasync.py +7 -5
  125. uwsgi-2.0.29/tests/slow.py +13 -0
  126. uwsgi-2.0.29/tests/spooler_dir.py +10 -0
  127. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/spoolme.py +9 -3
  128. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/staticfile.py +4 -4
  129. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/testapp.py +63 -39
  130. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/testgevent.py +9 -6
  131. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/testpy3.py +4 -2
  132. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/testsignals.py +2 -2
  133. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/testworkers.py +5 -2
  134. uwsgi-2.0.29/tests/threads.py +41 -0
  135. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/travis.sh +2 -9
  136. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/ugevent.py +19 -13
  137. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/websockets.py +16 -15
  138. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/websockets_chat.pl +1 -1
  139. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/websockets_chat.py +17 -16
  140. uwsgi-2.0.29/tests/websockets_chat_2.py +145 -0
  141. uwsgi-2.0.29/tests/websockets_chat_async.lua +108 -0
  142. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/websockets_chat_async.py +15 -14
  143. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/websockets_chat_asyncio.py +25 -19
  144. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/websockets_echo.py +8 -7
  145. uwsgi-2.0.29/tests/werkzeug_app.py +5 -0
  146. {uwsgi-2.0.27 → uwsgi-2.0.29}/uwsgi.gemspec +1 -1
  147. {uwsgi-2.0.27 → uwsgi-2.0.29}/uwsgi.h +3 -0
  148. {uwsgi-2.0.27 → uwsgi-2.0.29}/uwsgiconfig.py +5 -5
  149. uwsgi-2.0.27/buildconf/integration-tests.ini +0 -4
  150. uwsgi-2.0.27/contrib/spoolqueue/tasks.py +0 -9
  151. uwsgi-2.0.27/contrib/twuwsgi.py +0 -119
  152. uwsgi-2.0.27/examples/bootstrap5.py +0 -3
  153. uwsgi-2.0.27/examples/mjpeg_stream.py +0 -25
  154. uwsgi-2.0.27/examples/multiapp.py +0 -22
  155. uwsgi-2.0.27/examples/simple_app_wsgi2.py +0 -9
  156. uwsgi-2.0.27/examples/uwsgirouter.py +0 -78
  157. uwsgi-2.0.27/examples/uwsgirouter2.py +0 -8
  158. uwsgi-2.0.27/examples/uwsgirouter3.py +0 -25
  159. uwsgi-2.0.27/examples/uwsgirouter4.py +0 -14
  160. uwsgi-2.0.27/examples/uwsgirouter5.py +0 -9
  161. uwsgi-2.0.27/examples/welcome.py +0 -135
  162. uwsgi-2.0.27/examples/welcome3.py +0 -47
  163. uwsgi-2.0.27/t/cachetest.py +0 -33
  164. uwsgi-2.0.27/t/python/manage_script_name/test_manage_script_name.py +0 -59
  165. uwsgi-2.0.27/t/runner +0 -144
  166. uwsgi-2.0.27/tests/cpubound_async.py +0 -6
  167. uwsgi-2.0.27/tests/cpubound_green.py +0 -15
  168. uwsgi-2.0.27/tests/cpubound_stackless.py +0 -14
  169. uwsgi-2.0.27/tests/fileserve_async.py +0 -17
  170. uwsgi-2.0.27/tests/grunter.py +0 -22
  171. uwsgi-2.0.27/tests/iobound_async.py +0 -43
  172. uwsgi-2.0.27/tests/iobound_async_unix.py +0 -51
  173. uwsgi-2.0.27/tests/iobound_green.py +0 -41
  174. uwsgi-2.0.27/tests/logger.py +0 -11
  175. uwsgi-2.0.27/tests/mako_ugreen.py +0 -19
  176. uwsgi-2.0.27/tests/mulefunc.py +0 -27
  177. uwsgi-2.0.27/tests/myadmin.py +0 -17
  178. uwsgi-2.0.27/tests/pgbound_async.py +0 -38
  179. uwsgi-2.0.27/tests/picazzo.py +0 -22
  180. uwsgi-2.0.27/tests/psycogreen_green.py +0 -45
  181. uwsgi-2.0.27/tests/psycopg2_green.py +0 -53
  182. uwsgi-2.0.27/tests/pump.py +0 -7
  183. uwsgi-2.0.27/tests/refcount.py +0 -6
  184. uwsgi-2.0.27/tests/rpc.py +0 -10
  185. uwsgi-2.0.27/tests/slow.py +0 -12
  186. uwsgi-2.0.27/tests/testyieldnone.py +0 -13
  187. uwsgi-2.0.27/tests/threads.py +0 -34
  188. uwsgi-2.0.27/tests/werkzeug_app.py +0 -5
  189. {uwsgi-2.0.27 → uwsgi-2.0.29}/.gitignore +0 -0
  190. {uwsgi-2.0.27 → uwsgi-2.0.29}/CONTRIBUTORS +0 -0
  191. {uwsgi-2.0.27 → uwsgi-2.0.29}/INSTALL +0 -0
  192. {uwsgi-2.0.27 → uwsgi-2.0.29}/LICENSE +0 -0
  193. {uwsgi-2.0.27 → uwsgi-2.0.29}/README +0 -0
  194. {uwsgi-2.0.27 → uwsgi-2.0.29}/apache2/mod_Ruwsgi.c +0 -0
  195. {uwsgi-2.0.27 → uwsgi-2.0.29}/apache2/mod_proxy_uwsgi.c +0 -0
  196. {uwsgi-2.0.27 → uwsgi-2.0.29}/apache2/mod_uwsgi.c +0 -0
  197. {uwsgi-2.0.27 → uwsgi-2.0.29}/attach.py +0 -0
  198. {uwsgi-2.0.27 → uwsgi-2.0.29}/bin/uwsgi +0 -0
  199. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/all.ini +0 -0
  200. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/asyncio.ini +0 -0
  201. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/base.ini +0 -0
  202. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/cgi.ini +0 -0
  203. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/core.ini +0 -0
  204. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/coroae.ini +0 -0
  205. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/coverity.ini +0 -0
  206. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/default.ini +0 -0
  207. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/django.ini +0 -0
  208. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/embedded.ini +0 -0
  209. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/erlang.ini +0 -0
  210. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/gccgo.ini +0 -0
  211. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/gevent.ini +0 -0
  212. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/glusterfs.ini +0 -0
  213. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/gridfs.ini +0 -0
  214. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/jwsgi.ini +0 -0
  215. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/lib.ini +0 -0
  216. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/lua.ini +0 -0
  217. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/luap.ini +0 -0
  218. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/minimal.ini +0 -0
  219. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/modular.ini +0 -0
  220. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/mono.ini +0 -0
  221. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/nolang.ini +0 -0
  222. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/package.ini +0 -0
  223. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/php.ini +0 -0
  224. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/plonly.ini +0 -0
  225. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/ppa.ini +0 -0
  226. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/psgi.ini +0 -0
  227. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/pyerl.ini +0 -0
  228. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/pylua.ini +0 -0
  229. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/pyonly.ini +0 -0
  230. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/pypy.ini +0 -0
  231. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/pypyonly.ini +0 -0
  232. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/pyring.ini +0 -0
  233. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/pyuwsgi.ini +0 -0
  234. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/pyuwsginossl.ini +0 -0
  235. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/rack.ini +0 -0
  236. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/rados.ini +0 -0
  237. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/rbonly.ini +0 -0
  238. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/ring.ini +0 -0
  239. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/ruby2.ini +0 -0
  240. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/servlet.ini +0 -0
  241. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/travis.ini +0 -0
  242. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/unbit.ini +0 -0
  243. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/unbitstaff.ini +0 -0
  244. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/unittest.ini +0 -0
  245. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/uwsgi.it.ini +0 -0
  246. {uwsgi-2.0.27 → uwsgi-2.0.29}/buildconf/v8.ini +0 -0
  247. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/Uwsgi.pm +0 -0
  248. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/binder.pl +0 -0
  249. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/centos_init_script +0 -0
  250. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/cgi_python.c +0 -0
  251. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/cryptologger.rb +0 -0
  252. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/fdconf.pl +0 -0
  253. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/launchd/it.unbit.uwsgi.emperor.plist +0 -0
  254. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/launchd/it.unbit.uwsgi.plist +0 -0
  255. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/loadapp.pl +0 -0
  256. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/securesubscribe.pl +0 -0
  257. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/subscribe.pl +0 -0
  258. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/upstart/emperor.conf +0 -0
  259. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/upstart/uwsgi.conf +0 -0
  260. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/upython +0 -0
  261. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/urack.rb +0 -0
  262. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/uwsgi.erl +0 -0
  263. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/uwsgi.java +0 -0
  264. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/uwsgi.rb +0 -0
  265. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/uwsgi_client.c +0 -0
  266. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/uwsgi_dynamic_client.c +0 -0
  267. {uwsgi-2.0.27 → uwsgi-2.0.29}/contrib/xinetd_uwsgi +0 -0
  268. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/alarm.c +0 -0
  269. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/async.c +0 -0
  270. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/buffer.c +0 -0
  271. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/cache.c +0 -0
  272. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/chunked.c +0 -0
  273. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/clang_fake.c +0 -0
  274. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/clock.c +0 -0
  275. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/config.c +0 -0
  276. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/cookie.c +0 -0
  277. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/cron.c +0 -0
  278. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/daemons.c +0 -0
  279. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/errors.c +0 -0
  280. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/event.c +0 -0
  281. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/exceptions.c +0 -0
  282. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/fsmon.c +0 -0
  283. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/gateway.c +0 -0
  284. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/hash.c +0 -0
  285. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/hooks.c +0 -0
  286. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/ini.c +0 -0
  287. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/io.c +0 -0
  288. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/json.c +0 -0
  289. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/legion.c +0 -0
  290. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/lock.c +0 -0
  291. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/logging. +0 -0
  292. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/logging.c +0 -0
  293. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/loop.c +0 -0
  294. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/master.c +0 -0
  295. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/master_checks.c +0 -0
  296. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/master_events.c +0 -0
  297. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/metrics.c +0 -0
  298. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/mount.c +0 -0
  299. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/mule.c +0 -0
  300. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/notify.c +0 -0
  301. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/offload.c +0 -0
  302. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/plugins.c +0 -0
  303. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/plugins_builder.c +0 -0
  304. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/progress.c +0 -0
  305. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/protocol.c +0 -0
  306. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/querystring.c +0 -0
  307. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/queue.c +0 -0
  308. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/rb_timers.c +0 -0
  309. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/regexp.c +0 -0
  310. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/routing.c +0 -0
  311. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/rpc.c +0 -0
  312. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/sendfile.c +0 -0
  313. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/setup_utils.c +0 -0
  314. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/sharedarea.c +0 -0
  315. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/skel.c +0 -0
  316. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/snmp.c +0 -0
  317. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/socket.c +0 -0
  318. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/ssl.c +0 -0
  319. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/static.c +0 -0
  320. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/stats.c +0 -0
  321. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/storage.c +0 -0
  322. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/strings.c +0 -0
  323. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/subscription.c +0 -0
  324. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/timebomb.c +0 -0
  325. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/transformations.c +0 -0
  326. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/websockets.c +0 -0
  327. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/writer.c +0 -0
  328. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/xmlconf.c +0 -0
  329. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/yaml.c +0 -0
  330. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/zeus.c +0 -0
  331. {uwsgi-2.0.27 → uwsgi-2.0.29}/core/zlib.c +0 -0
  332. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/bootstrap.py +0 -0
  333. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/bootstrap2.py +0 -0
  334. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/bootstrap3.py +0 -0
  335. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/bootstrap4.py +0 -0
  336. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/config.lua +0 -0
  337. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/config.ru +0 -0
  338. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/config17.ru +0 -0
  339. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/config2.lua +0 -0
  340. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/config2.ru +0 -0
  341. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/config30.ru +0 -0
  342. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/corostream.pl +0 -0
  343. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/debug.ini +0 -0
  344. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/fibers.ru +0 -0
  345. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/fibers.yml +0 -0
  346. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/heavytest.ini +0 -0
  347. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/logic.ini +0 -0
  348. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/mega.xml +0 -0
  349. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/mojoapp.pl +0 -0
  350. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/multi.ini +0 -0
  351. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/multi.xml +0 -0
  352. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/protected.ini +0 -0
  353. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/router.lua +0 -0
  354. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/sites.xml +0 -0
  355. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/sputnik.ws +0 -0
  356. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/uwsgi.xml +0 -0
  357. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/welcome.ini +0 -0
  358. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/werkzeug.js +0 -0
  359. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/werkzeug.yml +0 -0
  360. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/werkzeug_strict.yml +0 -0
  361. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/xmlindex-html.xsl +0 -0
  362. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/xmlindex.ini +0 -0
  363. {uwsgi-2.0.27 → uwsgi-2.0.29}/examples/zmqgevent.ini +0 -0
  364. {uwsgi-2.0.27 → uwsgi-2.0.29}/ext/uwsgi/extconf.rb +0 -0
  365. {uwsgi-2.0.27 → uwsgi-2.0.29}/install.sh +0 -0
  366. {uwsgi-2.0.27 → uwsgi-2.0.29}/lib/linux_ns.c +0 -0
  367. {uwsgi-2.0.27 → uwsgi-2.0.29}/lib/netlink.c +0 -0
  368. {uwsgi-2.0.27 → uwsgi-2.0.29}/lib/sun_fixes.c +0 -0
  369. {uwsgi-2.0.27 → uwsgi-2.0.29}/logo_uWSGI.png +0 -0
  370. {uwsgi-2.0.27 → uwsgi-2.0.29}/logo_uWSGI.svg +0 -0
  371. {uwsgi-2.0.27 → uwsgi-2.0.29}/mongrel2-uwsgi.conf +0 -0
  372. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/airbrake/airbrake_plugin.c +0 -0
  373. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/airbrake/uwsgiplugin.py +0 -0
  374. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/alarm_curl/alarm_curl_plugin.c +0 -0
  375. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/alarm_curl/uwsgiplugin.py +0 -0
  376. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/alarm_speech/alarm_speech.m +0 -0
  377. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/alarm_speech/uwsgiplugin.py +0 -0
  378. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/alarm_xmpp/alarm_xmpp_plugin.c +0 -0
  379. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/alarm_xmpp/gloox.cc +0 -0
  380. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/alarm_xmpp/uwsgiplugin.py +0 -0
  381. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/asyncio/asyncio.c +0 -0
  382. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/asyncio/uwsgiplugin.py +0 -0
  383. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cache/cache.c +0 -0
  384. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cache/uwsgiplugin.py +0 -0
  385. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/carbon/carbon.c +0 -0
  386. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/carbon/uwsgiplugin.py +0 -0
  387. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cgi/cgi_plugin.c +0 -0
  388. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cgi/uwsgiplugin.py +0 -0
  389. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cheaper_backlog2/cheaper_backlog2.c +0 -0
  390. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cheaper_backlog2/uwsgiplugin.py +0 -0
  391. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cheaper_busyness/cheaper_busyness.c +0 -0
  392. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cheaper_busyness/uwsgiplugin.py +0 -0
  393. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/clock_monotonic/clock_monotonic.c +0 -0
  394. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/clock_monotonic/uwsgiplugin.py +0 -0
  395. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/clock_realtime/clock_realtime.c +0 -0
  396. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/clock_realtime/uwsgiplugin.py +0 -0
  397. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/corerouter/corerouter.c +0 -0
  398. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/corerouter/cr.h +0 -0
  399. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/corerouter/cr_common.c +0 -0
  400. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/corerouter/cr_map.c +0 -0
  401. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/corerouter/uwsgiplugin.py +0 -0
  402. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/coroae/coroae.c +0 -0
  403. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/coroae/uwsgiplugin.py +0 -0
  404. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cplusplus/base.cc +0 -0
  405. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cplusplus/plugin.c +0 -0
  406. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/cplusplus/uwsgiplugin.py +0 -0
  407. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/curl_cron/curl_cron.c +0 -0
  408. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/curl_cron/uwsgiplugin.py +0 -0
  409. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/dumbloop/dumb.c +0 -0
  410. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/dumbloop/uwsgiplugin.py +0 -0
  411. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/dummy/dummy.c +0 -0
  412. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/dummy/uwsgiplugin.py +0 -0
  413. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/echo/echo_plugin.c +0 -0
  414. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/echo/uwsgiplugin.py +0 -0
  415. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/emperor_amqp/amqp.c +0 -0
  416. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/emperor_amqp/emperor_amqp.c +0 -0
  417. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/emperor_amqp/uwsgiplugin.py +0 -0
  418. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/emperor_mongodb/emperor_mongodb.cc +0 -0
  419. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/emperor_mongodb/plugin.c +0 -0
  420. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/emperor_mongodb/uwsgiplugin.py +0 -0
  421. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/emperor_pg/emperor_pg.c +0 -0
  422. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/emperor_pg/uwsgiplugin.py +0 -0
  423. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/emperor_zeromq/emperor_zeromq.c +0 -0
  424. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/emperor_zeromq/uwsgiplugin.py +0 -0
  425. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/example/example_plugin.c +0 -0
  426. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/example/uwsgiplugin.py +0 -0
  427. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/exception_log/exception_log.c +0 -0
  428. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/exception_log/uwsgiplugin.py +0 -0
  429. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/fastrouter/fastrouter.c +0 -0
  430. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/fastrouter/uwsgiplugin.py +0 -0
  431. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/fiber/uwsgiplugin.py +0 -0
  432. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/forkptyrouter/forkptyrouter.c +0 -0
  433. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/forkptyrouter/uwsgiplugin.py +0 -0
  434. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/gccgo/gccgo_plugin.c +0 -0
  435. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/gccgo/uwsgi.go +0 -0
  436. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/gccgo/uwsgiplugin.py +0 -0
  437. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/geoip/geoip.c +0 -0
  438. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/geoip/uwsgiplugin.py +0 -0
  439. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/gevent/gevent.c +0 -0
  440. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/gevent/gevent.h +0 -0
  441. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/gevent/hooks.c +0 -0
  442. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/gevent/uwsgiplugin.py +0 -0
  443. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/glusterfs/glusterfs.c +0 -0
  444. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/glusterfs/uwsgiplugin.py +0 -0
  445. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/graylog2/graylog2_plugin.c +0 -0
  446. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/graylog2/uwsgiplugin.py +0 -0
  447. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/greenlet/greenlet.c +0 -0
  448. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/greenlet/uwsgiplugin.py +0 -0
  449. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/gridfs/gridfs.cc +0 -0
  450. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/gridfs/plugin.c +0 -0
  451. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/gridfs/uwsgiplugin.py +0 -0
  452. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/http/common.h +0 -0
  453. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/http/http.c +0 -0
  454. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/http/https.c +0 -0
  455. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/http/keepalive.c +0 -0
  456. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/http/spdy3.c +0 -0
  457. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/http/spdy3.h +0 -0
  458. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/http/uwsgiplugin.py +0 -0
  459. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/jvm/jvm.h +0 -0
  460. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/jvm/jvm_plugin.c +0 -0
  461. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/jvm/uwsgi.java +0 -0
  462. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/jvm/uwsgiplugin.py +0 -0
  463. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/jwsgi/jwsgi_plugin.c +0 -0
  464. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/jwsgi/uwsgiplugin.py +0 -0
  465. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ldap/ldap.c +0 -0
  466. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ldap/uwsgiplugin.py +0 -0
  467. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/legion_cache_fetch/legion_cache_fetch.c +0 -0
  468. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/legion_cache_fetch/uwsgiplugin.py +0 -0
  469. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/libffi/libffi.c +0 -0
  470. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/libffi/uwsgiplugin.py +0 -0
  471. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/libtcc/libtcc.c +0 -0
  472. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/libtcc/uwsgiplugin.py +0 -0
  473. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/logcrypto/logcrypto.c +0 -0
  474. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/logcrypto/uwsgiplugin.py +0 -0
  475. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/logfile/logfile.c +0 -0
  476. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/logfile/uwsgiplugin.py +0 -0
  477. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/logpipe/logpipe.c +0 -0
  478. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/logpipe/uwsgiplugin.py +0 -0
  479. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/logsocket/logsocket_plugin.c +0 -0
  480. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/logsocket/uwsgiplugin.py +0 -0
  481. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/logzmq/plugin.c +0 -0
  482. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/logzmq/uwsgiplugin.py +0 -0
  483. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/lua/lua_plugin.c +0 -0
  484. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/lua/uwsgiplugin.py +0 -0
  485. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/matheval/math.c +0 -0
  486. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/matheval/uwsgiplugin.py +0 -0
  487. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/mongodb/plugin.c +0 -0
  488. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/mongodb/uwsgiplugin.py +0 -0
  489. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/mongodblog/mongodblog_plugin.c +0 -0
  490. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/mongodblog/uwsgiplugin.py +0 -0
  491. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/mongrel2/mongrel2.c +0 -0
  492. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/mongrel2/uwsgiplugin.py +0 -0
  493. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/mono/mono_plugin.c +0 -0
  494. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/mono/uwsgi.cs +0 -0
  495. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/mono/uwsgiplugin.py +0 -0
  496. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/msgpack/msgpack.c +0 -0
  497. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/msgpack/uwsgiplugin.py +0 -0
  498. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/nagios/nagios.c +0 -0
  499. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/nagios/uwsgiplugin.py +0 -0
  500. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/notfound/notfound.c +0 -0
  501. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/notfound/uwsgiplugin.py +0 -0
  502. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/objc_gc/objc_gc.m +0 -0
  503. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/objc_gc/uwsgiplugin.py +0 -0
  504. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/pam/pam.c +0 -0
  505. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/pam/uwsgiplugin.py +0 -0
  506. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/php/common.h +0 -0
  507. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/php/php_plugin.c +0 -0
  508. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/php/session.c +0 -0
  509. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/php/uwsgiplugin.py +0 -0
  510. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ping/ping_plugin.c +0 -0
  511. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ping/uwsgiplugin.py +0 -0
  512. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/psgi/psgi.h +0 -0
  513. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/psgi/psgi_loader.c +0 -0
  514. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/psgi/psgi_plugin.c +0 -0
  515. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/psgi/psgi_response.c +0 -0
  516. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/psgi/uwsgi_plmodule.c +0 -0
  517. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/psgi/uwsgiplugin.py +0 -0
  518. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/pty/pty.c +0 -0
  519. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/pty/uwsgiplugin.py +0 -0
  520. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/pypy/README +0 -0
  521. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/pypy/uwsgiplugin.py +0 -0
  522. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/gil.c +0 -0
  523. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/profiler.c +0 -0
  524. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/pump_subhandler.c +0 -0
  525. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/python_plugin.c +0 -0
  526. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/pyutils.c +0 -0
  527. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/raw.c +0 -0
  528. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/symimporter.c +0 -0
  529. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/tracebacker.c +0 -0
  530. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/uwsgi_pymodule.c +0 -0
  531. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/uwsgi_python.h +0 -0
  532. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/web3_subhandler.c +0 -0
  533. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/wsgi_handlers.c +0 -0
  534. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/wsgi_headers.c +0 -0
  535. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/python/wsgi_subhandler.c +0 -0
  536. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/pyuwsgi/pyuwsgi.c +0 -0
  537. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/pyuwsgi/uwsgiplugin.py +0 -0
  538. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rack/rack_api.c +0 -0
  539. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rack/uwsgi_rack.h +0 -0
  540. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rack/uwsgiplugin.py +0 -0
  541. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rados/rados.c +0 -0
  542. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rados/uwsgiplugin.py +0 -0
  543. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rawrouter/rawrouter.c +0 -0
  544. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rawrouter/uwsgiplugin.py +0 -0
  545. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rbthreads/rbthreads.c +0 -0
  546. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rbthreads/uwsgiplugin.py +0 -0
  547. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/redislog/redislog_plugin.c +0 -0
  548. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/redislog/uwsgiplugin.py +0 -0
  549. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ring/ring_plugin.c +0 -0
  550. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ring/uwsgiplugin.py +0 -0
  551. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_access/router_access.c +0 -0
  552. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_access/uwsgiplugin.py +0 -0
  553. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_basicauth/router_basicauth.c +0 -0
  554. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_basicauth/uwsgiplugin.py +0 -0
  555. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_cache/router_cache.c +0 -0
  556. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_cache/uwsgiplugin.py +0 -0
  557. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_expires/expires.c +0 -0
  558. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_expires/uwsgiplugin.py +0 -0
  559. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_hash/router_hash.c +0 -0
  560. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_hash/uwsgiplugin.py +0 -0
  561. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_http/router_http.c +0 -0
  562. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_http/uwsgiplugin.py +0 -0
  563. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_memcached/router_memcached.c +0 -0
  564. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_memcached/uwsgiplugin.py +0 -0
  565. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_metrics/plugin.c +0 -0
  566. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_metrics/uwsgiplugin.py +0 -0
  567. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_radius/radius.c +0 -0
  568. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_radius/uwsgiplugin.py +0 -0
  569. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_redirect/router_redirect.c +0 -0
  570. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_redirect/uwsgiplugin.py +0 -0
  571. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_redis/router_redis.c +0 -0
  572. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_redis/uwsgiplugin.py +0 -0
  573. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_rewrite/router_rewrite.c +0 -0
  574. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_rewrite/uwsgiplugin.py +0 -0
  575. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_spnego/router_spnego.c +0 -0
  576. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_spnego/uwsgiplugin.py +0 -0
  577. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_static/router_static.c +0 -0
  578. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_static/uwsgiplugin.py +0 -0
  579. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_uwsgi/router_uwsgi.c +0 -0
  580. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_uwsgi/uwsgiplugin.py +0 -0
  581. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_xmldir/router_xmldir.c +0 -0
  582. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/router_xmldir/uwsgiplugin.py +0 -0
  583. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rpc/rpc_plugin.c +0 -0
  584. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rpc/uwsgiplugin.py +0 -0
  585. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rrdtool/rrdtool.c +0 -0
  586. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rrdtool/uwsgiplugin.py +0 -0
  587. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rsyslog/rsyslog_plugin.c +0 -0
  588. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/rsyslog/uwsgiplugin.py +0 -0
  589. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ruby19/uwsgiplugin.py +0 -0
  590. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/servlet/servlet_plugin.c +0 -0
  591. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/servlet/uwsgi_servlet.java +0 -0
  592. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/servlet/uwsgiplugin.py +0 -0
  593. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/signal/signal_plugin.c +0 -0
  594. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/signal/uwsgiplugin.py +0 -0
  595. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/spooler/spooler_plugin.c +0 -0
  596. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/spooler/uwsgiplugin.py +0 -0
  597. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/sqlite3/plugin.c +0 -0
  598. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/sqlite3/uwsgiplugin.py +0 -0
  599. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ssi/ssi.c +0 -0
  600. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ssi/uwsgiplugin.py +0 -0
  601. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/sslrouter/sslrouter.c +0 -0
  602. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/sslrouter/uwsgiplugin.py +0 -0
  603. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stackless/stackless.c +0 -0
  604. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stackless/uwsgiplugin.py +0 -0
  605. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stats_pusher_file/plugin.c +0 -0
  606. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stats_pusher_file/uwsgiplugin.py +0 -0
  607. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stats_pusher_mongodb/plugin.c +0 -0
  608. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stats_pusher_mongodb/stats_pusher_mongodb.cc +0 -0
  609. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stats_pusher_mongodb/uwsgiplugin.py +0 -0
  610. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stats_pusher_socket/plugin.c +0 -0
  611. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stats_pusher_socket/uwsgiplugin.py +0 -0
  612. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stats_pusher_statsd/plugin.c +0 -0
  613. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/stats_pusher_statsd/uwsgiplugin.py +0 -0
  614. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/symcall/symcall_plugin.c +0 -0
  615. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/symcall/uwsgiplugin.py +0 -0
  616. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/syslog/syslog_plugin.c +0 -0
  617. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/syslog/uwsgiplugin.py +0 -0
  618. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/systemd_logger/systemd_logger.c +0 -0
  619. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/systemd_logger/uwsgiplugin.py +0 -0
  620. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/tornado/tornado.c +0 -0
  621. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/tornado/uwsgiplugin.py +0 -0
  622. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_chunked/chunked.c +0 -0
  623. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_chunked/uwsgiplugin.py +0 -0
  624. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_gzip/gzip.c +0 -0
  625. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_gzip/uwsgiplugin.py +0 -0
  626. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_offload/offload.c +0 -0
  627. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_offload/uwsgiplugin.py +0 -0
  628. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_template/tt.c +0 -0
  629. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_template/uwsgiplugin.py +0 -0
  630. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_tofile/tofile.c +0 -0
  631. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_tofile/uwsgiplugin.py +0 -0
  632. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_toupper/toupper.c +0 -0
  633. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/transformation_toupper/uwsgiplugin.py +0 -0
  634. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/tuntap/common.c +0 -0
  635. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/tuntap/common.h +0 -0
  636. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/tuntap/firewall.c +0 -0
  637. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/tuntap/tuntap.c +0 -0
  638. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/tuntap/uwsgiplugin.py +0 -0
  639. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ugreen/ugreen.c +0 -0
  640. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/ugreen/uwsgiplugin.py +0 -0
  641. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/v8/plugin.c +0 -0
  642. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/v8/uwsgiplugin.py +0 -0
  643. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/v8/v8_commonjs.cc +0 -0
  644. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/v8/v8_jsgi.cc +0 -0
  645. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/v8/v8_uwsgi.cc +0 -0
  646. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/v8/v8_uwsgi.h +0 -0
  647. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/webdav/uwsgiplugin.py +0 -0
  648. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/webdav/webdav.c +0 -0
  649. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/xattr/uwsgiplugin.py +0 -0
  650. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/xattr/xattr.c +0 -0
  651. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/xslt/uwsgiplugin.py +0 -0
  652. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/xslt/xslt.c +0 -0
  653. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/zabbix/plugin.c +0 -0
  654. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/zabbix/uwsgiplugin.py +0 -0
  655. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/zergpool/uwsgiplugin.py +0 -0
  656. {uwsgi-2.0.27 → uwsgi-2.0.29}/plugins/zergpool/zergpool.c +0 -0
  657. {uwsgi-2.0.27 → uwsgi-2.0.29}/proto/BUILD +0 -0
  658. {uwsgi-2.0.27 → uwsgi-2.0.29}/proto/base.c +0 -0
  659. {uwsgi-2.0.27 → uwsgi-2.0.29}/proto/fastcgi.c +0 -0
  660. {uwsgi-2.0.27 → uwsgi-2.0.29}/proto/http.c +0 -0
  661. {uwsgi-2.0.27 → uwsgi-2.0.29}/proto/puwsgi.c +0 -0
  662. {uwsgi-2.0.27 → uwsgi-2.0.29}/proto/scgi.c +0 -0
  663. {uwsgi-2.0.27 → uwsgi-2.0.29}/proto/uwsgi.c +0 -0
  664. {uwsgi-2.0.27 → uwsgi-2.0.29}/setup.cpyext.py +0 -0
  665. {uwsgi-2.0.27 → uwsgi-2.0.29}/setup.py +0 -0
  666. {uwsgi-2.0.27 → uwsgi-2.0.29}/setup.pyuwsgi.py +0 -0
  667. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/cachebitmap.ini +0 -0
  668. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/clojure/myapp.clj +0 -0
  669. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/core/apps/read_body_and_send.pl +0 -0
  670. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/core/read_body_and_send.pl +0 -0
  671. {uwsgi-2.0.27/tests → uwsgi-2.0.29/t/core/readline}/__init__.py +0 -0
  672. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/core/url_sanitize.pl +0 -0
  673. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/go/cachetest.go +0 -0
  674. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/go/complextest.go +0 -0
  675. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/go/uploadtest.go +0 -0
  676. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/java/rpc.java +0 -0
  677. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/lua/basic.lua +0 -0
  678. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/mono/cache.aspx +0 -0
  679. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/mules/mulebrain.py +0 -0
  680. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/mules/reload.py +0 -0
  681. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/mules/signal_management.py +0 -0
  682. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/perl/active_workers_signal.pl +0 -0
  683. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/perl/apps/input_with_offset.pl +0 -0
  684. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/perl/test.psgi +0 -0
  685. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/perl/test_benchmark.pl +0 -0
  686. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/perl/test_hello.psgi +0 -0
  687. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/perl/test_input_with_offset.pl +0 -0
  688. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/perl/test_sleepy.psgi +0 -0
  689. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/perl/test_streaming.psgi +0 -0
  690. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/python/forcecl.py +0 -0
  691. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/python/helloapp.py +0 -0
  692. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/python/spooler_decorators/spooler_decorator_tests.py +0 -0
  693. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/ring/README.md +0 -0
  694. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/ring/config.ini +0 -0
  695. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/ring/project.clj +0 -0
  696. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/ring/src/uwsgi/ring/tests/app.clj +0 -0
  697. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/ring/src/uwsgi/ring/tests/basic.clj +0 -0
  698. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/ring/src/uwsgi/ring/tests/simple.clj +0 -0
  699. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/ring/src/uwsgi/ring/tests/upload.clj +0 -0
  700. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/routing/auth.ini +0 -0
  701. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/routing/errorlimiter.ini +0 -0
  702. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/routing/limiter.ini +0 -0
  703. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/sharedarea/bigranges.ini +0 -0
  704. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/sharedarea/sharedarea_incdec.ini +0 -0
  705. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/sharedarea/sharedarea_incdec.py +0 -0
  706. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/spooler/read.py +0 -0
  707. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/spooler/reload.py +0 -0
  708. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/spooler/spooldir/.gitignore +0 -0
  709. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/webdav/carddav.ini +0 -0
  710. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/xslt/cd.xml +0 -0
  711. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/xslt/cd.xml.xslt +0 -0
  712. {uwsgi-2.0.27 → uwsgi-2.0.29}/t/xslt/routex.ini +0 -0
  713. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/deadlocks/main.py +0 -0
  714. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/deadlocks/master-nothreads.ini +0 -0
  715. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/deadlocks/master-singleinterpreter-threads-10workers.ini +0 -0
  716. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/deadlocks/master-singleinterpreter-threads-1worker.ini +0 -0
  717. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/deadlocks/master-threads-10workers.ini +0 -0
  718. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/deadlocks/master-threads-1worker.ini +0 -0
  719. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/deadlocks/nomaster-threads-10workers.ini +0 -0
  720. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/deadlocks/nomaster-threads-1worker.ini +0 -0
  721. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/deadlocks/sitecustomize.py +0 -0
  722. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/gh-deadlocks.sh +0 -0
  723. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/gh-python.sh +0 -0
  724. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/gh-rack.sh +0 -0
  725. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/gh-shared.sh +0 -0
  726. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/harakiri.py +0 -0
  727. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/multiapp.txt +0 -0
  728. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/rpc.lua +0 -0
  729. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/sig.lua +0 -0
  730. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/static/test.txt +0 -0
  731. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/static/test2.txt +0 -0
  732. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/streamer.psgi +0 -0
  733. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/t/static.pl +0 -0
  734. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/templates/queue.html +0 -0
  735. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/testfilewrapper.py +0 -0
  736. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/testrpc.py +0 -0
  737. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/threads_atexit.py +0 -0
  738. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/threads_heavy.py +0 -0
  739. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/web3.py +0 -0
  740. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/websockets_echo.lua +0 -0
  741. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/websockets_echo.pl +0 -0
  742. {uwsgi-2.0.27 → uwsgi-2.0.29}/tests/websockets_echo.ru +0 -0
  743. {uwsgi-2.0.27 → uwsgi-2.0.29}/unittest/Makefile +0 -0
  744. {uwsgi-2.0.27 → uwsgi-2.0.29}/unittest/check_core.c +0 -0
  745. {uwsgi-2.0.27 → uwsgi-2.0.29}/unittest/check_regexp.c +0 -0
  746. {uwsgi-2.0.27 → uwsgi-2.0.29}/uwsgi_main.c +0 -0
  747. {uwsgi-2.0.27 → uwsgi-2.0.29}/uwsgidecorators.py +0 -0
  748. {uwsgi-2.0.27 → uwsgi-2.0.29}/uwsgidsl.rb +0 -0
  749. {uwsgi-2.0.27 → uwsgi-2.0.29}/valgrind/README +0 -0
  750. {uwsgi-2.0.27 → uwsgi-2.0.29}/valgrind/valgrind-generate-sups.sh +0 -0
  751. {uwsgi-2.0.27 → uwsgi-2.0.29}/vassals/broodlord.ini +0 -0
  752. {uwsgi-2.0.27 → uwsgi-2.0.29}/vassals/cc.ini +0 -0
  753. {uwsgi-2.0.27 → uwsgi-2.0.29}/vassals/multi.xml +0 -0
  754. {uwsgi-2.0.27 → uwsgi-2.0.29}/vhosttest/flask001/app1.py +0 -0
  755. {uwsgi-2.0.27 → uwsgi-2.0.29}/vhosttest/flask002/app2.py +0 -0
  756. {uwsgi-2.0.27 → uwsgi-2.0.29}/vhosttest/flask003/app3.py +0 -0
  757. {uwsgi-2.0.27 → uwsgi-2.0.29}/vhosttest/flask004/app4.py +0 -0
  758. {uwsgi-2.0.27 → uwsgi-2.0.29}/vhosttest/flask005/app5.py +0 -0
  759. {uwsgi-2.0.27 → uwsgi-2.0.29}/vhosttest/nginx.conf +0 -0
@@ -11,18 +11,12 @@ jobs:
11
11
  strategy:
12
12
  matrix:
13
13
  libpcre: ["libpcre3-dev", "libpcre2-dev"]
14
- os: ["ubuntu-20.04", "ubuntu-22.04"]
14
+ os: ["ubuntu-22.04"]
15
15
  cc: [gcc, clang]
16
16
  include:
17
- - os: ubuntu-20.04
18
- php: "php7.4"
19
- php-config: "php-config7.4"
20
17
  - os: ubuntu-22.04
21
18
  php: "php8.1"
22
19
  php-config: "php-config8.1"
23
- exclude:
24
- - os: ubuntu-20.04
25
- cc: "clang"
26
20
 
27
21
  runs-on: ${{ matrix.os }}
28
22
 
@@ -9,13 +9,13 @@ on:
9
9
  jobs:
10
10
 
11
11
  unittest:
12
- runs-on: ubuntu-20.04
12
+ runs-on: ubuntu-22.04
13
13
  steps:
14
14
  - name: Install dependencies
15
15
  run: |
16
16
  sudo apt update -qq
17
17
  sudo apt install --no-install-recommends -qqyf \
18
- libpcre2-dev libjansson-dev libcap2-dev \
18
+ libpcre3-dev libjansson-dev libcap2-dev \
19
19
  check
20
20
  - uses: actions/checkout@v4
21
21
  - name: Run unit tests
@@ -30,7 +30,8 @@ jobs:
30
30
  sudo apt install --no-install-recommends -qqyf \
31
31
  libpcre2-dev libjansson-dev libcap2-dev \
32
32
  php-dev libphp-embed libargon2-dev libsodium-dev \
33
- pypy3
33
+ pypy3 default-jdk-headless libperl-dev \
34
+ ruby-dev ruby-rack
34
35
  - uses: actions/checkout@v4
35
36
  - name: Set env
36
37
  run: echo "PROFILE=integration-tests" >> $GITHUB_ENV
@@ -38,10 +39,10 @@ jobs:
38
39
  run: make all tests
39
40
 
40
41
  python:
41
- runs-on: ubuntu-20.04
42
+ runs-on: ubuntu-22.04
42
43
  strategy:
43
44
  matrix:
44
- python-version: ["2.7", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
45
+ python-version: ["2.7", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
45
46
  test-suite: [python, deadlocks]
46
47
  steps:
47
48
  - name: Add deadnakes ppa
@@ -53,7 +54,7 @@ jobs:
53
54
  libpcre2-dev libjansson-dev libcap2-dev \
54
55
  curl
55
56
  - name: Install distutils
56
- if: contains(fromJson('["3.6","3.7","3.8","3.9","3.10","3.11","3.12"]'), matrix.python-version)
57
+ if: contains(fromJson('["3.7","3.8","3.9","3.10","3.11"]'), matrix.python-version)
57
58
  run: |
58
59
  sudo apt install --no-install-recommends -qqyf python${{ matrix.python-version }}-distutils \
59
60
  - uses: actions/checkout@v4
@@ -72,16 +73,16 @@ jobs:
72
73
  ./tests/gh-${{ matrix.test-suite }}.sh ${PYTHON_VERSION}
73
74
 
74
75
  rack:
75
- runs-on: ubuntu-20.04
76
+ runs-on: ubuntu-22.04
76
77
  strategy:
77
78
  matrix:
78
- rack-version: ["270"]
79
+ rack-version: ["300"]
79
80
  steps:
80
81
  - name: Install dependencies
81
82
  run: |
82
83
  sudo apt update -qq
83
84
  sudo apt install --no-install-recommends -qqyf python3-dev \
84
- libpcre2-dev libjansson-dev libcap2-dev ruby2.7-dev \
85
+ libpcre2-dev libjansson-dev libcap2-dev ruby3.0-dev \
85
86
  curl
86
87
  - uses: actions/checkout@v4
87
88
  - name: Build uWSGI binary
@@ -22,3 +22,5 @@ tests:
22
22
 
23
23
  %:
24
24
  $(PYTHON) uwsgiconfig.py --build $@
25
+
26
+ .PHONY: all clean check tests
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: uWSGI
3
- Version: 2.0.27
3
+ Version: 2.0.29
4
4
  Summary: The uWSGI server
5
5
  Home-page: https://uwsgi-docs.readthedocs.io/en/latest/
6
6
  Author: Unbit
@@ -0,0 +1,4 @@
1
+ [uwsgi]
2
+ inherit = base
3
+ main_plugin =
4
+ plugins = notfound,python,php,pypy,jvm,jwsgi,psgi,cgi,rack
@@ -23,13 +23,13 @@ template = <<eof
23
23
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
24
24
  <meta name="description" content="">
25
25
  <meta name="author" content="unbit">
26
- <link href="http://unbit.github.com/bootstrap/css/bootstrap.css" rel="stylesheet">
26
+ <link href="https://unbit.github.com/bootstrap/css/bootstrap.css" rel="stylesheet">
27
27
  <style>
28
28
  body {
29
29
  padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
30
30
  }
31
31
  </style>
32
- <link href="http://unbit.github.com/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
32
+ <link href="https://unbit.github.com/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
33
33
  </head>
34
34
  <body>
35
35
 
@@ -99,8 +99,8 @@ template = <<eof
99
99
 
100
100
 
101
101
 
102
- <script src="http://unbit.github.com/jquery-1.7.2.min.js" type="text/javascript"></script>
103
- <script src="http://unbit.github.com/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
102
+ <script src="https://unbit.github.com/jquery-1.7.2.min.js" type="text/javascript"></script>
103
+ <script src="https://unbit.github.com/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
104
104
  </body>
105
105
  </html>
106
106
  eof
@@ -15,6 +15,7 @@ os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
15
15
 
16
16
  CARBON_SERVER = "127.0.0.1:2003"
17
17
 
18
+
18
19
  def update_carbon(signum):
19
20
  # connect to the carbon server
20
21
  carbon_fd = uwsgi.connect(CARBON_SERVER)
@@ -12,13 +12,15 @@ import greenlet
12
12
 
13
13
  uwsgi_pypy_greenlets = {}
14
14
 
15
+
15
16
  def uwsgi_pypy_greenlet_wrapper():
16
17
  lib.async_schedule_to_req_green()
17
18
 
19
+
18
20
  @ffi.callback("void()")
19
21
  def uwsgi_pypy_greenlet_schedule():
20
22
  id = lib.uwsgi.wsgi_req.async_id
21
- modifier1 = lib.uwsgi.wsgi_req.uh.modifier1;
23
+ modifier1 = lib.uwsgi.wsgi_req.uh.modifier1
22
24
 
23
25
  # generate a new greenlet
24
26
  if not lib.uwsgi.wsgi_req.suspended:
@@ -36,10 +38,11 @@ def uwsgi_pypy_greenlet_schedule():
36
38
  if lib.uwsgi.p[modifier1].resume:
37
39
  lib.uwsgi.p[modifier1].resume(ffi.NULL)
38
40
 
41
+
39
42
  @ffi.callback("void(struct wsgi_request *)")
40
43
  def uwsgi_pypy_greenlet_switch(wsgi_req):
41
- id = wsgi_req.async_id
42
- modifier1 = wsgi_req.uh.modifier1;
44
+ wsgi_req.async_id
45
+ modifier1 = wsgi_req.uh.modifier1
43
46
 
44
47
  # this is called in the current greenlet
45
48
  if lib.uwsgi.p[modifier1].suspend:
@@ -54,7 +57,7 @@ def uwsgi_pypy_greenlet_switch(wsgi_req):
54
57
  # update current running greenlet
55
58
  lib.uwsgi.wsgi_req = wsgi_req
56
59
 
57
- if lib.uwsgi.async <= 1:
60
+ if lib.uwsgi.async < 1:
58
61
  raise Exception("pypy greenlets require async mode !!!")
59
62
  lib.uwsgi.schedule_to_main = uwsgi_pypy_greenlet_switch
60
63
  lib.uwsgi.schedule_to_req = uwsgi_pypy_greenlet_schedule
@@ -11,7 +11,7 @@ uwsgi_args = []
11
11
  for arg in sys.argv[2:]:
12
12
  uwsgi_args.append(arg)
13
13
 
14
- #pyuwsgi.run('welcome.ini')
14
+ # pyuwsgi.run('welcome.ini')
15
15
  pyuwsgi.run(uwsgi_args)
16
16
 
17
17
  # if you are here uWSGI has been reloaded
@@ -4,6 +4,7 @@ from django.conf import settings
4
4
  import os
5
5
  import sys
6
6
 
7
+
7
8
  class Command(BaseCommand):
8
9
  help = "Runs this project as a uWSGI application. Requires the uwsgi binary in system path."
9
10
 
@@ -12,10 +13,10 @@ class Command(BaseCommand):
12
13
 
13
14
  def handle(self, *args, **options):
14
15
  for arg in args:
15
- k,v = arg.split('=')
16
+ k, v = arg.split('=')
16
17
  if k == 'http':
17
18
  if self.http_port:
18
- self.http_port = v
19
+ self.http_port = v
19
20
  elif k == 'socket':
20
21
  self.http_port = None
21
22
  self.socket_addr = v
@@ -40,8 +41,8 @@ class Command(BaseCommand):
40
41
  elif self.socket_addr:
41
42
  os.environ['UWSGI_SOCKET'] = self.socket_addr
42
43
 
43
- # map admin static files
44
- os.environ['UWSGI_STATIC_MAP'] = '%s=%s' % (settings.ADMIN_MEDIA_PREFIX, os.path.join(django.__path__[0], 'contrib', 'admin', 'media'))
44
+ # map admin static files
45
+ os.environ['UWSGI_STATIC_MAP'] = '%s=%s' % (settings.ADMIN_MEDIA_PREFIX, os.path.join(django.__path__[0], 'contrib', 'admin', 'media'))
45
46
  # remove sockets/pidfile at exit
46
47
  os.environ['UWSGI_VACUUM'] = '1'
47
48
  # retrieve/set the PythonHome
@@ -57,7 +58,7 @@ class Command(BaseCommand):
57
58
  # exec the uwsgi binary
58
59
  os.execvp('uwsgi', ('uwsgi',))
59
60
 
60
- def usage(self, subcomand):
61
+ def usage(self, subcommand):
61
62
  return r"""
62
63
  run this project on the uWSGI server
63
64
 
@@ -1,11 +1,10 @@
1
1
  from tasksconsumer import enqueue
2
2
 
3
+
3
4
  def application(env, sr):
4
5
 
5
- sr('200 OK', [('Content-Type','text/html')])
6
+ sr('200 OK', [('Content-Type', 'text/html')])
6
7
 
7
8
  enqueue(queue='fast', pippo='pluto')
8
9
 
9
10
  return "Task enqueued"
10
-
11
-
@@ -0,0 +1,13 @@
1
+ from __future__ import print_function
2
+
3
+ from tasksconsumer import queueconsumer
4
+
5
+
6
+ @queueconsumer('fast', 4)
7
+ def fast_queue(arguments):
8
+ print("fast", arguments)
9
+
10
+
11
+ @queueconsumer('slow')
12
+ def slow_queue(arguments):
13
+ print("foobar", arguments)
@@ -1,35 +1,37 @@
1
- from uwsgidecorators import *
2
- import Queue
1
+ from uwsgidecorators import spool
3
2
  from threading import Thread
4
3
 
4
+ from six.moves import queue
5
+
5
6
  queues = {}
6
7
 
8
+
7
9
  class queueconsumer(object):
8
10
 
9
11
  def __init__(self, name, num=1, **kwargs):
10
12
  self.name = name
11
- self.num = num
12
- self.queue = Queue.Queue()
13
- self.threads = []
14
- self.func = None
15
- queues[self.name] = self
16
-
13
+ self.num = num
14
+ self.queue = queue.Queue()
15
+ self.threads = []
16
+ self.func = None
17
+ queues[self.name] = self
17
18
 
18
19
  @staticmethod
19
20
  def consumer(self):
20
21
  while True:
21
- req = self.queue.get()
22
- print req
23
- self.func(req)
24
- self.queue.task_done()
22
+ req = self.queue.get()
23
+ print(req)
24
+ self.func(req)
25
+ self.queue.task_done()
25
26
 
26
27
  def __call__(self, f):
27
28
  self.func = f
28
- for i in range(self.num):
29
- t = Thread(target=self.consumer,args=(self,))
30
- self.threads.append(t)
31
- t.daemon = True
32
- t.start()
29
+ for i in range(self.num):
30
+ t = Thread(target=self.consumer, args=(self,))
31
+ self.threads.append(t)
32
+ t.daemon = True
33
+ t.start()
34
+
33
35
 
34
36
  @spool
35
37
  def spooler_enqueuer(arguments):
@@ -0,0 +1,118 @@
1
+ from twisted.internet import defer, protocol, reactor
2
+ from twisted.protocols import basic
3
+ from twisted.web2 import http, resource, responsecode, stream
4
+
5
+ import struct
6
+
7
+
8
+ class uWSGIClientResource(resource.LeafResource):
9
+
10
+ def __init__(self, app='', port=3030, host='localhost'):
11
+ resource.LeafResource.__init__(self)
12
+ self.host = host
13
+ self.port = port
14
+ self.app = app
15
+
16
+ def renderHTTP(self, request):
17
+ return uWSGI(request, self.app, self.host, self.port)
18
+
19
+
20
+ def uWSGI(request, app, host, port):
21
+ if request.stream.length is None:
22
+ return http.Response(responsecode.LENGTH_REQUIRED)
23
+
24
+ request.uwsgi_app = app
25
+ factory = uWSGIClientProtocolFactory(request)
26
+ reactor.connectTCP(host, port, factory)
27
+ return factory.deferred
28
+
29
+
30
+ class uWSGIClientProtocol(basic.LineReceiver):
31
+
32
+ def __init__(self, request, deferred):
33
+ self.request = request
34
+ self.deferred = deferred
35
+ self.stream = stream.ProducerStream()
36
+ self.response = http.Response(stream=self.stream)
37
+ self.status_parsed = None
38
+
39
+ def build_uwsgi_var(self, key, value):
40
+ return struct.pack('<H', len(key)) + key + struct.pack('<H', len(value)) + value
41
+
42
+ def connectionMade(self):
43
+ print(self.request.__dict__)
44
+ # reset response parser
45
+ self.status_parsed = None
46
+ # build header and vars
47
+ vars = ''
48
+
49
+ if self.request.stream.length:
50
+ vars += self.build_uwsgi_var('CONTENT_LENGTH', str(self.request.stream.length))
51
+
52
+ for hkey, hval in self.request.headers.getAllRawHeaders():
53
+ # use a list, probably it will be extended
54
+ if hkey.lower() not in ('content-type'):
55
+ vars += self.build_uwsgi_var('HTTP_' + hkey.upper().replace('-', '_'), ','.join(hval))
56
+ else:
57
+ vars += self.build_uwsgi_var(hkey.upper().replace('-', '_'), ','.join(hval))
58
+
59
+ vars += self.build_uwsgi_var('REQUEST_METHOD', self.request.method)
60
+ vars += self.build_uwsgi_var('SCRIPT_NAME', self.request.uwsgi_app)
61
+ vars += self.build_uwsgi_var('PATH_INFO', self.request.path[len(self.request.uwsgi_app):])
62
+ vars += self.build_uwsgi_var('QUERY_STRING', self.request.querystring)
63
+ vars += self.build_uwsgi_var('SERVER_NAME', self.request.host)
64
+ vars += self.build_uwsgi_var('SERVER_PORT', str(self.request.port))
65
+ vars += self.build_uwsgi_var('SERVER_PROTOCOL', self.request.scheme.upper() + '/' + str(self.request.clientproto[0]) + '.' + str(self.request.clientproto[1]))
66
+
67
+ vars += self.build_uwsgi_var('REQUEST_URI', self.request.uri)
68
+ vars += self.build_uwsgi_var('REMOTE_ADDR', self.request.remoteAddr.host)
69
+
70
+ self.transport.write(struct.pack('<BHB', 0, len(vars), 0))
71
+ self.transport.write(vars)
72
+
73
+ # send request data
74
+ stream.StreamProducer(self.request.stream).beginProducing(self.transport)
75
+
76
+ def lineReceived(self, line):
77
+ if self.status_parsed is None:
78
+ self.response.code = line.split(' ', 2)[1]
79
+ self.status_parsed = True
80
+ return
81
+
82
+ # end of headers
83
+ if line == '':
84
+ self.setRawMode()
85
+ self.deferred.callback(self.response)
86
+ self.response = None
87
+ return
88
+
89
+ name, value = line.split(':', 1)
90
+ value = value.strip()
91
+
92
+ self.response.headers.addRawHeader(name, value)
93
+
94
+ def rawDataReceived(self, data):
95
+ self.stream.write(data)
96
+
97
+ def connectionLost(self, reason):
98
+ self.stream.finish()
99
+
100
+
101
+ class uWSGIClientProtocolFactory(protocol.ClientFactory):
102
+
103
+ protocol = uWSGIClientProtocol
104
+ noisy = False # Make Factory shut up
105
+
106
+ def __init__(self, request):
107
+ self.request = request
108
+ self.deferred = defer.Deferred()
109
+
110
+ def buildProtocol(self, addr):
111
+ return self.protocol(self.request, self.deferred)
112
+
113
+ def clientConnectionFailed(self, connector, reason):
114
+ self.sendFailureResponse(reason)
115
+
116
+ def sendFailureResponse(self, reason):
117
+ response = http.Response(code=responsecode.BAD_GATEWAY, stream=str(reason.value))
118
+ self.deferred.callback(response)
@@ -1,3 +1,5 @@
1
+ from __future__ import print_function
2
+
1
3
  import mmap
2
4
  import os
3
5
  import struct
@@ -6,6 +8,7 @@ import time
6
8
  import sys
7
9
  from optparse import OptionParser
8
10
 
11
+
9
12
  class Cache:
10
13
 
11
14
  def __init__(self, filename, cache_slots, block_size=65536, sample_sleep=1):
@@ -41,7 +44,7 @@ class Cache:
41
44
  fields = struct.unpack_from('@HHIQQQQQ2048c', buf)
42
45
  key = array.array('c', fields[8:self.key_size+8]).tostring().rstrip('\x00')
43
46
 
44
- if [x for x in key if x!= '\x00']:
47
+ if [x for x in key if x != '\x00']:
45
48
  buf = self.store_read_item_block(position)
46
49
  value = array.array('c', buf).tostring().rstrip('\x00')
47
50
  else:
@@ -55,7 +58,7 @@ class Cache:
55
58
  if self.sample_sleep:
56
59
  time.sleep(self.sample_sleep)
57
60
  return data
58
-
61
+
59
62
  def update_stats(self, data):
60
63
  # data is a list of (position, key, value, len(value)) tuples
61
64
  items = len([1 for x in data if x[3] > 0])
@@ -68,54 +71,75 @@ class Cache:
68
71
  self.samples += 1
69
72
  block_sizes = sum([x[3] for x in data])
70
73
  self.block_sizes += block_sizes
71
- self.history.append({'full': full, 'empty': empty, 'data': data, \
72
- 'items': items, 'block_sizes': block_sizes})
74
+ self.history.append({
75
+ 'full': full,
76
+ 'empty': empty,
77
+ 'data': data,
78
+ 'items': items,
79
+ 'block_sizes': block_sizes
80
+ })
73
81
 
74
82
  def dump(self):
75
83
  return {
76
84
  'samples': self.samples,
77
85
  'history': self.history,
78
86
  'cache_slots': self.cache_slots,
79
- 'sample_sleep': self.sample_sleep,
87
+ 'sample_sleep': self.sample_sleep,
80
88
  'cache_empty': self.cache_empty,
81
89
  'cache_full': self.cache_full,
82
90
  'cache_items': self.cache_items,
83
91
  'block_sizes': self.block_sizes,
84
- }
92
+ }
85
93
 
86
94
  def show_dump(self):
87
95
  d = self.dump()
88
- print
89
- print "Recorded %d samples (%d second(s) sleep between samples)" % \
90
- (d['samples'], d['sample_sleep'])
91
- print "Cache empty %d times, full %d times, %.2f items on average" % \
92
- (d['cache_empty'], d['cache_full'], d['cache_items'] / d['samples'])
93
- print "Block size average size: %d bytes" % \
94
- (d['block_sizes'] / d['cache_items'] * 8)
95
- print "Data in cache average: %d bytes" % \
96
- (d['block_sizes'] / d['samples'] * 8)
96
+ print()
97
+ print("Recorded %d samples (%d second(s) sleep between samples)" % (
98
+ d['samples'],
99
+ d['sample_sleep']
100
+ ))
101
+ print("Cache empty %d times, full %d times, %.2f items on average" % (
102
+ d['cache_empty'],
103
+ d['cache_full'],
104
+ d['cache_items'] / d['samples']
105
+ ))
106
+ print("Block size average size: %d bytes" % (
107
+ d['block_sizes'] / d['cache_items'] * 8
108
+ ))
109
+ print("Data in cache average: %d bytes" % (
110
+ d['block_sizes'] / d['samples'] * 8
111
+ ))
112
+
97
113
 
98
114
  def main(options):
99
115
  cache = Cache(options.cache_store, options.cache_slots, options.block_size,
100
- options.sleep_time)
101
- print "Recording..."
116
+ options.sleep_time)
117
+ print("Recording...")
102
118
  while True:
103
119
  try:
104
- data = cache.read()
120
+ cache.read()
105
121
  except KeyboardInterrupt:
106
122
  cache.show_dump()
107
123
  sys.exit(0)
108
124
 
109
125
  if __name__ == '__main__':
110
126
  parser = OptionParser()
111
- parser.add_option("-s", "--cache-slots", dest="cache_slots", type="int",
112
- help="Slots available in the cache, uwsgi cache option")
113
- parser.add_option("-c", "--cache-store", dest="cache_store", default="uwsgi.cache",
114
- help="The filename of the cache store, uwsgi cache-store option. Default: uwsgi.cache")
115
- parser.add_option("-b", "--block-size", dest="block_size", default=65536, type="int",
116
- help="The size of the cache block, uwsgi cache-blocksize option. Default: 65536")
117
- parser.add_option("-t", "--sleep-time", dest="sleep_time", default=1, type="int",
118
- help="The time to sleep between each sample. Default: 1")
127
+ parser.add_option(
128
+ "-s", "--cache-slots", dest="cache_slots", type="int",
129
+ help="Slots available in the cache, uwsgi cache option"
130
+ )
131
+ parser.add_option(
132
+ "-c", "--cache-store", dest="cache_store", default="uwsgi.cache",
133
+ help="The filename of the cache store, uwsgi cache-store option. Default: uwsgi.cache"
134
+ )
135
+ parser.add_option(
136
+ "-b", "--block-size", dest="block_size", default=65536, type="int",
137
+ help="The size of the cache block, uwsgi cache-blocksize option. Default: 65536"
138
+ )
139
+ parser.add_option(
140
+ "-t", "--sleep-time", dest="sleep_time", default=1, type="int",
141
+ help="The time to sleep between each sample. Default: 1"
142
+ )
119
143
 
120
144
  (options, args) = parser.parse_args()
121
145
  if not options.cache_slots:
@@ -23,13 +23,13 @@ template = <<eof
23
23
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
24
24
  <meta name="description" content="">
25
25
  <meta name="author" content="unbit">
26
- <link href="http://unbit.github.com/bootstrap/css/bootstrap.css" rel="stylesheet">
26
+ <link href="https://unbit.github.com/bootstrap/css/bootstrap.css" rel="stylesheet">
27
27
  <style>
28
28
  body {
29
29
  padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
30
30
  }
31
31
  </style>
32
- <link href="http://unbit.github.com/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
32
+ <link href="https://unbit.github.com/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
33
33
  </head>
34
34
  <body>
35
35
 
@@ -75,8 +75,8 @@ template = <<eof
75
75
 
76
76
  <% end %>
77
77
 
78
- <script src="http://unbit.github.com/jquery-1.7.2.min.js" type="text/javascript"></script>
79
- <script src="http://unbit.github.com/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
78
+ <script src="https://unbit.github.com/jquery-1.7.2.min.js" type="text/javascript"></script>
79
+ <script src="https://unbit.github.com/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
80
80
  </body>
81
81
  </html>
82
82
  eof
@@ -598,7 +598,7 @@ static void emperor_massive_reload(int signum) {
598
598
  }
599
599
 
600
600
 
601
- static void emperor_stats() {
601
+ static void emperor_stats(int signum) {
602
602
 
603
603
  struct uwsgi_instance *c_ui = ui->ui_next;
604
604