home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
p
/
postd12.zip
/
POSTDOOR.SLT
< prev
next >
Wrap
Text File
|
1993-03-11
|
7KB
|
271 lines
///////////////////////////////////////////////////////////////////////////////
// //
// Postdoor Salt Script 1.2 //
// //
// - use with ACCESS //
// //
// Supports error checking on failed file transfers. Deletes the dowload //
// packet on failed download. //
// //
// Uses a config file to enter POSTLINK mail directory and ID number //
// //
// Now checks for POSTDOOR doing message packing and hangs up. //
// //
// Added config option to leave online even during message packs //
// //
// //
// //
///////////////////////////////////////////////////////////////////////////////
STR LIST[11];
STR STRING[150],
MAIL[64],
POSTID[4],
STAYON[1],
UP_SAVE[64],
DOWN_SAVE[64];
INT STAT,
TRANSFER,
stage,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
TMARK,
STOP;
//////////////////////////////////////////////////////////////////////////////
MAIN ()
{
read_cfg_file();
COPYSTR(_UP_DIR,UP_SAVE,0,64);
COPYSTR(_DOWN_DIR,DOWN_SAVE,0,64);
COPYSTR(MAIL,_DOWN_DIR,0,64);
COPYSTR(MAIL,_UP_DIR,0,64);
_zmod_auto=0;
CPUTS ("postdoor");
cputs ("^M");
stage = POSTLINK();
if (stage == 0)
{
cleanup();
}
else if (stage == -1)
{
cleanup();
}
else if (stage == -2)
{
cleanup();
}
else if (stage == -3)
{
cleanup();
}
}
//////////////////////////////////////////////////////////////////////////////
POSTLINK ()
{
str filename[12];
WHILE (CARRIER())
{
T1 = TRACK ("Ready to receive PREAMBLE",0);
T2 = TRACK ("Ready to receive u",0);
T3 = TRACK ("Ready to send d",0);
t4 = track("space bar to stay online",0);
T5 = TRACK ("Done.",0);
t6 = track("Skipping pack of channel",0);
t7 = track("Packing channel",0);
TMARK = TIMER_START (6200); // Wait up to 20 sec. for response
WHILE (NOT TIME_UP (TMARK))
{
update_term();
TERMINAL ();
STAT = TRACK_HIT (0);
IF (STAT == T1)
{
TRANSFER = 1;
TRANSFER = SEND('Z',"PREAMBLE");
if (transfer == -2)
{
return(-1);
}
else if (transfer == -1)
{
return(-1);
}
else
{
TRACK_FREE(T1);
}
}
ELSE IF (STAT == T2)
{
TRANSFER = 1;
filename = "U";
strcat(filename, POSTID);
strcat(filename,".ZIP");
TRANSFER = SEND ('Z',filename);
if (transfer == -2)
{
return(-2);
}
else if (transfer == -1)
{
return(-2);
}
else
{
TRACK_FREE(T2);
}
}
ELSE IF (STAT == T3)
{
TRANSFER = 1;
filename = "D";
strcat(filename, POSTID);
strcat(filename,".ZIP");
TRANSFER = RECEIVE ('Z',filename);
if (transfer == -2)
{
return(-3);
}
else if (transfer == -1)
{
copystr(mail,string);
strcat(string,filename);
fdelete(string);
return(-3);
}
else
{
TRACK_FREE(T3);
}
}
ELSE IF (STAT == T4)
{
cputs (" ");
track_free(t4);
}
ELSE IF (STAT == T5)
{
track_free(t5);
return(0);
}
ELSE IF (STAT == T6)
{
if (STAYON=="y")
{
track_free(t6);
track_free(t7);
return(0);
}
track_free(t6);
track_free(t7);
HANGUP ();
return(0);
}
ELSE IF (STAT == T7)
{
if (STAYON=="y")
{
track_free(t6);
track_free(t7);
return(0);
}
track_free(t6);
track_free(t7);
HANGUP ();
return(0);
}
}
}
IF (TIME_UP (TMARK))
{
HANGUP ();
update_term();
}
TIMER_FREE (TMARK);
}
/////////////////////////////////////////////////////////////////////////////
// CLEANUP
////////////////////////////////////////////////////////////////////////////
cleanup()
{
COPYSTR(UP_SAVE,_UP_DIR,0,64);
COPYSTR(DOWN_SAVE,_DOWN_DIR,0,64);
_zmod_auto=1;
}
////////////////////////////////////////////////////////////////////////////
// Read Configuration File
////////////////////////////////////////////////////////////////////////////
read_cfg_file()
{
str s[80];
int f, stat;
s = _telix_dir;
strcat(s, "POSTDOOR.CFG");
f = fopen(s, "r");
if (!f)
{
clear_scr();
pstraxy ("Can't open ",8,12,15);
prints(s);
delay(40);
return -1;
}
stat = fgets(s, 80, f);
if (stat == -1)
goto got_error;
MAIL = s;
stat = fgets(s, 80, f);
if (stat == -1)
goto got_error;
POSTID = s;
stat = fgets(s, 80, f);
if (stat == -1)
goto got_error;
STAYON = s;
STAYON = (STAYON | 0X20);
fclose(f);
return 1;
// jump here if error
got_error:
fclose(f);
return -1;
}