/* main.c - srvx
* Copyright 2000-2004 srvx Development Team
*
- * This program is free software; you can redistribute it and/or modify
+ * This file is part of srvx.
+ *
+ * srvx is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version. Important limitations are
- * listed in the COPYING file that accompanies this software.
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, email srvx-maintainers@srvx.net.
+ * along with srvx; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
#define PID_FILE "srvx.pid"
{ "MSG_COMMAND_PRIVILEGED", "$b%s$b is a privileged command." },
{ "MSG_COMMAND_DISABLED", "$b%s$b is a disabled command." },
{ "MSG_SETTING_PRIVILEGED", "$b%s$b is a privileged setting." },
- { "MSG_REGISTER_HANDLE", "You must first register a account with $b$N$b." },
{ "MSG_AUTHENTICATE", "You must first authenticate with $b$N$b." },
{ "MSG_USER_AUTHENTICATE", "%s must first authenticate with $b$N$b." },
{ "MSG_SET_EMAIL_ADDR", "You must first set your account's email address. (Contact network staff if you cannot auth to your account.)" },
{ "MSG_INVALID_MODES", "$b%s$b is an invalid set of channel modes." },
{ "MSG_INVALID_GLINE", "Invalid G-line '%s'." },
{ "MSG_INVALID_DURATION", "Invalid time span '%s'." },
+ { "MSG_NOT_TARGET_NAME", "You must provide the name of a channel or user." },
{ "MSG_NOT_CHANNEL_NAME", "You must provide a valid channel name." },
{ "MSG_INVALID_CHANNEL", "You must provide the name of a channel that exists." },
{ "MSG_CHANNEL_ABSENT", "You aren't currently in $b%s$b." },
{ "MSG_DB_WRITE_ERROR", "Error while writing database %s." },
{ "MSG_DB_WROTE_DB", "Wrote database %s (in "FMT_TIME_T".%06lu seconds)." },
{ "MSG_DB_WROTE_ALL", "Wrote all databases (in "FMT_TIME_T".%06lu seconds)." },
+ { "MSG_AND", "and" },
+ { "MSG_0_SECONDS", "0 seconds" },
+ { "MSG_YEAR", "year" },
+ { "MSG_YEARS", "years" },
+ { "MSG_WEEK", "week" },
+ { "MSG_WEEKS", "weeks" },
+ { "MSG_DAY", "day" },
+ { "MSG_DAYS", "days" },
+ { "MSG_HOUR", "hour" },
+ { "MSG_HOURS", "hours" },
+ { "MSG_MINUTE", "minute" },
+ { "MSG_MINUTES", "minutes" },
+ { "MSG_SECOND", "second" },
+ { "MSG_SECONDS", "seconds" },
{ NULL, NULL }
};
uplink->bind_addr_len = sizeof(*sin);
if (str && getipbyname(str, &addr))
{
- sin = malloc(uplink->bind_addr_len);
- sin->sin_port = 0;
+ sin = calloc(1, uplink->bind_addr_len);
sin->sin_family = AF_INET;
sin->sin_addr.s_addr = addr;
-#ifdef HAVE_SIN_LEN
- sin->sin_len = 0;
-#endif
- memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
uplink->bind_addr = sin;
}
else
for(uplink = oldUplinks; uplink; uplink = next)
{
next = uplink->next;
+ free(uplink->bind_addr);
free(uplink);
}
}
ioset_cleanup();
for (ul = cManager.uplinks; ul; ul = ul_next) {
ul_next = ul->next;
- if (ul->bind_addr) free(ul->bind_addr);
+ free(ul->bind_addr);
free(ul);
}
tools_cleanup();
version();
-#ifdef __CYGWIN__
- if(daemon)
- {
- fprintf(stderr, "Daemon mode not supported under Cygwin.\n");
- daemon = 0;
- }
-#endif
-
if (replay_file) {
/* We read a line here to "prime" the replay file parser, but
* mostly to get the right value of "now" for when we do the
saxdb_init();
gline_init();
sendmail_init();
+ helpfile_init();
conf_globals(); /* initializes the core services */
conf_rlimits();
modules_init();
message_register_table(msgtab);
modcmd_finalize();
- helpfile_finalize();
saxdb_finalize();
+ helpfile_finalize();
modules_finalize();
/* The first exit func to be called *should* be saxdb_write_all(). */