httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Davi Arnaut <d...@haxent.com.br>
Subject Re: svn commit: r426604 - in /httpd/httpd/branches/httpd-proxy-scoreboard: modules/proxy/ support/
Date Fri, 28 Jul 2006 19:42:00 GMT

Em 28/07/2006, às 13:34, jfclere@apache.org escreveu:

> Author: jfclere
> Date: Fri Jul 28 09:33:58 2006
> New Revision: 426604

...

> +
> +static const slotmem_storage_method *checkstorage = NULL;
> +static ap_slotmem_t *myscore=NULL;

Indentation consistency ? "myscore=NULL"

> +
> +    if (!port) {
> +        if (strcmp(scheme, "ajp") == 0)
> +            port = 8009;
> +        else if (strcmp(scheme, "http") == 0)
> +            port = 80;
> +        else
> +            port = 443;
> +    }

apr_uri_port_of_scheme ? (it may not have the ajp scheme, a patch is  
appreciated)

>
> +    rv = apr_sockaddr_info_get(&epsv_addr, hostname, APR_INET,  
> port, 0, pool);
> +    if (rv != APR_SUCCESS) {
> +        ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
> +                     "apr_sockaddr_info_get failed");
> +        apr_socket_close(newsock);
> +        return rv;
> +    }


ap_log_error(..APLOG_ERR, rv, NULL..) so we may have a hint why it  
failed

> +    rv = apr_socket_timeout_set(newsock, 10);
> +    if (rv != APR_SUCCESS) {
> +        ap_log_error(APLOG_MARK, APLOG_WARNING, 0, NULL,
> +                    "apr_socket_timeout_set");
> +        apr_socket_close(newsock);
> +        return rv;

same for ap_log_error

> +    rv = apr_socket_connect(newsock, epsv_addr);
> +    if (rv != APR_SUCCESS) {
> +        ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, NULL,
> +                    "apr_socket_connect failed");
> +        apr_socket_close(newsock);
> +        return rv;
> +    }

same for ap_log_error..and so on.

> +
> +    if (balancer_name)
> +        strcpy(workerconf->balancer_name, balancer_name);
> +    workerconf->id = worker->id;
> +    workerconf->retry = worker->retry;
> +    workerconf->lbfactor = worker->lbfactor;
> +    if (worker->name)
> +        strcpy(workerconf->name, worker->name);
> +    if (worker->scheme)
> +        strcpy(workerconf->scheme, worker->scheme);
> +    if (worker->hostname)
> +        strcpy(workerconf->hostname, worker->hostname);
> +    if (worker->route)
> +        strcpy(workerconf->route, worker->route);
> +    if (worker->redirect)
> +        strcpy(workerconf->redirect, worker->redirect);

strncpy ?

> +    /* allocate the data */
> +    *worker = apr_pcalloc(pool, sizeof(proxy_worker));
> +    if (workerconf->balancer_name)
> +        *balancer_name = apr_pcalloc(pool, strlen(workerconf- 
> >balancer_name));
> +    else
> +        *balancer_name = NULL;

allocated for what ? the string is not copied. Also, shoudn't it be  
strlen(..) + 1 ?

>
> +/* make the module usuable from outside */
> +health_worker_method *health_checker_get_storage()
> +{
> +    return(&worker_storage);
> +}
> +
> +/* handle the slotmem storage */
> +void health_checker_init_slotmem_storage(slotmem_storage_method *  
> storage)
> +{
> +    checkstorage = storage;
> +}
> +slotmem_storage_method * health_checker_get_slotmem_storage()
> +{
> +    return(checkstorage);
> +}
> +
> +/* handle the slotmen itself */
> +void health_checker_init_slotmem(ap_slotmem_t *score)
> +{
> +     myscore = score;
> +}
> +ap_slotmem_t *health_checker_get_slotmem()
> +{
> +    return(myscore);
> +}

static APR_INLINE ...

> +char * ap_server_root_relative(apr_pool_t *p, const char *name)
> +{
> +    char *fname;
> +
> +    /* XXX: apr_filepath_merge better ? */
> +    if (basedir && name[0] != '/') {
> +        fname = apr_pcalloc(p, strlen(basedir)+strlen(name)+1);
> +        strcpy(fname, basedir);
> +        strcat(fname, "/");
> +        strcat(fname, name);

apr_pstrcat ?



Mime
View raw message