Re: -W -Wall options (using gcc), posted by Stefan Ritt on Fri Feb 13 21:52:48 2004
|
Thanks, I did so. |
Re: elog (not elogd) submit does not work anymore, posted by Stefan Ritt on Fri Feb 13 21:59:44 2004
|
Oops! I 're-used' the '-s' flag for email suppression, so it was actually
double used. I changed the email supprssion flag to '-p', so '-s' should
work again for specifying subdirectories. |
Re: -W -Wall options (using gcc), posted by Stefan Ritt on Mon Feb 16 16:07:34 2004
|
So I fixed all compiler generated warnigns except these:
[midas@pc2075 ~/elog]$ gcc -g -O -W -Wall -o elogd src/elogd.c
src/elogd.c: In function `set_cookie':
src/elogd.c:4675: warning: `%y' yields only last 2 digits of year
src/elogd.c: In function `send_file_direct':
src/elogd.c:5483: warning: `%y' yields only last 2 digits of year
src/elogd.c: In function `show_elog_list':
src/elogd.c:11938: warning: `%x' yields only last 2 digits of year in some
locales
src/elogd.c:11957: warning: `%x' yields only last 2 digits of year in some
locales
src/elogd.c:11979: warning: `%x' yields only last 2 digits of year in some
locales
src/elogd.c:11987: warning: `%x' yields only last 2 digits of year in some
locales
src/elogd.c: In function `ctrlc_handler':
src/elogd.c:15864: warning: empty body in an if-statement
src/elogd.c: In function `hup_handler':
src/elogd.c:15870: warning: empty body in an if-statement
Do you know how to disable these warnings or any other workaround? I would
like to compile without any remaining warnings. |
Re: -W -Wall options (using gcc), posted by Heiko Scheit on Mon Feb 16 16:40:50 2004
|
> So I fixed all compiler generated warnigns except these:
>
> [midas@pc2075 ~/elog]$ gcc -g -O -W -Wall -o elogd src/elogd.c
> src/elogd.c: In function `set_cookie':
> src/elogd.c:4675: warning: `%y' yields only last 2 digits of year
> src/elogd.c: In function `send_file_direct':
> src/elogd.c:5483: warning: `%y' yields only last 2 digits of year
> src/elogd.c: In function `show_elog_list':
> src/elogd.c:11938: warning: `%x' yields only last 2 digits of year in some
> locales
> src/elogd.c:11957: warning: `%x' yields only last 2 digits of year in some
> locales
> src/elogd.c:11979: warning: `%x' yields only last 2 digits of year in some
> locales
> src/elogd.c:11987: warning: `%x' yields only last 2 digits of year in some
> locales
> src/elogd.c: In function `ctrlc_handler':
> src/elogd.c:15864: warning: empty body in an if-statement
> src/elogd.c: In function `hup_handler':
> src/elogd.c:15870: warning: empty body in an if-statement
>
> Do you know how to disable these warnings or any other workaround? I would
> like to compile without any remaining warnings.
Have a look at the gcc info pages:
$ info gcc "invoking gcc" "warning options" |
Re: -W -Wall options (using gcc), posted by Stefan Ritt on Mon Feb 16 16:47:55 2004
|
> Have a look at the gcc info pages:
>
> $ info gcc "invoking gcc" "warning options"
Sure, I'm not stupid! I looked for ~10 minutes how to turn off the remaining
warnings, but I could not find it. The code is now correct, like I do want the
"%y" format specifier in the strftime() function, but the warning is wrong. The
closest I came to was
-W -Wall -Wno-format
which removes ther warning in strftime(), but I do want this warning, since it
helps in many other printf() statements. |
Re: -W -Wall options (using gcc), posted by Heiko Scheit on Mon Feb 16 17:18:39 2004
|
> > Have a look at the gcc info pages:
> >
> > $ info gcc "invoking gcc" "warning options"
>
> Sure, I'm not stupid!
Sorry, didn't mean to offend you.
> I looked for ~10 minutes how to turn off the remaining
> warnings, but I could not find it. The code is now correct, like I do want the
> "%y" format specifier in the strftime() function, but the warning is wrong.
One way to remove the warnings would be to use "%Y" in a separate strftime() call
and then taking only the last two digits (characters) of that string.
Something like:
old:
strftime(str, sizeof(str), "%A, %d-%b-%y %H:%M:%S GMT", gmt);
new:
strftime(str, sizeof(str), "%A, %d-%b-XX %H:%M:%S GMT", gmt);
strftime(year, sizeof(year), "%Y", gmt);
i=strstr(str,"XX"); /* find position of XX */
if ( i+1 < sizeof(str) ) {
str[i] =year[3];
str[i+1]=year[4];
} else ...
Somewhat cumbersome, but should work. Maybe consider using the four
digit year directly, where possible.
Gruss, Heiko |
elogd does not exit on SIGTERM, posted by Heiko Scheit on Wed Feb 18 16:54:27 2004
|
When trying to stop elogd processes with the kill command
elogd exits only after access to the logbook.
It should exit immediately, maybe after some cleanup. |
Re: elogd does not exit on SIGTERM, posted by Stefan Ritt on Thu Feb 19 09:38:13 2004
|
Noee. Here it works immediately.
Can you try with a fresh server from the distribution, with the example
elogd.cfg, to see if there is any difference?
The killing is handled in the funciton ctrlc_handler(), which sets _abort =
TRUE. This is checked in line 16195, just after the select(), and the main
loop is exited. The select finishes after one second, although I believe
that the kill signal also terminates the select prematurely. The kill
command and a Ctrl-C keystroke should work the same way, they both generate
a SIGTERM or SIGINT signal. |
|