Removed support for non-batching and bidirectional transfer protocols
This commit is contained in:
parent
769a1884b3
commit
c22e9948e1
18
ChangeLog
18
ChangeLog
@ -1,9 +1,16 @@
|
||||
$Id$
|
||||
|
||||
!!!! DON'T USE, THIS VERSION HAS LOTS OF BUGS !!!!
|
||||
!!!! DON'T USE, THIS VERSION HAS LOTS OF BUGS !!!!
|
||||
==================================================
|
||||
But if you don't use the bbs then you may be safe.
|
||||
|
||||
|
||||
v0.71.0 27-Oct-2004
|
||||
|
||||
general:
|
||||
From filetranfer records removed the batch and bidirectional
|
||||
switches, these are no longer needed.
|
||||
|
||||
mbsebbs:
|
||||
In change handle the first character of the name is not
|
||||
capitalized.
|
||||
@ -13,15 +20,22 @@ v0.71.0 27-Oct-2004
|
||||
If a user pages the sysop a hint is displayed to fill in the
|
||||
reason to chat, language prompt 28.
|
||||
After forced chat, redisplay the last menu.
|
||||
Removed support for non-batching protocols (xmodem) and for
|
||||
bidirectional protocols.
|
||||
|
||||
mbnewusr:
|
||||
Rewrote terminal i/o.
|
||||
|
||||
mbsetup:
|
||||
In file transfers edit, removed switches for batch and bidirect
|
||||
protocols, added a switch for internal protocols.
|
||||
|
||||
lang:
|
||||
Changed width of prompt 261.
|
||||
Added prompt 28.
|
||||
Removed leading spaces of prompt 151.
|
||||
|
||||
Removed prompt 276.
|
||||
|
||||
script:
|
||||
Modified rundoor.sh so that it uses two different dosemu
|
||||
configuration files, one for virtual modem and one without.
|
||||
|
Binary file not shown.
@ -274,7 +274,7 @@
|
||||
273 file.c YN|Search for new since your last call [Y/n]:
|
||||
274 file.c |Enter new date to search for [DD-MM-YYYY]:
|
||||
275 file.c |File Search by Date
|
||||
276 file.c offline.c |Please enter file to upload:
|
||||
276 .c |
|
||||
277 offline.c |Offline Reader Download
|
||||
278 file.c |You do not have enough access to upload to this area.
|
||||
279 file.c |You have not enough diskspace free to copy this file
|
||||
|
@ -274,7 +274,7 @@ JN|Node onbekend, toch doorgaan [j/N]:
|
||||
JN|Zoeken naar nieuwe bestanden sinds de laatste keer? [J/n]:
|
||||
|Geef nieuwe datum om vanaf te zoeken [DD-MM-JJJJ]:
|
||||
|Bestanden zoeken op datum
|
||||
|Geef bestandsnaam voor upload:
|
||||
|
|
||||
|Offline Reader Download
|
||||
|U heeft niet genoeg rechten om in dit gebied te uploaden.
|
||||
|U heeft niet genoeg vrije diskruimte om dit bestand te kopieren
|
||||
|
@ -274,7 +274,7 @@ YN|Node not known, continue anyway [y/N]:
|
||||
YN|Search for new since your last call [Y/n]:
|
||||
|Enter new date to search for [DD-MM-YYYY]:
|
||||
|File Search by Date
|
||||
|Please enter file to upload:
|
||||
|
|
||||
|Offline Reader Download
|
||||
|You do not have enough access to upload to this area.
|
||||
|You have not enough diskspace free to copy this file
|
||||
|
@ -274,7 +274,7 @@ ON|Node inconnu, continue quand m
|
||||
YN|Search for new since your last call [Y/n]:
|
||||
|Enter new date to search for [DD-MM-YYYY]:
|
||||
|File Search by Date
|
||||
|Please enter file to upload:
|
||||
|
|
||||
|Offline Reader Download
|
||||
|You do not have enough access to upload to this area.
|
||||
|You have not enough diskspace free to copy this file
|
||||
|
@ -274,7 +274,7 @@ SN|Nodo desco
|
||||
SN|Buscar novos ficheiros dende a tua £ltima chamada [S/n]:
|
||||
|Buscar novos dende fecha [DD-MM-YYYY]:
|
||||
|Buscar ficheiros por fecha
|
||||
|Nome do ficheiro a enviar:
|
||||
|
|
||||
|Descargar Correo para lectura OFF-LINE
|
||||
|Non tes permiso para enviar ficheiros a esta rea.
|
||||
|Non hai espacio dabondo para copiar este ficheiro
|
||||
|
@ -274,7 +274,7 @@ JN|Adresse unbekannt, dennoch fortfahren [j/N]:
|
||||
JN|Neue Dateien seit Ihrem letzten Login suchen [J/n]:
|
||||
|Geben Sie das Suchdatum an [TT-MM-JJJJ]:
|
||||
|Dateisuche nach Datum
|
||||
|Geben sie den Namen der heraufzuladenden Datei ein:
|
||||
|
|
||||
|Mitteilungen fuer "Offline Reader" herunterladen
|
||||
|Ihre Zugriffsberechtigung reicht nicht fuer das Heraufladen.
|
||||
|Ihr Plattenplatz reicht nicht fuer das Kopieren der Datei
|
||||
|
@ -274,7 +274,7 @@ JN|Adresse unbekannt, dennoch fortfahren [<j>a/<N>ein]:
|
||||
JN|Neue Dateien seit Deinem letzten Login suchen [<J>a/<n>ein]:
|
||||
|Gib das Suchdatum an [TT-MM-JJJJ]:
|
||||
|Dateisuche nach Datum
|
||||
|Gib den Namen der heraufzuladenden Datei ein:
|
||||
|
|
||||
|Mitteilungen fuer "Offline Reader" herunterladen
|
||||
|Deine Zugriffsberechtigung reicht nicht fuer das Heraufladen.
|
||||
|Dein Plattenplatz reicht nicht fuer das Kopieren der Datei
|
||||
|
@ -274,7 +274,7 @@ SN|Nodo sconosciuto, continua lo stesso [s/N]:
|
||||
SN|Cerca nuovi file dall'ultima chiamata [S/n]:
|
||||
|Scegli una data per la ricerca dei nuovi file [GG-MM-AAAA]
|
||||
|Ricerca per data
|
||||
|Scegli il file da uploadare:
|
||||
|
|
||||
|Offline Reader Download
|
||||
|Non hai livello di accesso sufficiente per uploadare in quest'area.
|
||||
|Non hai abbastanza spazio libero per copiare questo file
|
||||
|
@ -274,7 +274,7 @@ SN|Nodo desconocido.
|
||||
SN|Buscar nuevos ficheros desde tu £ltima llamada [S/n]:
|
||||
|Fecha desde la que buscar [DD-MM-YYYY]:
|
||||
|Buscar ficheros por fecha
|
||||
|Nombre del fichero a enviar:
|
||||
|
|
||||
|Descargar Correo para lectura OFF-LINE
|
||||
|No tienes permiso para enviar ficheros a esta rea.
|
||||
|No hay suficiente espacio libre para copiar este fichero
|
||||
|
@ -76,8 +76,7 @@ char sProtName[21]; /* Current Transfer Protocol name */
|
||||
char sProtUp[51]; /* Upload path & binary */
|
||||
char sProtDn[51]; /* Download path & binary */
|
||||
char sProtAdvice[31]; /* Advice for protocol */
|
||||
unsigned uProtBatch; /* Batching protocol */
|
||||
unsigned uProtBidir; /* Bi-directional protocol */
|
||||
unsigned uProtInternal; /* Internal protocol */
|
||||
int iProtEfficiency; /* Protocol efficiency */
|
||||
|
||||
|
||||
|
@ -684,8 +684,8 @@ struct prot {
|
||||
char ProtUp[51]; /* Upload Path & Binary */
|
||||
char ProtDn[51]; /* Download Path & Bianry */
|
||||
unsigned Available : 1; /* Available/Not Available */
|
||||
unsigned Batch : 1; /* Batching protocol */
|
||||
unsigned Bidir : 1; /* Bi Directional */
|
||||
unsigned xBatch : 1;
|
||||
unsigned xBidir : 1;
|
||||
unsigned Deleted : 1; /* Protocol is deleted */
|
||||
unsigned Internal : 1; /* Internal protocol */
|
||||
char Advice[31]; /* Small advice to user */
|
||||
|
@ -896,8 +896,7 @@ void Chg_Protocol()
|
||||
strcpy(sProtUp, PROT.ProtUp);
|
||||
strcpy(sProtDn, PROT.ProtDn);
|
||||
strcpy(sProtAdvice, PROT.Advice);
|
||||
uProtBatch = PROT.Batch;
|
||||
uProtBidir = PROT.Bidir;
|
||||
uProtInternal = PROT.Internal;
|
||||
iProtEfficiency = PROT.Efficiency;
|
||||
iFoundProt = TRUE;
|
||||
} else
|
||||
@ -965,8 +964,7 @@ void Set_Protocol(char *Protocol)
|
||||
strcpy(sProtUp, PROT.ProtUp);
|
||||
strcpy(sProtDn, PROT.ProtDn);
|
||||
strcpy(sProtAdvice, PROT.Advice);
|
||||
uProtBatch = PROT.Batch;
|
||||
uProtBidir = PROT.Bidir;
|
||||
uProtInternal = PROT.Internal;
|
||||
iProtEfficiency = PROT.Efficiency;
|
||||
} else
|
||||
precno++;
|
||||
|
131
mbsebbs/file.c
131
mbsebbs/file.c
@ -972,8 +972,8 @@ int NewfileScan(int AskStart)
|
||||
*/
|
||||
int Upload()
|
||||
{
|
||||
char File[81], temp[81];
|
||||
int Area, x = 0, err;
|
||||
char temp[81];
|
||||
int Area, err;
|
||||
unsigned long OldArea;
|
||||
time_t ElapstimeStart, ElapstimeFin, iTime;
|
||||
DIR *dirp;
|
||||
@ -1001,79 +1001,6 @@ int Upload()
|
||||
Area = area.Upload;
|
||||
SetFileArea(Area);
|
||||
|
||||
/*
|
||||
* Only ask for a filename for non-batching protocols,
|
||||
* ie. the stone age Xmodem for example.
|
||||
*/
|
||||
if (!uProtBatch) {
|
||||
/* Please enter file to upload: */
|
||||
pout(YELLOW, BLACK, (char *) Language(276));
|
||||
|
||||
colour(CFG.InputColourF, CFG.InputColourB);
|
||||
GetstrC(File, 80);
|
||||
|
||||
if ((strcmp(File, "")) == 0)
|
||||
return 0;
|
||||
|
||||
if (*(File) == '.' || *(File) == '*' || *(File) == ' ' || *(File) == '/') {
|
||||
Enter(1);
|
||||
/* Illegal Filename! */
|
||||
pout(CFG.HiliteF, CFG.HiliteB, (char *) Language(247));
|
||||
Enter(2);
|
||||
Pause();
|
||||
return 0;
|
||||
}
|
||||
|
||||
Strlen = strlen(File);
|
||||
Strlen--;
|
||||
|
||||
if (*(File + Strlen) == '.' || *(File + Strlen) == '/' || *(File + Strlen) == ' ') {
|
||||
Enter(1);
|
||||
/* Illegal Filename! */
|
||||
pout(CFG.HiliteF, CFG.HiliteB, (char *) Language(247));
|
||||
Enter(2);
|
||||
Pause();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((!strcmp(File, "files.bbs")) || (!strcmp(File, "00index")) || (strstr(File, (char *)".html"))) {
|
||||
Enter(1);
|
||||
/* Illegal Filename! */
|
||||
pout(CFG.HiliteF, CFG.HiliteB, (char *) Language(247));
|
||||
Enter(2);
|
||||
Syslog('!', "Attempted to upload %s", File);
|
||||
Pause();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for a space or ; in filename being uploaded
|
||||
*/
|
||||
if (((strchr(File, 32)) != NULL) || ((strchr(File, ';')) != NULL)) {
|
||||
Enter(1);
|
||||
/* Illegal Filename! */
|
||||
pout(CFG.HiliteF, CFG.HiliteB, (char *) Language(247));
|
||||
Enter(2);
|
||||
Pause();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* MOET IN ALLE AREAS ZOEKEN */
|
||||
if (area.Dupes) {
|
||||
x = CheckFile(File, Area);
|
||||
if (x) {
|
||||
Enter(1);
|
||||
/* The file already exists on the system */
|
||||
pout(WHITE, CYAN, (char *) Language(282));
|
||||
Enter(2);
|
||||
SetFileArea(OldArea);
|
||||
Pause();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
SetFileArea(OldArea);
|
||||
}
|
||||
|
||||
SetFileArea(Area);
|
||||
Syslog('+', "Upload area is %d %s", Area, area.Name);
|
||||
|
||||
@ -1099,10 +1026,7 @@ int Upload()
|
||||
PUTSTR((char *) Language(283));
|
||||
Enter(2);
|
||||
|
||||
if (uProtBatch)
|
||||
Syslog('+', "Upload using %s", sProtName);
|
||||
else
|
||||
Syslog('+', "Upload \"%s\" using %s", File, sProtName);
|
||||
Syslog('+', "Upload using %s", sProtName);
|
||||
|
||||
sprintf(temp, "%s/%s/upl", CFG.bbs_usersdir, exitinfo.Name);
|
||||
if (chdir(temp)) {
|
||||
@ -1571,60 +1495,13 @@ int Upload_Home()
|
||||
sFileName = calloc(PATH_MAX, sizeof(char));
|
||||
temp = calloc(PATH_MAX, sizeof(char));
|
||||
|
||||
if (!uProtBatch) {
|
||||
|
||||
Enter(1);
|
||||
/* Please enter file to upload: */
|
||||
pout(YELLOW, BLACK, (char *) Language(276));
|
||||
|
||||
colour(CFG.InputColourF, CFG.InputColourB);
|
||||
GetstrC(File, 80);
|
||||
|
||||
if ((strcmp(File, "")) == 0) {
|
||||
free(File);
|
||||
free(sFileName);
|
||||
free(temp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (File[0] == '.' || File[0] == '*' || File[0] == ' ') {
|
||||
Enter(1);
|
||||
/* Illegal Filename! */
|
||||
pout(CFG.HiliteF, CFG.HiliteB, (char *) Language(247));
|
||||
Enter(2);
|
||||
Pause();
|
||||
free(File);
|
||||
free(sFileName);
|
||||
free(temp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Strlen = strlen(File);
|
||||
Strlen--;
|
||||
|
||||
if (File[Strlen] == '.' || File[Strlen] == '/' || File[Strlen] == ' ') {
|
||||
Enter(1);
|
||||
/* Illegal Filename! */
|
||||
pout(CFG.HiliteF, CFG.HiliteB, (char *) Language(247));
|
||||
Enter(2);
|
||||
Pause();
|
||||
free(File);
|
||||
free(sFileName);
|
||||
free(temp);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
clear();
|
||||
Enter(2);
|
||||
/* Please start your upload now ...*/
|
||||
sprintf(temp, "%s, %s", sProtAdvice, (char *) Language(283));
|
||||
pout(CFG.HiliteF, CFG.HiliteB, temp);
|
||||
Enter(2);
|
||||
if (uProtBatch)
|
||||
Syslog('+', "Upload using %s", sProtName);
|
||||
else
|
||||
Syslog('+', "Upload \"%s\" using %s", File, sProtName);
|
||||
Syslog('+', "Upload using %s", sProtName);
|
||||
|
||||
sprintf(temp, "%s/%s/upl", CFG.bbs_usersdir, exitinfo.Name);
|
||||
if (chdir(temp)) {
|
||||
|
@ -1012,7 +1012,7 @@ void OLR_Upload(void)
|
||||
{
|
||||
char *File, *temp, *Arc, Dirpath[PATH_MAX], Filename[81], msg[81];
|
||||
time_t ElapstimeStart, ElapstimeFin, iTime;
|
||||
int err, Strlen, RetVal = FALSE;
|
||||
int err, RetVal = FALSE;
|
||||
FILE *fp;
|
||||
|
||||
if (strlen(CFG.bbsid) == 0) {
|
||||
@ -1034,60 +1034,12 @@ void OLR_Upload(void)
|
||||
File = calloc(PATH_MAX, sizeof(char));
|
||||
temp = calloc(PATH_MAX, sizeof(char));
|
||||
|
||||
if (!uProtBatch) {
|
||||
Enter(1);
|
||||
/* Please enter file to upload: */
|
||||
pout(YELLOW, BLACK, (char *) Language(276));
|
||||
|
||||
colour(CFG.InputColourF, CFG.InputColourB);
|
||||
GetstrC(File, 80);
|
||||
|
||||
Syslog('+', "Filename entered \"%s\"", File);
|
||||
|
||||
if ((strcmp(File, "")) == 0)
|
||||
return;
|
||||
|
||||
if (File[0] == '.' || File[0] == '*' || File[0] == ' ') {
|
||||
Enter(1);
|
||||
/* Illegal filename! */
|
||||
pout(CFG.HiliteF, CFG.HiliteB, (char *) Language(247));
|
||||
Enter(2);
|
||||
Pause();
|
||||
return;
|
||||
}
|
||||
|
||||
Strlen = strlen(File);
|
||||
Strlen--;
|
||||
|
||||
if (File[Strlen] == '.' || File[Strlen] == '/' || File[Strlen] == ' ') {
|
||||
Enter(1);
|
||||
/* Illegal Filename! */
|
||||
pout(CFG.HiliteF, CFG.HiliteB, (char *) Language(247));
|
||||
Enter(2);
|
||||
Pause();
|
||||
return;
|
||||
}
|
||||
|
||||
if (strncasecmp(File, CFG.bbsid, strlen(CFG.bbsid))) {
|
||||
Enter(1);
|
||||
/* Illegal filename! */
|
||||
pout(CFG.HiliteF, CFG.HiliteB, (char *) Language(247));
|
||||
Enter(2);
|
||||
Pause();
|
||||
return;
|
||||
}
|
||||
Syslog('+', "Filename accepted");
|
||||
}
|
||||
|
||||
Enter(1);
|
||||
/* Please start your upload now */
|
||||
sprintf(msg, "%s, %s", sProtAdvice, (char *) Language(283));
|
||||
pout(CFG.HiliteF, CFG.HiliteB, msg);
|
||||
Enter(2);
|
||||
if (uProtBatch)
|
||||
Syslog('+', "Upload using %s", sProtName);
|
||||
else
|
||||
Syslog('+', "Upload \"%s\" using %s", File, sProtName);
|
||||
Syslog('+', "Upload using %s", sProtName);
|
||||
|
||||
sprintf(temp, "%s/%s/upl", CFG.bbs_usersdir, exitinfo.Name);
|
||||
|
||||
|
@ -57,8 +57,16 @@
|
||||
|
||||
*/
|
||||
|
||||
int transfer(down_list **download_list, up_list **upload_list, int direction)
|
||||
int download(down_list **download_list)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int upload(up_list **upload_list)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -3,7 +3,6 @@
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
typedef enum {FT_UPLOAD, FT_DOWNLOAD, FT_BIDIRECT} TRANSFERTYPE;
|
||||
|
||||
|
||||
/*
|
||||
@ -31,7 +30,8 @@ typedef struct _up_list {
|
||||
} up_list;
|
||||
|
||||
|
||||
int transfer(down_list **, up_list **, int);
|
||||
int download(down_list **);
|
||||
int upload(up_list **);
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -74,7 +74,6 @@ int CountProtocol(void)
|
||||
PROT.Available = FALSE;
|
||||
}
|
||||
sprintf(PROT.Advice, "Press Ctrl-X to abort");
|
||||
PROT.Batch = TRUE;
|
||||
PROT.Efficiency = 92;
|
||||
fwrite(&PROT, sizeof(PROT), 1, fil);
|
||||
|
||||
@ -86,7 +85,6 @@ int CountProtocol(void)
|
||||
sprintf(PROT.Advice, "It goes before you know");
|
||||
PROT.Available = FALSE;
|
||||
PROT.Efficiency = 100;
|
||||
PROT.Batch = TRUE;
|
||||
fwrite(&PROT, sizeof(PROT), 1, fil);
|
||||
|
||||
memset(&PROT, 0, sizeof(PROT));
|
||||
@ -102,7 +100,6 @@ int CountProtocol(void)
|
||||
PROT.Available = FALSE;
|
||||
}
|
||||
sprintf(PROT.Advice, "Press Ctrl-X to abort");
|
||||
PROT.Batch = TRUE;
|
||||
PROT.Efficiency = 95;
|
||||
fwrite(&PROT, sizeof(PROT), 1, fil);
|
||||
|
||||
@ -119,7 +116,6 @@ int CountProtocol(void)
|
||||
PROT.Available = FALSE;
|
||||
}
|
||||
sprintf(PROT.Advice, "Press Ctrl-X to abort");
|
||||
PROT.Batch = TRUE;
|
||||
PROT.Efficiency = 98;
|
||||
fwrite(&PROT, sizeof(PROT), 1, fil);
|
||||
|
||||
@ -271,12 +267,11 @@ void s_protrec(void)
|
||||
mbse_mvprintw( 9, 6, "3. Upload");
|
||||
mbse_mvprintw(10, 6, "4. Download");
|
||||
mbse_mvprintw(11, 6, "5. Available");
|
||||
mbse_mvprintw(12, 6, "6. Batching");
|
||||
mbse_mvprintw(13, 6, "7. Bi direct");
|
||||
mbse_mvprintw(14, 6, "8. Advice");
|
||||
mbse_mvprintw(15, 6, "9. Efficiency");
|
||||
mbse_mvprintw(16, 6, "10. Deleted");
|
||||
mbse_mvprintw(17, 6, "11. Sec. level");
|
||||
mbse_mvprintw(12, 6, "6. Internal");
|
||||
mbse_mvprintw(13, 6, "7. Advice");
|
||||
mbse_mvprintw(14, 6, "8. Efficiency");
|
||||
mbse_mvprintw(15, 6, "9. Deleted");
|
||||
mbse_mvprintw(16, 6, "10. Sec. level");
|
||||
}
|
||||
|
||||
|
||||
@ -286,84 +281,82 @@ void s_protrec(void)
|
||||
*/
|
||||
int EditProtRec(int Area)
|
||||
{
|
||||
FILE *fil;
|
||||
char mfile[PATH_MAX];
|
||||
long offset;
|
||||
int j;
|
||||
unsigned long crc, crc1;
|
||||
FILE *fil;
|
||||
char mfile[PATH_MAX];
|
||||
long offset;
|
||||
int j;
|
||||
unsigned long crc, crc1;
|
||||
|
||||
clr_index();
|
||||
working(1, 0, 0);
|
||||
IsDoing("Edit Protocol");
|
||||
clr_index();
|
||||
working(1, 0, 0);
|
||||
IsDoing("Edit Protocol");
|
||||
|
||||
sprintf(mfile, "%s/etc/protocol.temp", getenv("MBSE_ROOT"));
|
||||
if ((fil = fopen(mfile, "r")) == NULL) {
|
||||
working(2, 0, 0);
|
||||
return -1;
|
||||
}
|
||||
sprintf(mfile, "%s/etc/protocol.temp", getenv("MBSE_ROOT"));
|
||||
if ((fil = fopen(mfile, "r")) == NULL) {
|
||||
working(2, 0, 0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
offset = sizeof(PROThdr) + ((Area -1) * sizeof(PROT));
|
||||
if (fseek(fil, offset, 0) != 0) {
|
||||
working(2, 0, 0);
|
||||
return -1;
|
||||
}
|
||||
offset = sizeof(PROThdr) + ((Area -1) * sizeof(PROT));
|
||||
if (fseek(fil, offset, 0) != 0) {
|
||||
working(2, 0, 0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
fread(&PROT, sizeof(PROT), 1, fil);
|
||||
fclose(fil);
|
||||
crc = 0xffffffff;
|
||||
crc = upd_crc32((char *)&PROT, crc, sizeof(PROT));
|
||||
fread(&PROT, sizeof(PROT), 1, fil);
|
||||
fclose(fil);
|
||||
crc = 0xffffffff;
|
||||
crc = upd_crc32((char *)&PROT, crc, sizeof(PROT));
|
||||
|
||||
s_protrec();
|
||||
s_protrec();
|
||||
|
||||
for (;;) {
|
||||
set_color(WHITE, BLACK);
|
||||
show_str( 7,21, 1, PROT.ProtKey);
|
||||
show_str( 8,21,20, PROT.ProtName);
|
||||
show_str( 9,21,50, PROT.ProtUp);
|
||||
show_str( 10,21,50, PROT.ProtDn);
|
||||
show_bool(11,21, PROT.Available);
|
||||
show_bool(12,21, PROT.Batch);
|
||||
show_bool(13,21, PROT.Bidir);
|
||||
show_str( 14,21,30, PROT.Advice);
|
||||
show_int( 15,21, PROT.Efficiency);
|
||||
show_bool(16,21, PROT.Deleted);
|
||||
show_sec( 17,21, PROT.Level);
|
||||
for (;;) {
|
||||
set_color(WHITE, BLACK);
|
||||
show_str( 7,21, 1, PROT.ProtKey);
|
||||
show_str( 8,21,20, PROT.ProtName);
|
||||
show_str( 9,21,50, PROT.ProtUp);
|
||||
show_str( 10,21,50, PROT.ProtDn);
|
||||
show_bool(11,21, PROT.Available);
|
||||
show_bool(12,21, PROT.Internal);
|
||||
show_str( 13,21,30, PROT.Advice);
|
||||
show_int( 14,21, PROT.Efficiency);
|
||||
show_bool(15,21, PROT.Deleted);
|
||||
show_sec( 16,21, PROT.Level);
|
||||
|
||||
j = select_menu(11);
|
||||
switch(j) {
|
||||
case 0: crc1 = 0xffffffff;
|
||||
crc1 = upd_crc32((char *)&PROT, crc1, sizeof(PROT));
|
||||
if (crc != crc1) {
|
||||
if (yes_no((char *)"Record is changed, save") == 1) {
|
||||
working(1, 0, 0);
|
||||
if ((fil = fopen(mfile, "r+")) == NULL) {
|
||||
working(2, 0, 0);
|
||||
return -1;
|
||||
}
|
||||
fseek(fil, offset, 0);
|
||||
fwrite(&PROT, sizeof(PROT), 1, fil);
|
||||
fclose(fil);
|
||||
ProtUpdated = 1;
|
||||
working(6, 0, 0);
|
||||
}
|
||||
j = select_menu(10);
|
||||
switch(j) {
|
||||
case 0: crc1 = 0xffffffff;
|
||||
crc1 = upd_crc32((char *)&PROT, crc1, sizeof(PROT));
|
||||
if (crc != crc1) {
|
||||
if (yes_no((char *)"Record is changed, save") == 1) {
|
||||
working(1, 0, 0);
|
||||
if ((fil = fopen(mfile, "r+")) == NULL) {
|
||||
working(2, 0, 0);
|
||||
return -1;
|
||||
}
|
||||
fseek(fil, offset, 0);
|
||||
fwrite(&PROT, sizeof(PROT), 1, fil);
|
||||
fclose(fil);
|
||||
ProtUpdated = 1;
|
||||
working(6, 0, 0);
|
||||
}
|
||||
IsDoing("Browsing Menu");
|
||||
return 0;
|
||||
case 1: E_UPS( 7,21,1, PROT.ProtKey, "The ^Key^ to select this protocol")
|
||||
case 2: E_STR( 8,21,20,PROT.ProtName, "The ^name^ of this protocol")
|
||||
case 3: E_STR( 9,21,50,PROT.ProtUp, "The ^Upload^ path, binary and parameters")
|
||||
case 4: E_STR( 10,21,50,PROT.ProtDn, "The ^Download^ path, binary and parameters")
|
||||
case 5: E_BOOL(11,21, PROT.Available, "Is this protocol ^available^")
|
||||
case 6: E_BOOL(12,21, PROT.Batch, "Is this a ^batching^ transfer protocol")
|
||||
case 7: E_BOOL(13,21, PROT.Bidir, "Is this protocol ^bidirectional^")
|
||||
case 8: E_STR( 14,21,30,PROT.Advice, "A small ^advice^ to the user, eg \"Press Ctrl-X to abort\"")
|
||||
case 9: E_INT( 15,21, PROT.Efficiency,"The ^efficiency^ in % of this protocol")
|
||||
case 10:E_BOOL(16,21, PROT.Deleted, "Is this protocol ^Deleted^")
|
||||
case 11:E_SEC( 17,21, PROT.Level, "8.5.11 PROTOCOL SECURITY LEVEL", s_protrec)
|
||||
}
|
||||
}
|
||||
IsDoing("Browsing Menu");
|
||||
return 0;
|
||||
case 1: E_UPS( 7,21,1, PROT.ProtKey, "The ^Key^ to select this protocol")
|
||||
case 2: E_STR( 8,21,20,PROT.ProtName, "The ^name^ of this protocol")
|
||||
case 3: E_STR( 9,21,50,PROT.ProtUp, "The ^Upload^ path, binary and parameters")
|
||||
case 4: E_STR( 10,21,50,PROT.ProtDn, "The ^Download^ path, binary and parameters")
|
||||
case 5: E_BOOL(11,21, PROT.Available, "Is this protocol ^available^")
|
||||
case 6: E_BOOL(12,21, PROT.Internal, "Is this a ^internal^ transfer protocol")
|
||||
case 7: E_STR( 13,21,30,PROT.Advice, "A small ^advice^ to the user, eg \"Press Ctrl-X to abort\"")
|
||||
case 8: E_INT( 14,21, PROT.Efficiency,"The ^efficiency^ in % of this protocol")
|
||||
case 9: E_BOOL(15,21, PROT.Deleted, "Is this protocol ^Deleted^")
|
||||
case 10:E_SEC( 16,21, PROT.Level, "8.5.11 PROTOCOL SECURITY LEVEL", s_protrec)
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -562,8 +555,7 @@ int bbs_prot_doc(FILE *fp, FILE *toc, int page)
|
||||
add_webtable(wp, (char *)"Upload command", PROT.ProtUp);
|
||||
add_webtable(wp, (char *)"Download command", PROT.ProtDn);
|
||||
add_webtable(wp, (char *)"Available", getboolean(PROT.Available));
|
||||
add_webtable(wp, (char *)"Batch protocol", getboolean(PROT.Batch));
|
||||
add_webtable(wp, (char *)"Bidirectional", getboolean(PROT.Bidir));
|
||||
add_webtable(wp, (char *)"Internal protocol", getboolean(PROT.Internal));
|
||||
add_webtable(wp, (char *)"User advice", PROT.Advice);
|
||||
sprintf(temp, "%d%%", PROT.Efficiency);
|
||||
add_webtable(wp, (char *)"Efficiency", temp);
|
||||
@ -573,16 +565,15 @@ int bbs_prot_doc(FILE *fp, FILE *toc, int page)
|
||||
close_webdoc(wp);
|
||||
}
|
||||
|
||||
fprintf(fp, " Selection key %s\n", PROT.ProtKey);
|
||||
fprintf(fp, " Protocol name %s\n", PROT.ProtName);
|
||||
fprintf(fp, " Upload command %s\n", PROT.ProtUp);
|
||||
fprintf(fp, " Download command %s\n", PROT.ProtDn);
|
||||
fprintf(fp, " Available %s\n", getboolean(PROT.Available));
|
||||
fprintf(fp, " Batch protocol %s\n", getboolean(PROT.Batch));
|
||||
fprintf(fp, " Bidirectional %s\n", getboolean(PROT.Bidir));
|
||||
fprintf(fp, " User advice %s\n", PROT.Advice);
|
||||
fprintf(fp, " Efficiency %d%%\n", PROT.Efficiency);
|
||||
fprintf(fp, " Security level %s\n", get_secstr(PROT.Level));
|
||||
fprintf(fp, " Selection key %s\n", PROT.ProtKey);
|
||||
fprintf(fp, " Protocol name %s\n", PROT.ProtName);
|
||||
fprintf(fp, " Upload command %s\n", PROT.ProtUp);
|
||||
fprintf(fp, " Download command %s\n", PROT.ProtDn);
|
||||
fprintf(fp, " Available %s\n", getboolean(PROT.Available));
|
||||
fprintf(fp, " Internal protocol %s\n", getboolean(PROT.Internal));
|
||||
fprintf(fp, " User advice %s\n", PROT.Advice);
|
||||
fprintf(fp, " Efficiency %d%%\n", PROT.Efficiency);
|
||||
fprintf(fp, " Security level %s\n", get_secstr(PROT.Level));
|
||||
fprintf(fp, "\n\n");
|
||||
|
||||
j++;
|
||||
|
Reference in New Issue
Block a user