Show
Ignore:
Timestamp:
01/14/07 11:40:37 (2 years ago)
Author:
alo
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • cherokee/trunk/cherokee/handler_nn.c

    r597 r606  
    3131#include <dirent.h> 
    3232 
     33#include "thread.h" 
    3334#include "connection.h" 
    3435#include "connection-protected.h" 
     
    5758 
    5859        dir = opendir(directory); 
    59         if (dir == NULL) goto go_out; 
     60        if (dir == NULL) 
     61                goto go_out; 
    6062 
    6163        while ((entry = readdir (dir)) != NULL) 
     
    8385 
    8486 
    85 ret_t 
    86 get_nearest (cherokee_buffer_t *local_dir, 
    87              cherokee_buffer_t *request, 
    88              cherokee_buffer_t *output) 
     87static ret_t 
     88get_nearest_name ( 
     89                        cherokee_connection_t *conn, 
     90                        cherokee_buffer_t *local_dir, 
     91                        cherokee_buffer_t *request, 
     92                        cherokee_buffer_t *output) 
    8993{ 
    9094        char              *rest; 
    9195        ret_t              ret = ret_ok; 
    92         cherokee_buffer_t  req = CHEROKEE_BUF_INIT;       /* Request w/o last word */ 
     96        cherokee_thread_t *thread = CONN_THREAD(conn); 
     97        cherokee_buffer_t *req = THREAD_TMP_BUF1(thread);/* Request w/o last word */ 
    9398 
    9499        /* Build the local request path 
     
    100105        rest++; 
    101106 
    102         cherokee_buffer_add_buffer (&req, local_dir); 
    103         cherokee_buffer_add (&req, request->buf, rest - request->buf); 
     107        cherokee_buffer_clean (req); 
     108        cherokee_buffer_add_buffer (req, local_dir); 
     109        cherokee_buffer_add (req, request->buf, rest - request->buf); 
    104110         
    105111        /* Copy the new filename to the output buffer 
    106112         */ 
    107         ret = get_nearest_from_directory (req.buf, rest, output); 
    108         cherokee_buffer_mrproper (&req); 
     113        ret = get_nearest_from_directory (req->buf, rest, output); 
    109114 
    110115        if (unlikely (ret != ret_ok)) { 
     
    125130        struct stat            info; 
    126131        int                    stat_ret; 
    127         cherokee_connection_t *conn; 
    128  
    129         conn = CONN(cnt); 
     132        cherokee_connection_t *conn   = CONN(cnt); 
    130133 
    131134        cherokee_buffer_add (&conn->local_directory, conn->request.buf, conn->request.len); 
     
    139142        }  
    140143 
    141         /* It doesn't exit, lets redirect it.. 
     144        /* It doesn't exists, let's redirect it.. 
    142145         */ 
    143146        cherokee_buffer_clean (&conn->redirect); 
    144147 
    145         ret = get_nearest (&conn->local_directory, &conn->request, &conn->redirect); 
     148        ret = get_nearest_name (conn, &conn->local_directory, &conn->request, &conn->redirect); 
    146149        if (unlikely (ret != ret_ok)) { 
    147                 CONN(cnt)->error_code = http_not_found; 
     150                conn->error_code = http_not_found; 
    148151                return ret_error; 
    149152        }