ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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


 




Copyright © Lexa Software, 1996-2009.