In tty setup the network records are automatic removed

This commit is contained in:
Michiel Broek 2005-10-08 19:16:27 +00:00
parent a56aff8a92
commit 591dbd09fa
10 changed files with 366 additions and 352 deletions

View File

@ -23,6 +23,8 @@ v0.81.0 07-Oct-2005
mbsetup:
Removed settings for users screenlength.
In tty setup the network records are automatic removed. The
setting for auth log is removed (was never used).
lang: Removed prompts 64, 80 and 81.
Changed prompt 348.

View File

@ -25,7 +25,7 @@ H_IMAGES = images/b_arrow.png images/magic.png images/nodes1.png \
images/filefind.png images/nodelist1.png images/tty.png \
images/files.png images/nodelist2.png images/tty1.png \
images/go_to.png images/nodelist3.png images/tty2.png \
images/hatch.png images/nodelist4.png images/tty3.png \
images/hatch.png images/nodelist4.png \
images/language.png images/nodelist5.png images/uarrow.png \
images/larrow.png images/users.png images/doors2.png \
images/mbse.png images/taskmgr.png images/mbsebbs-s.png \

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -14,22 +14,20 @@
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align='right'><h5>Last update 29-Dec-2001</h5></div>
<div align='right'><h5>Last update 08-Oct-2005</h5></div>
<div align='center'><H1>MBSE BBS Setup - TTY Lines.</H1></div>
<h3>Introduction.</H3>
<P>
For each line your bbs has you must setup a tty line. This also includes
console lines (for local login), network lines for internet and lan connections
and X-terminal connections, ISDN lines, and Analogue modem lines. If a call
comes in over a tty you didn't define, that call is refused. So if you are
directly connected to the internet, and have only 5 network tty's defined,
then maximum 5 users are allowed to telnet to your bbs via the internet.
For each modem or ISDN line your bbs has you must setup a tty line.
This also includes console lines (for local login). Since version 0.81.0
you don't need to setup network lines anymore, these are now buildin.
If a call comes in over a (modem or ISDN) tty you didn't define, that call is refused.
<p>
One thing about the portspeed, this is only needed for devices connected to
serial ports such as modems and external ISDN adapters. For network tty's and
internal ISDN cards this should be set to zero. If you set it to some other value,
things still word but you will get error messages in the logs.
serial ports such as modems and external ISDN adapters.
For internal ISDN cards this should be set to zero. If you set it to some other value,
things still work but you will get error messages in the logs.
<p>
A note about the EMSI flags, this <u>must</u> match your modem capabilities, if
not dialout will not work correct. It is used to see which line to use to call
@ -48,7 +46,6 @@ may represent combined ISDN and analogue flags but the flags that belong to a mo
<strong>Fido Flags </strong>The EMSI flags for this line, include your modem flags here!
<strong>Line Type </strong>Can be POTS, ISDN, Network and Local.
<strong>Available </strong>Is this line available for use.
<strong>Auth. log </strong>Not in use yet.
<strong>Honor ZMH </strong>Deny users during ZMH on this line.
<strong>Deleted </strong>If this line must be deleted.
<strong>Callout </strong>Allow calling other systems from this line.
@ -63,7 +60,6 @@ may represent combined ISDN and analogue flags but the flags that belong to a mo
<IMG SRC="../images/tty.png" ALT="Overview of tty ports"><P>
<IMG SRC="../images/tty1.png" ALT="A analogue modem port at COM1"><P>
<IMG SRC="../images/tty2.png" ALT="A ISDN channel"><P>
<IMG SRC="../images/tty3.png" ALT="A network (internet telnet) port"><P>
<A HREF="./"><IMG SRC="../images/larrow.png" ALT="Back" Border="0">Back to index</A>&nbsp;
<A HREF="../"><IMG SRC="../images/b_arrow.png" ALT="Home" Border="0">Back to main index</A>

View File

@ -1517,7 +1517,7 @@ struct _ttyinfo {
char flags[31]; /* Fidonet capabilty flags */
int type; /* Pots/ISDN/Netw/Local */
unsigned available : 1; /* Available flag */
unsigned authlog : 1; /* Is speed logged */
unsigned xauthlog : 1;
unsigned honor_zmh : 1; /* Honor ZMH on this line */
unsigned deleted : 1; /* Is deleted */
unsigned callout : 1; /* Callout allowed */

View File

@ -1703,11 +1703,17 @@ int edit_linetype(int y, int x, int val)
ch = readkey(y, x, YELLOW, BLUE);
if (ch == ' ') {
if (val < LOCAL)
if (val < LOCAL) {
val++;
else
/*
* Network is for buildin linetypes only and cannot be selected.
*/
if (val == NETWORK)
val++;
} else {
val = POTS;
}
}
} while (ch != KEY_ENTER && ch != '\012');
set_color(WHITE, BLACK);
show_linetype(y, x, val);

View File

@ -50,47 +50,18 @@ int TtyUpdated = 0;
int CountTtyinfo(void)
{
FILE *fil;
char ffile[PATH_MAX];
char *ffile;
int count = 0, i;
ffile = calloc(PATH_MAX, sizeof(char));
snprintf(ffile, PATH_MAX, "%s/etc/ttyinfo.data", getenv("MBSE_ROOT"));
if ((fil = fopen(ffile, "r")) == NULL) {
if ((fil = fopen(ffile, "a+")) != NULL) {
ttyinfohdr.hdrsize = sizeof(ttyinfohdr);
ttyinfohdr.recsize = sizeof(ttyinfo);
fwrite(&ttyinfohdr, sizeof(ttyinfohdr), 1, fil);
#if defined(__linux__)
/*
* Only seen on Linux systems
*/
for (i = 0; i < 16; i++) {
count++;
memset(&ttyinfo, 0, sizeof(ttyinfo));
snprintf(ttyinfo.comment, 41, "Network port %d", count);
snprintf(ttyinfo.tty, 7, "pts/%d", i);
snprintf(ttyinfo.speed, 21, "10 mbit");
snprintf(ttyinfo.flags, 31, "IBN,IFC,XX");
ttyinfo.type = NETWORK;
ttyinfo.available = TRUE;
snprintf(ttyinfo.name, 36, "Network port #%d", count);
fwrite(&ttyinfo, sizeof(ttyinfo), 1, fil);
}
#endif
for (i = 0; i < 16; i++) {
count++;
memset(&ttyinfo, 0, sizeof(ttyinfo));
snprintf(ttyinfo.comment, 41, "Network port %d", count);
snprintf(ttyinfo.tty, 7, "ttyp%x", i);
snprintf(ttyinfo.speed, 21, "10 mbit");
snprintf(ttyinfo.flags, 31, "IBN,IFC,XX");
ttyinfo.type = NETWORK;
ttyinfo.available = TRUE;
snprintf(ttyinfo.name, 36, "Network port #%d", count);
fwrite(&ttyinfo, sizeof(ttyinfo), 1, fil);
}
#if defined(__linux__)
/*
* Linux has 6 virtual consoles
@ -98,7 +69,7 @@ int CountTtyinfo(void)
for (i = 0; i < 6; i++) {
memset(&ttyinfo, 0, sizeof(ttyinfo));
snprintf(ttyinfo.comment, 41, "Console port %d", i+1);
snprintf(ttyinfo.tty, 7, "tty%d", i);
snprintf(ttyinfo.tty, 7, "tty%d", i+1);
snprintf(ttyinfo.speed, 21, "10 mbit");
ttyinfo.type = LOCAL;
ttyinfo.available = TRUE;
@ -195,15 +166,19 @@ int CountTtyinfo(void)
fclose(fil);
chmod(ffile, 0640);
Syslog('+', "Creaded new %s with %d ttys", ffile, count);
free(ffile);
return count;
} else
} else {
free(ffile);
return -1;
}
}
fread(&ttyinfohdr, sizeof(ttyinfohdr), 1, fil);
fseek(fil, 0, SEEK_END);
count = (ftell(fil) - ttyinfohdr.hdrsize) / ttyinfohdr.recsize;
fclose(fil);
free(ffile);
return count;
}
@ -219,11 +194,14 @@ int OpenTtyinfo(void);
int OpenTtyinfo(void)
{
FILE *fin, *fout;
char fnin[PATH_MAX], fnout[PATH_MAX];
char *fnin, *fnout;
long oldsize;
fnin = calloc(PATH_MAX, sizeof(char));
fnout = calloc(PATH_MAX, sizeof(char));
snprintf(fnin, PATH_MAX, "%s/etc/ttyinfo.data", getenv("MBSE_ROOT"));
snprintf(fnout, PATH_MAX, "%s/etc/ttyinfo.temp", getenv("MBSE_ROOT"));
if ((fin = fopen(fnin, "r")) != NULL) {
if ((fout = fopen(fnout, "w")) != NULL) {
fread(&ttyinfohdr, sizeof(ttyinfohdr), 1, fin);
@ -249,16 +227,29 @@ int OpenTtyinfo(void)
*/
memset(&ttyinfo, 0, sizeof(ttyinfo));
while (fread(&ttyinfo, oldsize, 1, fin) == 1) {
/*
* If network ports available, set updated so the records will
* be deleted during close.
*/
if (ttyinfo.type == NETWORK) {
TtyUpdated = 1;
ttyinfo.deleted = TRUE;
ttyinfo.available = FALSE;
}
fwrite(&ttyinfo, sizeof(ttyinfo), 1, fout);
memset(&ttyinfo, 0, sizeof(ttyinfo));
}
fclose(fin);
fclose(fout);
free(fnin);
free(fnout);
return 0;
} else
return -1;
}
}
free(fnin);
free(fnout);
return -1;
}
@ -267,10 +258,12 @@ int OpenTtyinfo(void)
void CloseTtyinfo(int);
void CloseTtyinfo(int force)
{
char fin[PATH_MAX], fout[PATH_MAX];
char *fin, *fout;
FILE *fi, *fo;
st_list *tty = NULL, *tmp;
fin = calloc(PATH_MAX, sizeof(char));
fout = calloc(PATH_MAX, sizeof(char));
snprintf(fin, PATH_MAX, "%s/etc/ttyinfo.data", getenv("MBSE_ROOT"));
snprintf(fout, PATH_MAX, "%s/etc/ttyinfo.temp", getenv("MBSE_ROOT"));
@ -301,9 +294,14 @@ void CloseTtyinfo(int force)
Syslog('+', "Updated \"ttyinfo.data\"");
if (!force)
working(6, 0, 0);
free(fin);
free(fout);
return;
}
}
free(fin);
free(fout);
chmod(fin, 0640);
working(1, 0, 0);
unlink(fout);
@ -314,20 +312,26 @@ void CloseTtyinfo(int force)
int AppendTtyinfo(void)
{
FILE *fil;
char ffile[PATH_MAX];
char *ffile;
ffile = calloc(PATH_MAX, sizeof(char));
snprintf(ffile, PATH_MAX, "%s/etc/ttyinfo.temp", getenv("MBSE_ROOT"));
if ((fil = fopen(ffile, "a")) != NULL) {
memset(&ttyinfo, 0, sizeof(ttyinfo));
fwrite(&ttyinfo, sizeof(ttyinfo), 1, fil);
fclose(fil);
TtyUpdated = 1;
free(ffile);
return 0;
} else
}
free(ffile);
return -1;
}
void TtyScreen(void)
{
clr_index();
@ -341,14 +345,13 @@ void TtyScreen(void)
mbse_mvprintw(11, 6, "5. Fido Flags");
mbse_mvprintw(12, 6, "6. Line Type");
mbse_mvprintw(13, 6, "7. Available");
mbse_mvprintw(14, 6, "8. Auth. log");
mbse_mvprintw(15, 6, "9. Honor ZMH");
mbse_mvprintw(16, 6, "10. Deleted");
mbse_mvprintw(17, 6, "11. Callout");
mbse_mvprintw(14, 6, "8. Honor ZMH");
mbse_mvprintw(15, 6, "9. Deleted");
mbse_mvprintw(16, 6, "10. Callout");
mbse_mvprintw(15,31, "12. Portspeed");
mbse_mvprintw(16,31, "13. Modemtype");
mbse_mvprintw(17,31, "14. EMSI name");
mbse_mvprintw(14,31, "11. Portspeed");
mbse_mvprintw(15,31, "12. Modemtype");
mbse_mvprintw(16,31, "13. EMSI name");
}
@ -359,7 +362,7 @@ void TtyScreen(void)
int EditTtyRec(int Area)
{
FILE *fil;
char mfile[PATH_MAX];
char *mfile;
long offset;
int j;
unsigned long crc, crc1;
@ -367,16 +370,20 @@ int EditTtyRec(int Area)
clr_index();
working(1, 0, 0);
IsDoing("Edit Ttyinfo");
mfile = calloc(PATH_MAX, sizeof(char));
snprintf(mfile, PATH_MAX, "%s/etc/ttyinfo.temp", getenv("MBSE_ROOT"));
if ((fil = fopen(mfile, "r")) == NULL) {
working(2, 0, 0);
free(mfile);
return -1;
}
offset = sizeof(ttyinfohdr) + ((Area -1) * sizeof(ttyinfo));
if (fseek(fil, offset, 0) != 0) {
working(2, 0, 0);
fclose(fil);
free(mfile);
return -1;
}
@ -395,15 +402,14 @@ int EditTtyRec(int Area)
show_str(11,21,30, ttyinfo.flags);
show_linetype(12,21, ttyinfo.type);
show_bool(13,21, ttyinfo.available);
show_bool(14,21, ttyinfo.authlog);
show_bool(15,21, ttyinfo.honor_zmh);
show_bool(16,21, ttyinfo.deleted);
show_bool(17,21, ttyinfo.callout);
show_int( 15,45, ttyinfo.portspeed);
show_str( 16,45,30,ttyinfo.modem);
show_str( 17,45,35,ttyinfo.name);
show_bool(14,21, ttyinfo.honor_zmh);
show_bool(15,21, ttyinfo.deleted);
show_bool(16,21, ttyinfo.callout);
show_int( 14,45, ttyinfo.portspeed);
show_str( 15,45,30,ttyinfo.modem);
show_str( 16,45,35,ttyinfo.name);
j = select_menu(14);
j = select_menu(13);
switch(j) {
case 0: crc1 = 0xffffffff;
crc1 = upd_crc32((char *)&ttyinfo, crc1, sizeof(ttyinfo));
@ -412,6 +418,7 @@ int EditTtyRec(int Area)
working(1, 0, 0);
if ((fil = fopen(mfile, "r+")) == NULL) {
working(2, 0, 0);
free(mfile);
return -1;
}
fseek(fil, offset, 0);
@ -422,6 +429,7 @@ int EditTtyRec(int Area)
}
}
IsDoing("Browsing Menu");
free(mfile);
return 0;
case 1: E_STR( 7,21,40,ttyinfo.comment, "The ^Comment^ for this record")
case 2: E_STR( 8,21,7, ttyinfo.tty, "The ^Device name^ of this tty line")
@ -441,7 +449,6 @@ int EditTtyRec(int Area)
if (ttyinfo.available) {
if ((ttyinfo.type == POTS) || (ttyinfo.type == ISDN)) {
ttyinfo.callout = TRUE;
ttyinfo.authlog = TRUE;
ttyinfo.honor_zmh = TRUE;
}
if (ttyinfo.type == POTS) {
@ -452,13 +459,16 @@ int EditTtyRec(int Area)
}
}
break;
case 8: E_BOOL(14,21, ttyinfo.authlog, "Is mgetty ^Auth^ logging available")
case 9: E_BOOL(15,21, ttyinfo.honor_zmh,"Honor ^Zone Mail Hour^ on this tty line")
case 10:E_BOOL(16,21, ttyinfo.deleted, "Is this tty line ^deleted")
case 11:E_BOOL(17,21, ttyinfo.callout, "Is this line available for ^calling out^")
case 12:E_INT (15,45, ttyinfo.portspeed,"The ^locked speed^ of this tty port (only for modems)")
case 13:strcpy(ttyinfo.modem, PickModem((char *)"6.13")); TtyScreen(); break;
case 14:E_STR( 17,45,30,ttyinfo.name, "The ^EMSI name^ for this tty line")
case 8: E_BOOL(14,21, ttyinfo.honor_zmh,"Honor ^Zone Mail Hour^ for bbs users on this tty")
case 9: E_BOOL(15,21, ttyinfo.deleted, "Is this tty line ^deleted")
case 10:E_BOOL(16,21, ttyinfo.callout, "Is this line available for ^calling out^")
case 11:E_INT (14,45, ttyinfo.portspeed,"The ^locked speed^ of this tty port (only for modems)")
case 12:if ((ttyinfo.type == POTS) || (ttyinfo.type == ISDN)) {
strcpy(ttyinfo.modem, PickModem((char *)"6.12"));
TtyScreen();
}
break;
case 13:E_STR( 16,45,30,ttyinfo.name, "The ^EMSI name^ for this tty line")
}
}
@ -516,7 +526,9 @@ void EditTtyinfo(void)
offset = sizeof(ttyinfohdr) + (((o + i) - 1) * ttyinfohdr.recsize);
fseek(fil, offset, 0);
fread(&ttyinfo, ttyinfohdr.recsize, 1, fil);
if (ttyinfo.available)
if (ttyinfo.deleted)
set_color(LIGHTRED, BLACK);
else if (ttyinfo.available)
set_color(CYAN, BLACK);
else
set_color(LIGHTBLUE, BLACK);
@ -625,7 +637,6 @@ int tty_doc(FILE *fp, FILE *toc, int page)
add_webtable(wp, (char *)"Fido flags", ttyinfo.flags);
add_webtable(wp, (char *)"Equipment", getlinetype(ttyinfo.type));
add_webtable(wp, (char *)"Available", getboolean(ttyinfo.available));
add_webtable(wp, (char *)"Auth. log", getboolean(ttyinfo.authlog));
add_webtable(wp, (char *)"Honor ZMH", getboolean(ttyinfo.honor_zmh));
add_webtable(wp, (char *)"Callout", getboolean(ttyinfo.callout));
add_webtable(wp, (char *)"Modem type", ttyinfo.modem);
@ -643,7 +654,6 @@ int tty_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " Fido flags %s\n", ttyinfo.flags);
fprintf(fp, " Equipment %s\n", getlinetype(ttyinfo.type));
fprintf(fp, " Available %s\n", getboolean(ttyinfo.available));
fprintf(fp, " Auth. log %s\n", getboolean(ttyinfo.authlog));
fprintf(fp, " Honor ZMH %s\n", getboolean(ttyinfo.honor_zmh));
fprintf(fp, " Callout %s\n", getboolean(ttyinfo.callout));
fprintf(fp, " Modem type %s\n", ttyinfo.modem);