Fixes for Fedora Linux

This commit is contained in:
Michiel Broek 2004-04-09 18:31:22 +00:00
parent ef422b88f0
commit 1d076afea1
9 changed files with 169 additions and 145 deletions

View File

@ -30,11 +30,28 @@ v0.51.3 22-Mar-2003
announces of files like FP-DEF.ZIP.
Fixed (I hope for real now) the double announce of the files
like FP-DEF.ZIP received twice a day.
Fixed SIGCHLD logmessages on Fedora.
mbfile:
Fixed SIGCHLD logmessages on Fedora.
mbdiff:
Fixed SIGCHLD logmessages on Fedora.
mbtask:
Fixed crash on NetBSD Sparc when getsysinfo was called.
Fixed disk search check when /opt/mbse is a symlink on a non-
root disk to display the correct partition.
Fixed SIGCHLD logmessages on Fedora.
mbsebbs:
Fixed SIGCHLD logmessages on Fedora.
mbnewusr:
Fixed SIGCHLD logmessages on Fedora.
mball:
Fixed SIGCHLD logmessages on Fedora.
mblogin:
Changed some defines for NetBSD 1.6.2

3
TODO
View File

@ -14,9 +14,6 @@ $Id$
L = Cosmetic or nice to have.
X = Will not be done unless it's really needed.
general:
N: Investigate the wait logmessages on Fedora.
everything:
L: Consider XML format for databases.

View File

@ -14,20 +14,19 @@
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align='right'><h5>Last update 30-Jan-2001</h5></div>
<div align='right'><h5>Last update 09-Apr-2004</h5></div>
<div align='center'><H1>MBSE BBS Setup - Create Sitedocs.</H1></div>
<H3>Create Sitedocs</H3>
<P>
This option creates 3 documents in the doc directory under the home directory
of MBSE BBS, site.doc, xref.doc and stat.doc. Only the file site.doc is more
or less complete, the other 2 are heavily under construction. These three
files are a complete reference of your BBS setup. Especially the site.doc is
a large document, think at least four times before you send it to a printer.
The document xref.doc will contain lists with data from your setup that
depends on eachother. The file stat.doc will be a listing of all statistic
counters that are present in several data files.
This option creates everal documents in the share/doc and share/doc/html
directories under the home directory of MBSE BBS. In the first directory is a
file called site.doc that is formatted to print. In the html directory are
a lot of html pages with cross reference links. Since these pages contain
confidentional information of your users and links, you should not make these
html pages public available, but you can browse these with a browser with open
file and point to /opt/mbse/share/html/index.html.
<P>
<A HREF="./"><IMG SRC="../images/larrow.png" ALT="Back" Border="0">Back to index</A>&nbsp;

View File

@ -127,6 +127,8 @@ int main(int argc, char **argv)
for (i = 0; i < NSIG; i++) {
if ((i == SIGHUP) || (i == SIGINT) || (i == SIGBUS) || (i == SIGILL) || (i == SIGSEGV))
signal(i, (void (*))die);
else if (i == SIGCHLD)
signal(i, SIG_DFL);
else if ((i != SIGKILL) && (i != SIGSTOP))
signal(i, SIG_IGN);
}

View File

@ -312,6 +312,8 @@ int main(int argc, char **argv)
if ((i == SIGINT) || (i == SIGBUS) || (i == SIGILL) || (i == SIGSEGV) || (i == SIGTERM))
signal(i, (void (*))die);
else if (i == SIGCHLD)
signal(i, SIG_DFL);
else if ((i != SIGKILL) && (i != SIGSTOP))
signal(i, SIG_IGN);
}

View File

@ -86,6 +86,8 @@ int main(int argc, char **argv)
for (i = 0; i < NSIG; i++) {
if ((i == SIGHUP) || (i == SIGBUS) || (i == SIGILL) || (i == SIGSEGV) || (i == SIGTERM))
signal(i, (void (*))die);
else if (i == SIGCHLD)
signal(i, SIG_DFL);
else if ((i != SIGKILL) && (i != SIGSTOP))
signal(i, SIG_IGN);
}

View File

@ -142,6 +142,8 @@ int main(int argc, char **argv)
for (i = 0; i < NSIG; i++) {
if ((i == SIGHUP) || (i == SIGBUS) || (i == SIGILL) || (i == SIGSEGV) || (i == SIGTERM))
signal(i, (void (*))die);
else if (i == SIGCHLD)
signal(i, SIG_DFL);
else if ((i != SIGKILL) && (i != SIGSTOP))
signal(i, SIG_IGN);
}

View File

@ -49,160 +49,161 @@ char *StartTime;
int main(int argc, char **argv)
{
char *p, *tty;
FILE *pTty;
int i;
char temp[PATH_MAX];
struct passwd *pw;
char *p, *tty, temp[PATH_MAX];
FILE *pTty;
int i;
struct passwd *pw;
printf("\n\nLoading MBSE BBS New User Registration ...\n\n");
pTTY = calloc(15, sizeof(char));
tty = ttyname(1);
printf("\n\nLoading MBSE BBS New User Registration ...\n\n");
pTTY = calloc(15, sizeof(char));
tty = ttyname(1);
/*
* Get MBSE_ROOT Path and load Config into Memory
*/
FindMBSE();
if (!strlen(CFG.startname)) {
printf("FATAL: No bbs startname, edit mbsetup 1.2.10\n");
exit(MBERR_CONFIG_ERROR);
}
/*
* Get MBSE_ROOT Path and load Config into Memory
*/
FindMBSE();
if (!strlen(CFG.startname)) {
printf("FATAL: No bbs startname, edit mbsetup 1.2.10\n");
exit(MBERR_CONFIG_ERROR);
}
/*
* Set uid and gid to the "mbse" user.
*/
if ((pw = getpwnam((char *)"mbse")) == NULL) {
perror("Can't find user \"mbse\" in /etc/passwd");
exit(MBERR_INIT_ERROR);
}
/*
* Set uid and gid to the "mbse" user.
*/
if ((pw = getpwnam((char *)"mbse")) == NULL) {
perror("Can't find user \"mbse\" in /etc/passwd");
exit(MBERR_INIT_ERROR);
}
/*
* Set effective user to mbse.bbs
*/
if ((seteuid(pw->pw_uid) == -1) || (setegid(pw->pw_gid) == -1)) {
perror("Can't seteuid() or setegid() to \"mbse\" user");
exit(MBERR_INIT_ERROR);
}
/*
* Set effective user to mbse.bbs
*/
if ((seteuid(pw->pw_uid) == -1) || (setegid(pw->pw_gid) == -1)) {
perror("Can't seteuid() or setegid() to \"mbse\" user");
exit(MBERR_INIT_ERROR);
}
/*
* Set local time and statistic indexes.
*/
Time_Now = t_start = time(NULL);
l_date = localtime(&Time_Now);
Diw = l_date->tm_wday;
Miy = l_date->tm_mon;
ltime = time(NULL);
/*
* Set local time and statistic indexes.
*/
Time_Now = t_start = time(NULL);
l_date = localtime(&Time_Now);
Diw = l_date->tm_wday;
Miy = l_date->tm_mon;
ltime = time(NULL);
/*
* Initialize this client with the server. We don't know
* who is at the other end of the line, so that's what we tell.
*/
do_quiet = TRUE;
InitClient((char *)"Unknown", (char *)"mbnewusr", (char *)"Unknown",
/*
* Initialize this client with the server. We don't know
* who is at the other end of the line, so that's what we tell.
*/
do_quiet = TRUE;
InitClient((char *)"Unknown", (char *)"mbnewusr", (char *)"Unknown",
CFG.logfile, CFG.bbs_loglevel, CFG.error_log, CFG.mgrlog, CFG.debuglog);
IsDoing("Loging in");
IsDoing("Loging in");
Syslog(' ', " ");
Syslog(' ', "MBNEWUSR v%s", VERSION);
Syslog(' ', " ");
Syslog(' ', "MBNEWUSR v%s", VERSION);
if ((p = getenv("CONNECT")) != NULL)
Syslog('+', "CONNECT %s", p);
if ((p = getenv("CALLER_ID")) != NULL)
if (strncmp(p, "none", 4))
Syslog('+', "CALLER %s", p);
if ((p = getenv("CONNECT")) != NULL)
Syslog('+', "CONNECT %s", p);
if ((p = getenv("CALLER_ID")) != NULL)
if (strncmp(p, "none", 4))
Syslog('+', "CALLER %s", p);
sUnixName[0] = '\0';
sUnixName[0] = '\0';
/*
* Initialize
*/
InitLanguage();
/*
* Initialize
*/
InitLanguage();
if ((tty = ttyname(0)) == NULL) {
WriteError("Not at a tty");
Fast_Bye(MBERR_OK);
if ((tty = ttyname(0)) == NULL) {
WriteError("Not at a tty");
Fast_Bye(MBERR_OK);
}
if (strncmp("/dev/", tty, 5) == 0)
sprintf(pTTY, "%s", tty+5);
else if (*tty == '/') {
tty = strrchr(ttyname(0), '/');
++tty;
sprintf(pTTY, "%s", tty);
}
umask(007);
/*
* Trap signals
*/
for (i = 0; i < NSIG; i++) {
if ((i == SIGHUP) || (i == SIGBUS) || (i == SIGILL) || (i == SIGSEGV) || (i == SIGTERM) || (i == SIGKILL))
signal(i, (void (*))die);
else if (i == SIGCHLD)
signal(i, SIG_DFL);
else
signal(i, SIG_IGN);
}
/*
* Default set the terminal to ANSI mode. If your logo
* is in color, the user will see color no mather what.
*/
TermInit(1, 80, 24);
/*
* Now it's time to check if the bbs is open. If not, we
* log the user off.
*/
if (CheckStatus() == FALSE) {
Syslog('+', "Kicking user out, the BBS is closed");
Fast_Bye(MBERR_OK);
}
colour(YELLOW, BLACK);
printf("MBSE BBS v%s (Release: %s) on %s/%s\n", VERSION, ReleaseDate, OsName(), OsCPU());
colour(WHITE, BLACK);
printf("%s\n\n", COPYRIGHT);
/*
* Check if this port is available.
*/
sprintf(temp, "%s/etc/ttyinfo.data", getenv("MBSE_ROOT"));
if ((pTty = fopen(temp, "r")) == NULL) {
WriteError("Can't read %s", temp);
} else {
fread(&ttyinfohdr, sizeof(ttyinfohdr), 1, pTty);
while (fread(&ttyinfo, ttyinfohdr.recsize, 1, pTty) == 1) {
if (strcmp(ttyinfo.tty, pTTY) == 0)
break;
}
fclose(pTty);
if (strncmp("/dev/", tty, 5) == 0)
sprintf(pTTY, "%s", tty+5);
else if (*tty == '/') {
tty = strrchr(ttyname(0), '/');
++tty;
sprintf(pTTY, "%s", tty);
if ((strcmp(ttyinfo.tty, pTTY) != 0) || (!ttyinfo.available)) {
Syslog('+', "No BBS allowed on port \"%s\"", pTTY);
printf("No BBS on this port allowed!\n\n");
Fast_Bye(MBERR_OK);
}
umask(007);
/*
* Trap signals
* Ask whether to display Connect String
*/
for(i = 0; i < NSIG; i++) {
if ((i == SIGHUP) || (i == SIGBUS) || (i == SIGILL) || (i == SIGSEGV) || (i == SIGTERM) || (i == SIGKILL))
signal(i, (void (*))die);
else
signal(i, SIG_IGN);
if (CFG.iConnectString) {
/* Connected on port */
colour(CYAN, BLACK);
printf("%s\"%s\" ", (char *) Language(348), ttyinfo.comment);
/* on */
printf("%s %s\n", (char *) Language(135), ctime(&ltime));
}
}
/*
* Default set the terminal to ANSI mode. If your logo
* is in color, the user will see color no mather what.
*/
TermInit(1, 80, 24);
/*
* Now it's time to check if the bbs is open. If not, we
* log the user off.
*/
if (CheckStatus() == FALSE) {
Syslog('+', "Kicking user out, the BBS is closed");
Fast_Bye(MBERR_OK);
}
alarm_on();
Pause();
colour(YELLOW, BLACK);
printf("MBSE BBS v%s (Release: %s) on %s/%s\n", VERSION, ReleaseDate, OsName(), OsCPU());
colour(WHITE, BLACK);
printf("%s\n\n", COPYRIGHT);
/*
* Check if this port is available.
*/
sprintf(temp, "%s/etc/ttyinfo.data", getenv("MBSE_ROOT"));
if ((pTty = fopen(temp, "r")) == NULL) {
WriteError("Can't read %s", temp);
} else {
fread(&ttyinfohdr, sizeof(ttyinfohdr), 1, pTty);
while (fread(&ttyinfo, ttyinfohdr.recsize, 1, pTty) == 1) {
if (strcmp(ttyinfo.tty, pTTY) == 0)
break;
}
fclose(pTty);
if ((strcmp(ttyinfo.tty, pTTY) != 0) || (!ttyinfo.available)) {
Syslog('+', "No BBS allowed on port \"%s\"", pTTY);
printf("No BBS on this port allowed!\n\n");
Fast_Bye(MBERR_OK);
}
/*
* Ask whether to display Connect String
*/
if (CFG.iConnectString) {
/* Connected on port */
colour(CYAN, BLACK);
printf("%s\"%s\" ", (char *) Language(348), ttyinfo.comment);
/* on */
printf("%s %s\n", (char *) Language(135), ctime(&ltime));
}
}
alarm_on();
Pause();
newuser();
Fast_Bye(MBERR_OK);
return 0;
newuser();
Fast_Bye(MBERR_OK);
return 0;
}

View File

@ -143,6 +143,8 @@ int main(int argc, char **argv)
for(i = 0; i < NSIG; i++) {
if ((i == SIGHUP) || (i == SIGBUS) || (i == SIGILL) || (i == SIGSEGV) || (i == SIGTERM))
signal(i, (void (*))die);
else if (i == SIGCHLD)
signal(i, SIG_DFL);
else if ((i != SIGKILL) && (i != SIGSTOP))
signal(i, SIG_IGN);
}