ПРОЕКТЫ 


  АРХИВ 


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]

[PATCH] Патч для совместимости с ey-balancer модулем


  • To: nginx-ru@xxxxxxxxx
  • Subject: [PATCH] Патч для совместимости с ey-balancer модулем
  • From: "Misbakh-Soloviov Vadim A." <mva@xxxxxxxx>
  • Date: Tue, 01 May 2012 21:11:10 +0700
  • Organization: Alpha LLC

Товарищи!

У меня тут уже долгое время для сборки NgX с http-модулем ey-balancer 
локально накладывается патч из аттача. Скажите, что вы думаете по 
поводу прямоты оного и есть ли у него перспективы быть 
отправленным в апстрим? А то я был бы рад избавиться от лишнего 
локально накладываемого патча :)

P.S. Автор, конечно, модуль слегка забросил, судя по всему, но я по мере 
сил попиливаю его, форкнув на гитхабе. Тем не менее, давайте обсудим 
перспективы патча.

-- 
Best regards,
mva
diff -Naur src/http/ngx_http_upstream.c src/http/ngx_http_upstream.c
--- src/http/ngx_http_upstream.c        2009-12-23 10:31:16.000000000 -0500
+++ src/http/ngx_http_upstream.c        2010-01-20 15:26:24.000000000 -0500
@@ -24,8 +24,6 @@
 static void ngx_http_upstream_wr_check_broken_connection(ngx_http_request_t 
*r);
 static void ngx_http_upstream_check_broken_connection(ngx_http_request_t *r,
     ngx_event_t *ev);
-static void ngx_http_upstream_connect(ngx_http_request_t *r,
-    ngx_http_upstream_t *u);
 static ngx_int_t ngx_http_upstream_reinit(ngx_http_request_t *r,
     ngx_http_upstream_t *u);
 static void ngx_http_upstream_send_request(ngx_http_request_t *r,
@@ -600,13 +598,12 @@
 
 found:
 
-    if (uscf->peer.init(r, uscf) != NGX_OK) {
-        ngx_http_upstream_finalize_request(r, u,
-                                           NGX_HTTP_INTERNAL_SERVER_ERROR);
-        return;
+    switch(uscf->peer.init(r, uscf)) {
+        case NGX_OK:   ngx_http_upstream_connect(r, u);
+        case NGX_BUSY: return;
     }
 
-    ngx_http_upstream_connect(r, u);
+    ngx_http_upstream_finalize_request(r, u, NGX_HTTP_INTERNAL_SERVER_ERROR);
 }
 
 
@@ -1030,7 +1027,7 @@
 }
 
 
-static void
+void
 ngx_http_upstream_connect(ngx_http_request_t *r, ngx_http_upstream_t *u)
 {
     ngx_int_t          rc;
diff -Naur src/http/ngx_http_upstream.h src/http/ngx_http_upstream.h
--- src/http/ngx_http_upstream.h        2009-12-23 09:22:17.000000000 -0500
+++ src/http/ngx_http_upstream.h        2010-01-20 15:24:36.000000000 -0500
@@ -321,6 +321,8 @@
 
 ngx_int_t ngx_http_upstream_create(ngx_http_request_t *r);
 void ngx_http_upstream_init(ngx_http_request_t *r);
+#define NGX_HTTP_UPSTREAM_INIT_BUSY_PATCH_VERSION  1
+void ngx_http_upstream_connect(ngx_http_request_t *r, ngx_http_upstream_t *u);
 ngx_http_upstream_srv_conf_t *ngx_http_upstream_add(ngx_conf_t *cf,
     ngx_url_t *u, ngx_uint_t flags);
 char *ngx_http_upstream_bind_set_slot(ngx_conf_t *cf, ngx_command_t *cmd,

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.