Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: вроде eval модуль сломалс я
On Mon, Nov 29, 2010 at 11:01:46AM +0000, Valery Kholodkov wrote:
> В таком случае см. коментарий китайского программиста:
>
> https://github.com/vkholodkov/nginx-eval-module/commit/d4134c67c5e88701928a5629332541b28b5deb59
>
> К сожалению, API, который использовался модулем, на rewrite-фазе изменился в
> 0.8.42. Я поговорил с автором и исправил согласно его рекомендациям. Однако,
> судя по моим ощущениям и коментариям других разработчиков это ничего не
> решает. Очень похоже, что мы друг друга не понимаем.
Прилагаемый патч возврщает обработку NGX_OK и NGX_DONE в rewrite-фазе.
Это место можно описать так:
if(ctx->in_progress) {
return NGX_DONE;
}
так как до 0.8.42 NGX_DONE и NGX_AGAIN работали одинаково.
--
Игорь Сысоев
http://sysoev.ru
Index: src/http/ngx_http_core_module.c
===================================================================
--- src/http/ngx_http_core_module.c (revision 3116)
+++ src/http/ngx_http_core_module.c (working copy)
@@ -900,13 +900,22 @@
rc = ph->handler(r);
+ if (rc == NGX_OK) {
+ r->phase_handler = ph->next;
+ return NGX_AGAIN;
+ }
+
if (rc == NGX_DECLINED) {
r->phase_handler++;
return NGX_AGAIN;
}
- /* rc == NGX_OK || rc == NGX_ERROR || rc == NGX_HTTP_... */
+ if (rc == NGX_DONE) {
+ return NGX_OK;
+ }
+ /* NGX_AGAIN || rc == NGX_ERROR || rc == NGX_HTTP_... */
+
ngx_http_finalize_request(r, rc);
return NGX_OK;
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|