void SetTitles(void)
{
- char *locale;
int have_run_dir;
#ifndef HAVE_RUN_DIR
have_run_dir = 1;
have_run_dir = 0;
#endif
- locale = setlocale(LC_MESSAGES, getenv("LANG"));
+ setlocale(LC_MESSAGES, getenv("LANG"));
bindtextdomain("citadel-setup", LOCALEDIR"/locale");
textdomain("citadel-setup");
getenv("CTDL_DIALOG"),
msgtext);
rv = system(buf);
+ if (rv != 0)
+ fprintf(stderr, _("failed to run the dialog command\n"));
break;
case UI_SILENT:
fprintf(stderr, "%s\n", msgtext);
while (fgets(buf, sizeof buf, infp) != NULL) {
if (strstr(buf, looking_for) != NULL) {
rv = fwrite("#", 1, 1, outfp);
+ if (rv == -1)
+ {
+ display_error("%s %s\n",
+ _("failed to modify inittab"),
+ strerror(errno));
+ }
++changes_made;
}
rv = fwrite(buf, strlen(buf), 1, outfp);
+ if (rv == -1)
+ {
+ display_error("%s %s\n",
+ _("failed to modify inittab"),
+ strerror(errno));
+ }
}
fclose(infp);
/* Set up the run levels. */
rv = system("/bin/rm -f /etc/rc?.d/[SK]??citadel 2>/dev/null");
+ if (rv != 0)
+ display_error(_("failed to remove system V init links \n"));
+
snprintf(command, sizeof(command), "for x in 2 3 4 5 ; do [ -d /etc/rc$x.d ] && ln -s %s /etc/rc$x.d/S79citadel ; done 2>/dev/null", initfile);
rv = system(command);
+ if (rv != 0)
+ display_error(_("failed to set system V init links \n"));
+
snprintf(command, sizeof(command),"for x in 0 6 S; do [ -d /etc/rc$x.d ] && ln -s %s /etc/rc$x.d/K30citadel ; done 2>/dev/null", initfile);
rv = system(command);
-
+ if (rv != 0)
+ display_error(_("failed to set system V init links \n"));
}
/* Now try to restart the service */
rv = system("/etc/init.d/xinetd restart >/dev/null 2>&1");
+ if (rv != 0)
+ display_error(_("failed to restart xinetd.\n"));
}
sprintf(buf, "for x in /etc/rc*.d/S*%s; do mv $x `echo $x |sed s/S/K/g`; done >/dev/null 2>&1", mta);
rv = system(buf);
+ if (rv != 0)
+ display_error("%s %s.\n", _("failed to disable other mta"), mta);
+
sprintf(buf, "/etc/init.d/%s stop >/dev/null 2>&1", mta);
rv = system(buf);
+ if (rv != 0)
+ display_error(" %s.\n", _("failed to disable other mta"), mta);
}
const char *other_mtas[] = {
Target,
dialog_result);
rv = system(buf);
+ if (rv != 0)
+ fprintf(stderr, "failed to run Dialog.\n");
+
fp = fopen(dialog_result, "r");
if (fp != NULL) {
if (fgets(Target, sizeof buf, fp)) {
if (fp == NULL) {
display_error("%s citadel.config [%s][%s]\n", _("setup: cannot open"), file_citadel_config, strerror(errno));
cleanup(1);
+ return;
}
rv = fwrite((char *) &config, sizeof(struct config), 1, fp);
+
+ if (rv == -1)
+ display_error("%s citadel.config [%s][%s]\n", _("setup: cannot write"), file_citadel_config, strerror(errno));
+
fclose(fp);
}
{
int rv;
rv = system("exec /bin/rm -fr ./rooms ./chatpipes ./expressmsgs ./sessions 2>/dev/null");
+ if (rv != 0)
+ fprintf(stderr, _("failed to remove old style directories.\n"));
unlink("citadel.log");
unlink("weekly");
}
char buf_nc[256];
char question[512];
int i;
- int changed = 0;
int file_changed = 0;
char new_filename[64];
int rv;
}
while (fgets(buf, sizeof buf, fp_read) != NULL) {
- changed = 0;
strcpy(buf_nc, buf);
for (i=0; i<strlen(buf_nc); ++i) {
if (buf_nc[i] == '#') {
if (!strncasecmp(&buf_nc[i], "db", 2)) {
if (i > 0) {
if ((isspace(buf_nc[i+2])) || (buf_nc[i+2]==0)) {
- changed = 1;
file_changed = 1;
strcpy(&buf_nc[i], &buf_nc[i+2]);
strcpy(&buf[i], &buf[i+2]);
if (yesno(question, 1)) {
sprintf(buf, "/bin/mv -f %s %s", new_filename, NSSCONF);
rv = system(buf);
+ if (rv != 0)
+ fprintf(stderr, "failed to edit %s.\n", NSSCONF);
+
chmod(NSSCONF, 0644);
}
unlink(new_filename);
if (!access("/etc/init.d/citadel", X_OK)) {
rv = system("/etc/init.d/citadel start");
+ if (rv != 0)
+ fprintf(stderr, "failed to call our initscript.");
sleep(3);
}
*WhereTo = atoi(ch);
}
}
-#define GetDefaultVALSTR(CFGNAME, DEFL) GetDefaultValStr((char**)&config.CFGNAME, sizeof(config.CFGNAME), "CITADEL_"#CFGNAME, DEFL)
-void GetDefaultValStr(char **WhereTo, size_t nMax, const char *VarName, const char *DefVal)
+#define GetDefaultVALSTR(CFGNAME, DEFL) GetDefaultValStr(&config.CFGNAME[0], sizeof(config.CFGNAME), "CITADEL_"#CFGNAME, DEFL)
+void GetDefaultValStr(char *WhereTo, size_t nMax, const char *VarName, const char *DefVal)
{
const char *ch;
- if (**WhereTo == '\0')
- safestrncpy(*WhereTo, DefVal, nMax);
+ if (*WhereTo == '\0')
+ safestrncpy(WhereTo, DefVal, nMax);
if ((setup_type == UI_SILENT) &&
(ch = getenv(VarName), ch != NULL))
{
- safestrncpy(*WhereTo, ch, nMax);
+ safestrncpy(WhereTo, ch, nMax);
}
}
if (fp == NULL) {
display_error("%s citadel.config [%s][%s]\n", _("setup: cannot open"), file_citadel_config, strerror(errno));
cleanup(errno);
+ return;
}
rv = fread((char *) &config, sizeof(struct config), 1, fp);
+ if (rv == -1)
+ display_error("%s citadel.config [%s][%s]\n", _("setup: cannot write"), file_citadel_config, strerror(errno));
fclose(fp);
}
/* Try to stop Citadel if we can */
if (!access("/etc/init.d/citadel", X_OK)) {
rv = system("/etc/init.d/citadel stop");
+ if (rv != 0)
+ fprintf(stderr, _("failed to stop us using the initscript.\n"));
}
/* Make sure Citadel is not running. */