0x00 前情提要

之前因为 Python-EngineIO 没有实现 Socket.IO 中 JSONP-Polling 的支持,于是尝试着通过 Monkey Patch 的形式给它加上。 Python 动态 Patch 实战 (1)

0x01 起因

真的是没有想到,在给 Python-EngineIO 加上 JSONP-polling 支持之后,这么快就遇到了第二个需要 Patch 的情况…

这次是因为 eventlet 并没有正确处理 WSGI environ string 导致百分号编码 (Percent-encoding) 出现在 URL 中时 可能会导致 wsgi app 崩溃的 bug

0x02 相关

Eventlet Issue#468 Patch 代码