httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Jung <rainer.j...@kippdata.de>
Subject Re: svn commit: r733476 - /httpd/httpd/trunk/support/rotatelogs.c
Date Sun, 11 Jan 2009 15:33:16 GMT
On 11.01.2009 15:53, Ruediger Pluem wrote:
>
> On 01/11/2009 03:05 PM, rjung@apache.org wrote:
>> Author: rjung
>> Date: Sun Jan 11 06:05:39 2009
>> New Revision: 733476
>>
>> URL: http://svn.apache.org/viewvc?rev=733476&view=rev
>> Log:
>> Refactor rotatelogs to allow easier implementation
>> of signal triggered log rotation.
>>
>> - move code into new functions checkRotate() and doRotate()
>> - bundle config data and runtime data in two structs to
>>    allow easier passing to functions
>> - Simplify bypass_io logic as a first use case for doRotate
>>    and rename flag to force_open to reflect the new logic
>>
>>
>> Modified:
>>      httpd/httpd/trunk/support/rotatelogs.c
>>
>> Modified: httpd/httpd/trunk/support/rotatelogs.c
>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/support/rotatelogs.c?rev=733476&r1=733475&r2=733476&view=diff
>> ==============================================================================
>> --- httpd/httpd/trunk/support/rotatelogs.c (original)
>> +++ httpd/httpd/trunk/support/rotatelogs.c Sun Jan 11 06:05:39 2009
>> @@ -64,6 +64,37 @@
>>   #define MAX_PATH        1024
>>   #endif
>>
>> +typedef struct rotate_config rotate_config_t;
>> +
>> +struct rotate_config {
>> +    unsigned int sRotation;
>> +    int tRotation;
>> +    int utc_offset;
>> +    int use_localtime;
>> +    int use_strftime;
>> +    int force_open;
>> +    const char *szLogRoot;
>> +};
>> +
>> +typedef struct rotate_status rotate_status_t;
>> +
>> +struct rotate_status {
>> +    apr_pool_t *pool;
>> +    apr_pool_t *pfile;
>> +    apr_pool_t *pfile_prev;
>> +    apr_file_t *nLogFD;
>> +    apr_file_t *nLogFDprev;
>> +    char filename[MAX_PATH];
>> +    char errbuf[ERRMSGSZ];
>> +    int needsRotate;
>> +    int tLogEnd;
>> +    int now;
>> +    int nMessCount;
>> +};
>> +
>> +static rotate_config_t config;
>> +static rotate_status_t status;
>
> Why do they need to be global?

I need them in the signal handler which will be introduced as the next 
step. The signal handler will allow to trigger rotation from outside.

...
>> +void checkRotate(rotate_config_t *config, rotate_status_t *status) {
>> +
>> +    if (status->nLogFD == NULL)
>> +        return;
>
> No need to do further checks for status->nLogFD != NULL below.

Right, will be gone in the next commit.



Mime
View raw message