On 07/06/2009 11:14 PM, [email protected] wrote:
> Author: jfclere
> Date: Mon Jul  6 21:14:21 2009
> New Revision: 791617
> 
> URL: http://svn.apache.org/viewvc?rev=791617&view=rev
> Log:
> Add use slotmem. Directive HeartbeatMaxServers > 10 to activate the logic.
> Otherwise it uses the file logic to store the heartbeats.
> 
> Modified:
>     httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c
>     httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c
> 
> Modified: httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c
> URL: 
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c?rev=791617&r1=791616&r2=791617&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c (original)
> +++ httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c Mon Jul  6 21:14:21 
> 2009

>  
> @@ -440,7 +530,17 @@
>          return HTTP_INTERNAL_SERVER_ERROR;
>      }
>      apr_brigade_flatten(input_brigade, buf, &len);
> -    hm_processmsg(ctx, r->pool, r->connection->remote_addr, buf, len);
> +
> +    /* we can't use hm_processmsg because it uses hm_get_server() */
> +    buf[len] = '\0';
> +    tbl = apr_table_make(r->pool, 10);
> +    qs_to_table(buf, tbl, r->pool);
> +    apr_sockaddr_ip_get(&ip, r->connection->remote_addr);
> +    hmserver.ip = ip;
> +    hmserver.busy = atoi(apr_table_get(tbl, "busy"));
> +    hmserver.ready = atoi(apr_table_get(tbl, "ready"));
> +    hmserver.seen = apr_time_now();
> +    hm_slotmem_update_stat(&hmserver, r);

Sorry for being confused, but this means that we are storing the data in 
different
locations dependent on whether we use the handler or the UDP listener and more 
so
we provide them in different locations for other modules to use (sharedmem / 
file).
Does this make sense?
IMHO we should either provide them in both locations (sharedmem / file) no 
matter
which source contributed it or we should make it configurable where this 
information
is offered.


> Modified: httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c
> URL: 
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c?rev=791617&r1=791616&r2=791617&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c 
> (original)
> +++ httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c Mon 
> Jul  6 21:14:21 2009

> @@ -39,9 +47,20 @@
>      int busy;
>      int ready;
>      int seen;
> +    int id;
>      proxy_worker *worker;
>  } hb_server_t;
>  
> +#define MAXIPSIZE  64
> +typedef struct hm_slot_server_t
> +{
> +    char ip[MAXIPSIZE];
> +    int busy;
> +    int ready;
> +    apr_time_t seen;
> +    int id;
> +} hm_slot_server_t;
> +

Shouldn't these things go to a common include file?
I guess defining them in each file is waiting for a missed-to-update
error to happen.


Regards

RĂ¼diger

Reply via email to