view src/event/ngx_event_connect.h @ 198:e6da4931e0e0 NGINX_0_3_46

nginx 0.3.46 *) Feature: the "proxy_hide_header", "proxy_pass_header", "fastcgi_hide_header", and "fastcgi_pass_header" directives. *) Change: the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and "proxy_pass_server" directives were canceled. *) Feature: the "X-Accel-Buffering" response header line is supported in proxy mode. *) Bugfix: the reconfiguration bug and memory leaks in the ngx_http_perl_module.
author Igor Sysoev <http://sysoev.ru>
date Thu, 11 May 2006 00:00:00 +0400
parents df17fbafec8f
children d2ae1c9f1fd3
line wrap: on
line source


/*
 * Copyright (C) Igor Sysoev
 */


#ifndef _NGX_EVENT_CONNECT_H_INCLUDED_
#define _NGX_EVENT_CONNECT_H_INCLUDED_


#include <ngx_config.h>
#include <ngx_core.h>
#include <ngx_event.h>


typedef struct {
    struct sockaddr    *sockaddr;
    socklen_t           socklen;

    ngx_str_t           name;
    char               *uri_separator;

    ngx_uint_t          weight;

    ngx_uint_t          fails;
    time_t              accessed;

    ngx_uint_t          max_fails;
    time_t              fail_timeout;

#if (NGX_SSL)
    ngx_ssl_session_t  *ssl_session;
#endif
} ngx_peer_t;


struct ngx_peers_s {
    ngx_uint_t          current;
    ngx_uint_t          weight;

    ngx_uint_t          number;
    ngx_uint_t          last_cached;

 /* ngx_mutex_t        *mutex; */
    ngx_connection_t  **cached;

    ngx_peer_t          peer[1];
};


typedef struct {
    ngx_peers_t        *peers;
    ngx_uint_t          cur_peer;
    ngx_uint_t          tries;

    ngx_connection_t   *connection;
#if (NGX_THREADS)
    ngx_atomic_t       *lock;
#endif

    int                 rcvbuf;

    ngx_log_t          *log;

    unsigned            cached:1;
    unsigned            log_error:2;  /* ngx_connection_log_error_e */
} ngx_peer_connection_t;


ngx_int_t ngx_event_connect_peer(ngx_peer_connection_t *pc);
void ngx_event_connect_peer_failed(ngx_peer_connection_t *pc, ngx_uint_t down);


#endif /* _NGX_EVENT_CONNECT_H_INCLUDED_ */