Several bugfixes
This commit is contained in:
parent
bed48c9d4e
commit
e04792e4cb
16
ChangeLog
16
ChangeLog
@ -4,12 +4,28 @@ $Id$
|
||||
|
||||
v0.35.03 06-Jul-2002
|
||||
|
||||
lang:
|
||||
Corrected a spelling error in the Dutch language file.
|
||||
|
||||
mbcico:
|
||||
Changed IsDoing information.
|
||||
|
||||
newuser:
|
||||
Check for Unix accounts is now case sensitive.
|
||||
Check existing usernames now also checks handles.
|
||||
|
||||
mbsebbs:
|
||||
Check existing usernames now also checks handles.
|
||||
When a user paged the sysop for a chat, after the timer was
|
||||
expired, the bbs crashed.
|
||||
|
||||
mbtask:
|
||||
Changed logging of multiple logmessages that are equal.
|
||||
Changed semafore debug logmessages.
|
||||
Fixed log problem not always showing the Call flag.
|
||||
Now forces callmode to None if the callflag was cleared.
|
||||
The test to add a node to the calllist now also checks the
|
||||
internal call flag.
|
||||
|
||||
|
||||
v0.35.02 22-Jun-2002 - 06-Jul-2002
|
||||
|
@ -380,7 +380,7 @@ JN|Zeker weten? [J/n]:
|
||||
|Kies taal:
|
||||
|De taal is nu:
|
||||
|Het systeem zal nu een "Unix gebruikersnaam" vragen
|
||||
|Uw "Unix gerbuikersnaam" is gemaakt, U kunt dit de volgende keer gebruiken.
|
||||
|Uw "Unix gebruikersnaam" is gemaakt, U kunt dit de volgende keer gebruiken.
|
||||
|Geef een inlog naam (Maximaal 8 karakters, kleine letters)
|
||||
|bv. Piet Snot, login = psnot
|
||||
|login >
|
||||
|
@ -101,7 +101,7 @@ char *adate(time_t now)
|
||||
struct tm ptm;
|
||||
|
||||
if (now == 0L) {
|
||||
sprintf(buf, "N/A");
|
||||
sprintf(buf, " ");
|
||||
} else {
|
||||
ptm = *localtime(&now);
|
||||
sprintf(buf, "%02d-%02d-%04d %02d:%02d", ptm.tm_mday, ptm.tm_mon +1, ptm.tm_year + 1900,
|
||||
@ -148,7 +148,7 @@ void MakeStat(void)
|
||||
fseek(fi, fileptr, SEEK_SET);
|
||||
MacroVars("b", "s", mgroup.Name);
|
||||
MacroVars("c", "s", mgroup.Comment);
|
||||
MacroVars("d", "s", aka2str(mgroup.UseAka));
|
||||
MacroVars("d", "s", mgroup.UseAka.zone ? aka2str(mgroup.UseAka):" ");
|
||||
MacroVars("e", "s", adate(mgroup.LastDate));
|
||||
MacroVars("f", "d", mgroup.MsgsRcvd.lweek);
|
||||
MacroVars("g", "d", mgroup.MsgsRcvd.month[Lm]);
|
||||
@ -227,7 +227,7 @@ void MakeStat(void)
|
||||
fseek(fi, fileptr, SEEK_SET);
|
||||
MacroVars("b", "s", fgroup.Name);
|
||||
MacroVars("c", "s", fgroup.Comment);
|
||||
MacroVars("d", "s", aka2str(fgroup.UseAka));
|
||||
MacroVars("d", "s", fgroup.UseAka.zone ? aka2str(fgroup.UseAka):" ");
|
||||
MacroVars("e", "s", adate(fgroup.LastDate));
|
||||
MacroVars("f", "d", fgroup.Files.lweek);
|
||||
MacroVars("g", "d", fgroup.KBytes.lweek);
|
||||
@ -343,7 +343,7 @@ void MakeStat(void)
|
||||
fseek(fi, fileptr, SEEK_SET);
|
||||
if (!strcmp(hist.aka.domain, "(null)"))
|
||||
hist.aka.domain[0] = '\0';
|
||||
MacroVars("c", "s", hist.aka.zone ? aka2str(hist.aka):"N/A");
|
||||
MacroVars("c", "s", hist.aka.zone ? aka2str(hist.aka):" ");
|
||||
MacroVars("d", "s", hist.system_name);
|
||||
MacroVars("e", "s", hist.sysop);
|
||||
MacroVars("f", "s", hist.location);
|
||||
|
@ -78,29 +78,24 @@ int CheckStatus()
|
||||
|
||||
|
||||
/*
|
||||
* Function to check if UserName exists and returns a 0 or 1
|
||||
* Function to check if UserName/Handle exists and returns a 0 or 1
|
||||
*/
|
||||
int CheckName(char *Name)
|
||||
{
|
||||
FILE *fp;
|
||||
int Status = FALSE;
|
||||
char *temp, *temp1;
|
||||
char *temp;
|
||||
struct userhdr ushdr;
|
||||
struct userrec us;
|
||||
|
||||
temp = calloc(PATH_MAX, sizeof(char));
|
||||
temp1 = calloc(81, sizeof(char));
|
||||
|
||||
strcpy(temp1, tl(Name));
|
||||
|
||||
sprintf(temp, "%s/etc/users.data", getenv("MBSE_ROOT"));
|
||||
if ((fp = fopen(temp,"rb")) != NULL) {
|
||||
fread(&ushdr, sizeof(ushdr), 1, fp);
|
||||
|
||||
while (fread(&us, ushdr.recsize, 1, fp) == 1) {
|
||||
strcpy(temp, tl(us.sUserName));
|
||||
|
||||
if((strcmp(temp, temp1)) == 0) {
|
||||
if ((strcasecmp(Name, us.sUserName) == 0) || (strcasecmp(Name, us.sHandle) == 0)) {
|
||||
Status = TRUE;
|
||||
break;
|
||||
}
|
||||
@ -109,7 +104,6 @@ int CheckName(char *Name)
|
||||
}
|
||||
|
||||
free(temp);
|
||||
free(temp1);
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@ -74,14 +74,11 @@ int do_mailout = FALSE; /* Just for linking */
|
||||
int newuser()
|
||||
{
|
||||
FILE *pUsrConfig;
|
||||
int i, x, Found, iLang, recno = 0, Count = 0;
|
||||
int i, x, Found, iLang, recno = 0, Count = 0, badname;
|
||||
unsigned long crc;
|
||||
char temp[PATH_MAX], *FullName;
|
||||
char *temp1, *temp2;
|
||||
char *Phone1, *Phone2;
|
||||
char temp[PATH_MAX], *FullName, *temp1, *temp2, *Phone1, *Phone2;
|
||||
long offset;
|
||||
struct userrec us;
|
||||
int badname;
|
||||
|
||||
IsDoing("New user login");
|
||||
Syslog('+', "Newuser registration");
|
||||
@ -141,6 +138,7 @@ int newuser()
|
||||
*/
|
||||
badname = (BadNames(temp) || (CheckName(temp) || (strchr(temp, ' ') == NULL)));
|
||||
if (badname) {
|
||||
/* That login name already exists, please choose another one. */
|
||||
language(LIGHTRED, BLACK, 386);
|
||||
Enter(1);
|
||||
}
|
||||
@ -157,14 +155,14 @@ int newuser()
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
Getpass(temp1);
|
||||
if((x = strlen(temp1)) >= CFG.password_length) {
|
||||
if ((x = strlen(temp1)) >= CFG.password_length) {
|
||||
Enter(1);
|
||||
/* Please enter password again : */
|
||||
language(LIGHTCYAN, BLACK, 40);
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
Getpass(temp2);
|
||||
if((i = strcmp(temp1,temp2)) != 0) {
|
||||
if ((i = strcmp(temp1,temp2)) != 0) {
|
||||
Enter(2);
|
||||
/* Your passwords do not match! Try again. */
|
||||
language(LIGHTRED, BLACK, 41);
|
||||
@ -195,7 +193,7 @@ int newuser()
|
||||
l_date = localtime(&Time_Now);
|
||||
ltime = time(NULL);
|
||||
|
||||
if(CFG.iAnsi) {
|
||||
if (CFG.iAnsi) {
|
||||
Enter(2);
|
||||
/* Do you want ANSI and graphics mode [Y/n]: */
|
||||
language(LIGHTGRAY, BLACK, 44);
|
||||
@ -260,7 +258,7 @@ int newuser()
|
||||
break;
|
||||
}
|
||||
|
||||
if( strlen(temp) < 6) {
|
||||
if (strlen(temp) < 6) {
|
||||
Enter(1);
|
||||
/* Please enter a proper phone number */
|
||||
language(LIGHTRED, BLACK, 47);
|
||||
@ -273,7 +271,7 @@ int newuser()
|
||||
}
|
||||
} /* End of if Statement */
|
||||
|
||||
if(!CFG.iDataPhone)
|
||||
if (!CFG.iDataPhone)
|
||||
printf("\n");
|
||||
|
||||
if (CFG.iLocation) {
|
||||
@ -283,13 +281,13 @@ int newuser()
|
||||
language(YELLOW, BLACK, 49);
|
||||
colour(CFG.InputColourF, CFG.InputColourB);
|
||||
alarm_on();
|
||||
if (CFG.iCapLocation) { /* Cap Location is turn on, Capitalise first letter */
|
||||
if (CFG.iCapLocation) { /* Cap Location is turned on, Capitalise first letter */
|
||||
fflush(stdout);
|
||||
GetnameNE(temp, 24);
|
||||
} else
|
||||
GetstrC(temp, 80);
|
||||
|
||||
if( strlen(temp) < CFG.CityLen) {
|
||||
if (strlen(temp) < CFG.CityLen) {
|
||||
Enter(1);
|
||||
/* Please enter a longer location */
|
||||
language(LIGHTRED, BLACK, 50);
|
||||
@ -328,6 +326,7 @@ int newuser()
|
||||
}
|
||||
|
||||
if (CFG.iHandle) {
|
||||
do {
|
||||
Enter(1);
|
||||
/* Enter a handle (Enter to Quit): */
|
||||
language(LIGHTRED, BLACK, 412);
|
||||
@ -336,16 +335,24 @@ int newuser()
|
||||
alarm_on();
|
||||
Getname(temp, 34);
|
||||
|
||||
badname = (BadNames(temp) || CheckName(temp));
|
||||
if (badname) {
|
||||
/* That login name already exists, please choose another one. */
|
||||
language(LIGHTRED, BLACK, 386);
|
||||
Enter(1);
|
||||
} else {
|
||||
if(strcmp(temp, "") == 0)
|
||||
strcpy(usrconfig.sHandle, "");
|
||||
else
|
||||
strcpy(usrconfig.sHandle, temp);
|
||||
}
|
||||
} while (badname);
|
||||
}
|
||||
|
||||
/*
|
||||
* Note, the users database always contains the english sex
|
||||
*/
|
||||
if(CFG.iSex) {
|
||||
if (CFG.iSex) {
|
||||
while (TRUE) {
|
||||
Enter(1);
|
||||
/* What is your sex? (M)ale or (F)emale: */
|
||||
@ -361,8 +368,7 @@ int newuser()
|
||||
pout(CFG.InputColourF, CFG.InputColourB, (char *) Language(52));
|
||||
Enter(1);
|
||||
break;
|
||||
} else
|
||||
if (i == Keystroke(51, 1)) {
|
||||
} else if (i == Keystroke(51, 1)) {
|
||||
/* Female */
|
||||
sprintf(usrconfig.sSex, "Female");
|
||||
pout(CFG.InputColourF, CFG.InputColourB, (char *) Language(53));
|
||||
@ -521,15 +527,11 @@ int newuser()
|
||||
fflush(stdout);
|
||||
fflush(stdin);
|
||||
|
||||
if(CFG.iVoicePhone) {
|
||||
if(TelephoneScan(Phone1, FullName))
|
||||
if (CFG.iVoicePhone && TelephoneScan(Phone1, FullName))
|
||||
Syslog('!', "Duplicate phone numbers found");
|
||||
}
|
||||
|
||||
if(CFG.iDataPhone) {
|
||||
if(TelephoneScan(Phone2, FullName))
|
||||
if (CFG.iDataPhone && TelephoneScan(Phone2, FullName))
|
||||
Syslog('!', "Duplicate phone numbers found");
|
||||
}
|
||||
|
||||
free(temp1);
|
||||
free(temp2);
|
||||
@ -569,7 +571,7 @@ void Fast_Bye(int onsig)
|
||||
unlink(temp);
|
||||
free(temp);
|
||||
|
||||
colour(7, 0);
|
||||
colour(LIGHTGRAY, BLACK);
|
||||
fflush(stdout);
|
||||
fflush(stdin);
|
||||
sleep(3);
|
||||
@ -605,74 +607,78 @@ char *NameGen(char *FidoName)
|
||||
struct passwd *pw;
|
||||
|
||||
sUserName = calloc(10, sizeof(char));
|
||||
|
||||
Syslog('+', "NameGen(%s)", FidoName);
|
||||
setpwent();
|
||||
while ((strcmp(sUserName, "") == 0 || (pw = getpwnam(sUserName)) != NULL) || (strlen(sUserName) < 3)) {
|
||||
colour(12, 0);
|
||||
|
||||
while ((strcmp(sUserName, "") == 0) || ((pw = getpwnam(sUserName)) != NULL) || (strlen(sUserName) < 3)) {
|
||||
colour(LIGHTRED, BLACK);
|
||||
printf("\n%s\n\n", (char *) Language(381));
|
||||
colour(15, 0);
|
||||
colour(WHITE, BLACK);
|
||||
/* Please enter a login name (Maximum 8 characters) */
|
||||
printf("\n%s\n", (char *) Language(383));
|
||||
/* ie. John Doe, login = jdoe */
|
||||
printf("%s\n", (char *) Language(384));
|
||||
colour(10, 0);
|
||||
colour(LIGHTGREEN, BLACK);
|
||||
/* login > */
|
||||
printf("%s", (char *) Language(385));
|
||||
fflush(stdout);
|
||||
fflush(stdin);
|
||||
GetstrU(sUserName, 7);
|
||||
|
||||
setpwent();
|
||||
if (pw = getpwnam(tl(sUserName)), pw != NULL) {
|
||||
if ((pw = getpwnam(sUserName)) != NULL) {
|
||||
/* That login name already exists, please choose another one. */
|
||||
colour(12, 0);
|
||||
colour(LIGHTRED, BLACK);
|
||||
printf("\n%s\n", (char *) Language(386));
|
||||
setpwent();
|
||||
}
|
||||
}
|
||||
return tl(sUserName);
|
||||
return sUserName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Function will create the users name in the passwd file
|
||||
*/
|
||||
char *NameCreate(char *Name, char *Comment, char *Password)
|
||||
{
|
||||
char *PassEnt;
|
||||
char *progname;
|
||||
int err;
|
||||
|
||||
PassEnt = calloc(256, sizeof(char));
|
||||
progname = calloc(PATH_MAX, sizeof(char));
|
||||
|
||||
/*
|
||||
* Call mbuseradd, this is a special setuid root program to create
|
||||
* unix acounts and home directories.
|
||||
*/
|
||||
sprintf(PassEnt, "%s/bin/mbuseradd %d %s \"%s\" %s",
|
||||
getenv("MBSE_ROOT"), getgid(), Name, Comment, CFG.bbs_usersdir);
|
||||
Syslog('+', "%s", PassEnt);
|
||||
sprintf(progname, "%s/bin/mbuseradd %d %s \"%s\" %s", getenv("MBSE_ROOT"), getgid(), Name, Comment, CFG.bbs_usersdir);
|
||||
Syslog('+', "%s", progname);
|
||||
fflush(stdout);
|
||||
fflush(stdin);
|
||||
|
||||
if (system(PassEnt) != 0) {
|
||||
if ((err = system(progname))) {
|
||||
perror("");
|
||||
WriteError("Failed to create unix account");
|
||||
free(PassEnt);
|
||||
ExitClient(1);
|
||||
}
|
||||
sprintf(PassEnt, "%s/bin/mbpasswd -f %s %s", getenv("MBSE_ROOT"), Name, Password);
|
||||
Syslog('+', "%s/bin/mbpasswd -f %s ******", getenv("MBSE_ROOT"), Name);
|
||||
if (system(PassEnt) != 0) {
|
||||
WriteError("Failed to set unix password");
|
||||
free(PassEnt);
|
||||
free(progname);
|
||||
ExitClient(1);
|
||||
}
|
||||
|
||||
colour(14, 0);
|
||||
sprintf(progname, "%s/bin/mbpasswd -f %s %s", getenv("MBSE_ROOT"), Name, Password);
|
||||
Syslog('+', "%s/bin/mbpasswd -f %s ******", getenv("MBSE_ROOT"), Name);
|
||||
fflush(stdout);
|
||||
fflush(stdin);
|
||||
|
||||
if ((err = system(progname))) {
|
||||
perror("");
|
||||
WriteError("Failed to set unix password");
|
||||
free(progname);
|
||||
ExitClient(1);
|
||||
}
|
||||
|
||||
colour(YELLOW, BLACK);
|
||||
/* Your "Unix Account" is created, you may use it the next time you call */
|
||||
printf("\n%s\n", (char *) Language(382));
|
||||
Syslog('+', "Created Unix account %s for %s", Name, Comment);
|
||||
|
||||
free(PassEnt);
|
||||
free(progname);
|
||||
return Name;
|
||||
}
|
||||
|
||||
@ -684,7 +690,7 @@ char *NameCreate(char *Name, char *Comment, char *Password)
|
||||
int BadNames(char *Username)
|
||||
{
|
||||
FILE *fp;
|
||||
short iFoundName = FALSE;
|
||||
int iFoundName = FALSE;
|
||||
char *temp, *String, *User;
|
||||
|
||||
temp = calloc(PATH_MAX, sizeof(char));
|
||||
@ -694,11 +700,11 @@ int BadNames(char *Username)
|
||||
strcpy(User, tl(Username));
|
||||
|
||||
sprintf(temp, "%s/etc/badnames.ctl", getenv("MBSE_ROOT"));
|
||||
if(( fp = fopen(temp, "r")) != NULL) {
|
||||
while((fgets(String, 80, fp)) != NULL) {
|
||||
if ((fp = fopen(temp, "r")) != NULL) {
|
||||
while ((fgets(String, 80, fp)) != NULL) {
|
||||
strcpy(String, tl(String));
|
||||
Striplf(String);
|
||||
if((strstr(User, String)) != NULL) {
|
||||
if ((strstr(User, String)) != NULL) {
|
||||
printf("\nSorry that name is not acceptable on this system\n");
|
||||
iFoundName = TRUE;
|
||||
break;
|
||||
@ -728,10 +734,10 @@ int TelephoneScan(char *Number, char *Name)
|
||||
struct userhdr uhdr;
|
||||
struct userrec u;
|
||||
|
||||
temp = calloc(81, sizeof(char));
|
||||
temp = calloc(PATH_MAX, sizeof(char));
|
||||
|
||||
sprintf(temp, "%s/etc/users.data", getenv("MBSE_ROOT"));
|
||||
if(( fp = fopen(temp,"rb")) != NULL) {
|
||||
if ((fp = fopen(temp,"rb")) != NULL) {
|
||||
fread(&uhdr, sizeof(uhdr), 1, fp);
|
||||
|
||||
while (fread(&u, uhdr.recsize, 1, fp) == 1) {
|
||||
@ -739,8 +745,7 @@ int TelephoneScan(char *Number, char *Name)
|
||||
if ((strlen(u.sVoicePhone) && (strcmp(u.sVoicePhone, Number) == 0)) ||
|
||||
(strlen(u.sDataPhone) && (strcmp(u.sDataPhone, Number) == 0))) {
|
||||
Status = TRUE;
|
||||
Syslog('b', "Dupe phones ref: \"%s\" voice: \"%s\" data: \"%s\"",
|
||||
Number, u.sVoicePhone, u.sDataPhone);
|
||||
Syslog('b', "Dupe phones ref: \"%s\" voice: \"%s\" data: \"%s\"", Number, u.sVoicePhone, u.sDataPhone);
|
||||
Syslog('+', "Uses the same telephone number as %s", u.sUserName);
|
||||
}
|
||||
}
|
||||
|
105
mbsebbs/page.c
105
mbsebbs/page.c
@ -52,11 +52,9 @@
|
||||
*/
|
||||
void Page_Sysop(char *String)
|
||||
{
|
||||
int i;
|
||||
FILE *pWritingDevice, *pBusy;
|
||||
int iOpenDevice = FALSE; /* Flag to check if you can write to CFG.sChatDevice */
|
||||
char *Reason;
|
||||
char temp[81];
|
||||
FILE *pWritingDevice;
|
||||
int i, iOpenDevice = FALSE; /* Flag to check if you can write to CFG.sChatDevice */
|
||||
char *Reason, temp[81];
|
||||
|
||||
Reason = calloc(81, sizeof(char));
|
||||
|
||||
@ -67,66 +65,66 @@ void Page_Sysop(char *String)
|
||||
|
||||
if (CFG.iAskReason) {
|
||||
locate(6, 0);
|
||||
colour(1, 0);
|
||||
colour(BLUE, BLACK);
|
||||
printf("%c", 213);
|
||||
for(i = 0; i < 78; i++)
|
||||
for (i = 0; i < 78; i++)
|
||||
printf("%c", 205);
|
||||
printf("%c ", 184);
|
||||
printf("%c\n", 184);
|
||||
|
||||
colour(7, 0);
|
||||
for(i = 0; i < 78; i++)
|
||||
colour(LIGHTGRAY, BLACK);
|
||||
for (i = 0; i < 78; i++)
|
||||
printf("%c", 250);
|
||||
printf("\n");
|
||||
|
||||
colour(1, 0);
|
||||
colour(BLUE, BLACK);
|
||||
printf("%c", 212);
|
||||
for(i = 0; i < 78; i++)
|
||||
for (i = 0; i < 78; i++)
|
||||
printf("%c", 205);
|
||||
printf("%c\n", 190);
|
||||
|
||||
locate(7, 2);
|
||||
|
||||
colour(7, 0);
|
||||
colour(LIGHTGRAY, BLACK);
|
||||
fflush(stdout);
|
||||
GetPageStr(temp, 76);
|
||||
|
||||
colour(1, 0);
|
||||
colour(BLUE, BLACK);
|
||||
printf("%c", 212);
|
||||
for(i = 0; i < 78; i++)
|
||||
for (i = 0; i < 78; i++)
|
||||
printf("%c", 205);
|
||||
printf("%c\n", 190);
|
||||
|
||||
if((strcmp(temp, "")) == 0)
|
||||
if ((strcmp(temp, "")) == 0)
|
||||
return;
|
||||
|
||||
Syslog('+', "Chat Reason: %s", temp);
|
||||
strcpy(Reason, temp);
|
||||
}
|
||||
|
||||
if (access("/tmp/.BusyChatting", F_OK) == 0) {
|
||||
if((pBusy = fopen("/tmp/.BusyChatting", "r")) == NULL)
|
||||
WriteError("Unable to open BusyChatting file", pTTY);
|
||||
else {
|
||||
fscanf(pBusy, "%10s", temp);
|
||||
fclose(pBusy);
|
||||
}
|
||||
colour(13, 0);
|
||||
printf("%s%s\n", (char *) Language(152), temp);
|
||||
pout(10, 0, (char *) Language(153));
|
||||
Enter(2);
|
||||
Syslog('+', "SysOp was busy chatting to user on %s", temp);
|
||||
Pause();
|
||||
free(Reason);
|
||||
return;
|
||||
}
|
||||
// if (access("/tmp/.BusyChatting", F_OK) == 0) {
|
||||
// if((pBusy = fopen("/tmp/.BusyChatting", "r")) == NULL)
|
||||
// WriteError("Unable to open BusyChatting file", pTTY);
|
||||
// else {
|
||||
// fscanf(pBusy, "%10s", temp);
|
||||
// fclose(pBusy);
|
||||
// }
|
||||
// colour(13, 0);
|
||||
// printf("%s%s\n", (char *) Language(152), temp);
|
||||
// pout(10, 0, (char *) Language(153));
|
||||
// Enter(2);
|
||||
// Syslog('+', "SysOp was busy chatting to user on %s", temp);
|
||||
// Pause();
|
||||
// free(Reason);
|
||||
// return;
|
||||
// }
|
||||
|
||||
CFG.iMaxPageTimes--;
|
||||
|
||||
if(CFG.iMaxPageTimes <= 0) {
|
||||
if (CFG.iMaxPageTimes <= 0) {
|
||||
if (!DisplayFile((char *)"maxpage")) {
|
||||
/* If i is FALSE display hard coded message */
|
||||
Enter(1);
|
||||
pout(15, 0, (char *) Language(154));
|
||||
pout(WHITE, BLACK, (char *) Language(154));
|
||||
Enter(2);
|
||||
}
|
||||
|
||||
@ -134,20 +132,20 @@ void Page_Sysop(char *String)
|
||||
Pause();
|
||||
} else {
|
||||
locate(14, ((80 - strlen(String) ) / 2 - 2));
|
||||
pout(15, 0, (char *)"[");
|
||||
pout(7, 0, String);
|
||||
pout(15, 0, (char *)"]");
|
||||
pout(WHITE, BLACK, (char *)"[");
|
||||
pout(LIGHTGRAY, BLACK, String);
|
||||
pout(WHITE, BLACK, (char *)"]");
|
||||
|
||||
locate(16, ((80 - CFG.iPageLength) / 2 - 2));
|
||||
pout(15, 0, (char *)"[");
|
||||
colour(1, 0);
|
||||
for(i = 0; i < CFG.iPageLength; i++)
|
||||
pout(WHITE, BLACK, (char *)"[");
|
||||
colour(BLUE, BLACK);
|
||||
for (i = 0; i < CFG.iPageLength; i++)
|
||||
printf("%c", 176);
|
||||
pout(15, 0, (char *)"]");
|
||||
pout(WHITE, BLACK, (char *)"]");
|
||||
|
||||
locate(16, ((80 - CFG.iPageLength) / 2 - 2) + 1);
|
||||
|
||||
if((pWritingDevice = fopen(CFG.sChatDevice, "w")) != NULL) {
|
||||
if ((pWritingDevice = fopen(CFG.sChatDevice, "w")) != NULL) {
|
||||
fprintf(pWritingDevice, "\n\n\n%s is trying to page you on %s.\n", \
|
||||
usrconfig.sUserName, pTTY);
|
||||
|
||||
@ -158,17 +156,18 @@ void Page_Sysop(char *String)
|
||||
iOpenDevice = TRUE;
|
||||
}
|
||||
|
||||
colour(9, 0);
|
||||
for(i = 0; i < CFG.iPageLength; i++) {
|
||||
colour(LIGHTBLUE, BLACK);
|
||||
for (i = 0; i < CFG.iPageLength; i++) {
|
||||
printf("\x07");
|
||||
/* If there weren't any problems opening the writing device */
|
||||
if(iOpenDevice)
|
||||
if (iOpenDevice) {
|
||||
fprintf(pWritingDevice, "\x07");
|
||||
printf("%c", 219);
|
||||
fflush(pWritingDevice);
|
||||
}
|
||||
printf("%c", 219);
|
||||
fflush(stdout);
|
||||
sleep(1);
|
||||
if(access("/tmp/chatdev", R_OK) == 0) {
|
||||
if (access("/tmp/chatdev", R_OK) == 0) {
|
||||
fclose(pWritingDevice);
|
||||
Chat();
|
||||
free(Reason);
|
||||
@ -176,9 +175,13 @@ void Page_Sysop(char *String)
|
||||
}
|
||||
}
|
||||
|
||||
if (iOpenDevice) {
|
||||
fclose(pWritingDevice);
|
||||
iOpenDevice = 0;
|
||||
}
|
||||
PageReason();
|
||||
printf("\n\n\n");
|
||||
Pause();
|
||||
if (strlen(Reason))
|
||||
SysopComment(Reason);
|
||||
else
|
||||
@ -247,11 +250,11 @@ void PageReason()
|
||||
char *String;
|
||||
char *temp;
|
||||
|
||||
temp = calloc(128, sizeof(char));
|
||||
temp = calloc(PATH_MAX, sizeof(char));
|
||||
String = calloc(81, sizeof(char));
|
||||
|
||||
sprintf(temp, "%s/page.asc", CFG.bbs_txtfiles);
|
||||
if(( Page = fopen(temp, "r")) != NULL) {
|
||||
if ((Page = fopen(temp, "r")) != NULL) {
|
||||
|
||||
while (( fgets(String, 80 ,Page)) != NULL)
|
||||
Lines++;
|
||||
@ -270,7 +273,7 @@ void PageReason()
|
||||
Lines = 0;
|
||||
|
||||
while (( fgets(String,80,Page)) != NULL) {
|
||||
if(Lines == j) {
|
||||
if (Lines == j) {
|
||||
Striplf(String);
|
||||
locate(18, ((78 - strlen(String) ) / 2));
|
||||
pout(15, 0, (char *)"[");
|
||||
@ -283,7 +286,7 @@ void PageReason()
|
||||
}
|
||||
} /* End of Else */
|
||||
|
||||
if(!iFoundString) {
|
||||
if (!iFoundString) {
|
||||
/* Sysop currently is not available ... please leave a comment */
|
||||
sprintf(String, "%s", (char *) Language(155));
|
||||
locate(18, ((78 - strlen(String) ) / 2));
|
||||
|
@ -87,8 +87,9 @@ int check_calllist(void)
|
||||
if (pots_calls || isdn_calls || inet_calls) {
|
||||
call_work = 0;
|
||||
for (tmp = alist; tmp; tmp = tmp->next) {
|
||||
if (((tmp->callmode == CM_INET) && TCFG.max_tcp && internet) ||
|
||||
((tmp->callmode == CM_ISDN) && isdn_lines) || ((tmp->callmode == CM_POTS) && pots_lines)) {
|
||||
if ((((tmp->callmode == CM_INET) && TCFG.max_tcp && internet) ||
|
||||
((tmp->callmode == CM_ISDN) && isdn_lines) || ((tmp->callmode == CM_POTS) && pots_lines)) &&
|
||||
((tmp->flavors) & F_CALL)) {
|
||||
call_work++;
|
||||
|
||||
/*
|
||||
|
@ -460,8 +460,6 @@ int outstat()
|
||||
*/
|
||||
tmp->flavors &= ~F_CALL;
|
||||
}
|
||||
if ((tmp->flavors) & F_CALL)
|
||||
flstr[10]='C';
|
||||
if (tmp->t1)
|
||||
flstr[12] = tmp->t1;
|
||||
if (tmp->t2)
|
||||
@ -520,6 +518,14 @@ int outstat()
|
||||
}
|
||||
}
|
||||
|
||||
if ((tmp->flavors) & F_CALL)
|
||||
flstr[10]='C';
|
||||
else
|
||||
/*
|
||||
* Safety, clear callmode.
|
||||
*/
|
||||
tmp->callmode = CM_NONE;
|
||||
|
||||
/*
|
||||
* Show callresult for this node.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user