/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors.
+ * Copyright (c)2001-2013 Alexander Barton (alex@barton.de) and Contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
{
NGIRCd_VersionAddition[0] = '\0';
+#ifdef ICONV
+ if (NGIRCd_VersionAddition[0])
+ strlcat(NGIRCd_VersionAddition, "+",
+ sizeof NGIRCd_VersionAddition);
+ strlcat(NGIRCd_VersionAddition, "CHARCONV",
+ sizeof NGIRCd_VersionAddition);
+#endif
#ifdef DEBUG
if (NGIRCd_VersionAddition[0])
strlcat(NGIRCd_VersionAddition, "+",
Show_Version( void )
{
puts( NGIRCd_Version );
- puts( "Copyright (c)2001-2012 Alexander Barton (<alex@barton.de>) and Contributors." );
+ puts( "Copyright (c)2001-2013 Alexander Barton (<alex@barton.de>) and Contributors." );
puts( "Homepage: <http://ngircd.barton.de/>\n" );
puts( "This is free software; see the source for copying conditions. There is NO" );
puts( "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." );
len = snprintf(pidbuf, sizeof pidbuf, "%ld\n", (long)pid);
if (len < 0 || len >= (int)sizeof pidbuf) {
- Log(LOG_ERR, "Error converting pid");
+ Log(LOG_ERR, "Error converting process ID!");
close(pidfd);
return;
}
if (write(pidfd, pidbuf, (size_t)len) != (ssize_t)len)
- Log( LOG_ERR, "Can't write PID file (%s): %s", Conf_PidFile, strerror( errno ));
+ Log(LOG_ERR, "Can't write PID file (%s): %s!", Conf_PidFile,
+ strerror(errno));
- if( close(pidfd) != 0 )
- Log( LOG_ERR, "Error closing PID file (%s): %s", Conf_PidFile, strerror( errno ));
+ if (close(pidfd) != 0)
+ Log(LOG_ERR, "Error closing PID file (%s): %s!", Conf_PidFile,
+ strerror(errno));
} /* Pidfile_Create */
} /* Setup_FDStreams */
+#if !defined(SINGLE_USER_OS)
+
/**
* Get user and group ID of unprivileged "nobody" user.
*
return true;
} /* NGIRCd_getNobodyID */
+#endif
+
static bool
Random_Init_Kern(const char *file)
/* Change root */
if (Conf_Chroot[0]) {
if (chdir(Conf_Chroot) != 0) {
- Log(LOG_ERR, "Can't chdir() in ChrootDir (%s): %s",
+ Log(LOG_ERR, "Can't chdir() in ChrootDir (%s): %s!",
Conf_Chroot, strerror(errno));
goto out;
}
if (chroot(Conf_Chroot) != 0) {
Log(LOG_ERR,
- "Can't change root directory to \"%s\": %s",
+ "Can't change root directory to \"%s\": %s!",
Conf_Chroot, strerror(errno));
goto out;
} else {
}
}
+#if !defined(SINGLE_USER_OS)
/* Check user ID */
if (Conf_UID == 0) {
pwd = getpwuid(0);
if (setgid(Conf_GID) != 0) {
real_errno = errno;
grp = getgrgid(Conf_GID);
- Log(LOG_ERR, "Can't change group ID to %s(%u): %s",
+ Log(LOG_ERR, "Can't change group ID to %s(%u): %s!",
grp ? grp->gr_name : "?", Conf_GID,
strerror(errno));
if (real_errno != EPERM)
goto out;
}
}
+#endif
/* Change user ID */
if (getuid() != Conf_UID) {
if (setuid(Conf_UID) != 0) {
real_errno = errno;
pwd = getpwuid(Conf_UID);
- Log(LOG_ERR, "Can't change user ID to %s(%u): %s",
+ Log(LOG_ERR, "Can't change user ID to %s(%u): %s!",
pwd ? pwd->pw_name : "?", Conf_UID,
strerror(errno));
if (real_errno != EPERM)
setpgrp(0, getpid());
#endif
if (chdir("/") != 0)
- Log(LOG_ERR, "Can't change directory to '/': %s",
+ Log(LOG_ERR, "Can't change directory to '/': %s!",
strerror(errno));
/* Detach stdin, stdout and stderr */
pwd->pw_dir);
else
Log(LOG_INFO,
- "Notice: Can't change working directory to \"%s\": %s",
+ "Notice: Can't change working directory to \"%s\": %s!",
pwd->pw_dir, strerror(errno));
} else
Log(LOG_ERR, "Can't get user informaton for UID %d!?", Conf_UID);