mirror of
https://github.com/osmarks/ngircd.git
synced 2025-07-02 01:52:50 +00:00
Fix gcc warning "ignoring return value of ..."
This patch fixes two warnings of gcc 4.4.3 when used with eglibc 2.11.1: ngircd.c: In function ‘NGIRCd_Init’: ngircd.c:801: warning: ignoring return value of ‘chdir’, declared with attribute warn_unused_result conn.c: In function ‘Simple_Message’: conn.c:2041: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result The first by checking the return code and an appropriate error message, the second by "better" ignoring it (which is correct there!) ...
This commit is contained in:
parent
628c6c962b
commit
025342fe46
@ -2025,20 +2025,32 @@ cb_Read_Resolver_Result( int r_fd, UNUSED short events )
|
|||||||
} /* cb_Read_Resolver_Result */
|
} /* cb_Read_Resolver_Result */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write a "simple" (error) message to a socket.
|
||||||
|
* The message is sent without using the connection write buffers, without
|
||||||
|
* compression/encryption, and even without any error reporting. It is
|
||||||
|
* designed for error messages of e.g. New_Connection(). */
|
||||||
static void
|
static void
|
||||||
Simple_Message(int Sock, const char *Msg)
|
Simple_Message(int Sock, const char *Msg)
|
||||||
{
|
{
|
||||||
char buf[COMMAND_LEN];
|
char buf[COMMAND_LEN];
|
||||||
size_t len;
|
size_t len;
|
||||||
/* Write "simple" message to socket, without using compression
|
|
||||||
* or even the connection write buffers. Used e.g. for error
|
|
||||||
* messages by New_Connection(). */
|
|
||||||
assert(Sock > NONE);
|
assert(Sock > NONE);
|
||||||
assert(Msg != NULL);
|
assert(Msg != NULL);
|
||||||
|
|
||||||
strlcpy(buf, Msg, sizeof buf - 2);
|
strlcpy(buf, Msg, sizeof buf - 2);
|
||||||
len = strlcat(buf, "\r\n", sizeof buf);
|
len = strlcat(buf, "\r\n", sizeof buf);
|
||||||
(void)write(Sock, buf, len);
|
if (write(Sock, buf, len) < 0) {
|
||||||
|
/* Because this function most probably got called to log
|
||||||
|
* an error message, any write error is ignored here to
|
||||||
|
* avoid an endless loop. But casting the result of write()
|
||||||
|
* to "void" doesn't satisfy the GNU C code attribute
|
||||||
|
* "warn_unused_result" which is used by some versions of
|
||||||
|
* glibc (e.g. 2.11.1), therefore this silly error
|
||||||
|
* "handling" code here :-( */
|
||||||
|
return;
|
||||||
|
}
|
||||||
} /* Simple_Error */
|
} /* Simple_Error */
|
||||||
|
|
||||||
|
|
||||||
|
@ -798,7 +798,9 @@ NGIRCd_Init( bool NGIRCd_NoDaemon )
|
|||||||
#else
|
#else
|
||||||
setpgrp(0, getpid());
|
setpgrp(0, getpid());
|
||||||
#endif
|
#endif
|
||||||
chdir( "/" );
|
if (chdir( "/" ) != 0)
|
||||||
|
Log(LOG_ERR, "Can't change directory to '/': %s",
|
||||||
|
strerror(errno));
|
||||||
|
|
||||||
/* Detach stdin, stdout and stderr */
|
/* Detach stdin, stdout and stderr */
|
||||||
Setup_FDStreams( );
|
Setup_FDStreams( );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user