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