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 >
Text File  |  1993-03-11  |  7KB  |  271 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //                                                                           //
  3. //                       Postdoor Salt Script 1.2                            //
  4. //                                                                           //
  5. //                        - use with ACCESS                                  //
  6. //                                                                           //
  7. // Supports error checking on failed file transfers.  Deletes the dowload    //
  8. // packet on failed download.                                                //
  9. //                                                                           //
  10. // Uses a config file to enter POSTLINK mail directory and ID number         //
  11. //                                                                           //
  12. // Now checks for POSTDOOR doing message packing and hangs up.               //
  13. //                                                                           //
  14. // Added config option to leave online even during message packs             //
  15. //                                                                           //
  16. //                                                                           //
  17. //                                                                           //
  18. ///////////////////////////////////////////////////////////////////////////////
  19. STR LIST[11];
  20.  
  21. STR STRING[150],
  22.     MAIL[64],
  23.     POSTID[4],
  24.     STAYON[1],
  25.     UP_SAVE[64],
  26.     DOWN_SAVE[64];
  27.  
  28. INT STAT,
  29.     TRANSFER,
  30.     stage,
  31.     T1,
  32.     T2,
  33.     T3,
  34.     T4,
  35.     T5,
  36.     T6,
  37.     T7,
  38.     TMARK,
  39.     STOP;
  40.  
  41.  
  42. //////////////////////////////////////////////////////////////////////////////
  43.  
  44. MAIN ()
  45.     {
  46.      read_cfg_file();
  47.  
  48.      COPYSTR(_UP_DIR,UP_SAVE,0,64);
  49.      COPYSTR(_DOWN_DIR,DOWN_SAVE,0,64);
  50.      COPYSTR(MAIL,_DOWN_DIR,0,64);
  51.      COPYSTR(MAIL,_UP_DIR,0,64);
  52.      _zmod_auto=0;
  53.      CPUTS ("postdoor");
  54.      cputs ("^M");
  55.  
  56.      stage = POSTLINK();
  57.      if (stage == 0)
  58.        {
  59.         cleanup();
  60.        }
  61.      else if (stage == -1)
  62.        {
  63.         cleanup();
  64.        }
  65.      else if (stage == -2)
  66.        {
  67.         cleanup();
  68.        }
  69.      else if (stage == -3)
  70.        {
  71.         cleanup();
  72.        }
  73.     }
  74. //////////////////////////////////////////////////////////////////////////////
  75.  
  76. POSTLINK ()
  77.     {
  78.      str filename[12];
  79.  
  80.       WHILE (CARRIER())
  81.       {
  82.             T1 = TRACK ("Ready to receive PREAMBLE",0);
  83.             T2 = TRACK ("Ready to receive u",0);
  84.             T3 = TRACK ("Ready to send d",0);
  85.             t4 = track("space bar to stay online",0);
  86.             T5 = TRACK ("Done.",0);
  87.             t6 = track("Skipping pack of channel",0);
  88.             t7 = track("Packing channel",0);
  89.             TMARK = TIMER_START (6200);           // Wait up to 20 sec. for response
  90.             WHILE (NOT TIME_UP (TMARK))
  91.               {
  92.                update_term();
  93.                TERMINAL ();
  94.                STAT = TRACK_HIT (0);
  95.                IF (STAT == T1)
  96.                 {
  97.                   TRANSFER = 1;
  98.                   TRANSFER = SEND('Z',"PREAMBLE");
  99.                   if (transfer == -2)
  100.                     {
  101.                      return(-1);
  102.                     }
  103.                   else if (transfer == -1)
  104.                     {
  105.                     return(-1);
  106.                     }
  107.                   else
  108.                     {
  109.                      TRACK_FREE(T1);
  110.                     }
  111.                   
  112.                 }
  113.                ELSE IF (STAT == T2)
  114.                 {
  115.                  TRANSFER = 1;
  116.                  filename = "U";
  117.                  strcat(filename, POSTID);
  118.                  strcat(filename,".ZIP");
  119.                  TRANSFER = SEND ('Z',filename);
  120.                   if (transfer == -2)
  121.                     {
  122.                      return(-2);
  123.                     }
  124.                   else if (transfer == -1)
  125.                     {
  126.                     return(-2);
  127.                     }
  128.                   else
  129.                     {
  130.                      TRACK_FREE(T2);
  131.                     }
  132.  
  133.                 }
  134.                ELSE IF (STAT == T3)
  135.                 {
  136.                  TRANSFER = 1;
  137.                  filename = "D";
  138.                  strcat(filename, POSTID);
  139.                  strcat(filename,".ZIP");
  140.                  TRANSFER = RECEIVE ('Z',filename);
  141.                   if (transfer == -2)
  142.                     {
  143.                      return(-3);
  144.                     }
  145.                   else if (transfer == -1)
  146.                     {
  147.                      copystr(mail,string);
  148.                      strcat(string,filename);
  149.                      fdelete(string);
  150.                      return(-3);
  151.                     }
  152.                   else
  153.                     {
  154.                      TRACK_FREE(T3);
  155.                     }
  156.                 }
  157.                ELSE IF (STAT == T4)
  158.                 {
  159.                   cputs (" ");
  160.                   track_free(t4);
  161.                  
  162.                 }
  163.                ELSE IF (STAT == T5)
  164.                 {
  165.                   track_free(t5);
  166.                   return(0);
  167.                  
  168.                 }
  169.                ELSE IF (STAT == T6)
  170.                 {
  171.                   if (STAYON=="y")
  172.                     {
  173.                      track_free(t6);
  174.                      track_free(t7);
  175.                      return(0);
  176.                     }
  177.                   
  178.                   track_free(t6);
  179.                   track_free(t7);
  180.                   HANGUP ();
  181.                   return(0);
  182.                  
  183.                 }
  184.                ELSE IF (STAT == T7)
  185.                 {
  186.                   if (STAYON=="y")
  187.                     {
  188.                      track_free(t6);
  189.                      track_free(t7);
  190.                      return(0);
  191.                     }
  192.                   
  193.                   track_free(t6);
  194.                   track_free(t7);
  195.                   HANGUP ();
  196.                   return(0);
  197.                  
  198.                 }
  199.               }
  200.            }
  201.          IF (TIME_UP (TMARK))
  202.           {
  203.            HANGUP ();
  204.            update_term();
  205.           }
  206.          TIMER_FREE (TMARK);
  207.  
  208.     }
  209.  
  210. /////////////////////////////////////////////////////////////////////////////
  211. //                      CLEANUP
  212. ////////////////////////////////////////////////////////////////////////////
  213.  
  214. cleanup()
  215.   {
  216.    COPYSTR(UP_SAVE,_UP_DIR,0,64);
  217.    COPYSTR(DOWN_SAVE,_DOWN_DIR,0,64);
  218.    _zmod_auto=1;
  219.   }
  220.  
  221. ////////////////////////////////////////////////////////////////////////////
  222. //         Read Configuration File
  223. ////////////////////////////////////////////////////////////////////////////
  224.  
  225. read_cfg_file()
  226.   {
  227.     str s[80];
  228.  int f, stat;
  229.  
  230.  s = _telix_dir;
  231.  strcat(s, "POSTDOOR.CFG");
  232.  
  233.  f = fopen(s, "r");
  234.  if (!f)
  235.   {
  236.    clear_scr();
  237.    pstraxy ("Can't open ",8,12,15);
  238.    prints(s);
  239.    delay(40);
  240.    return -1;
  241.   }
  242.  
  243.  stat = fgets(s, 80, f);
  244.  if (stat == -1)
  245.   goto got_error;
  246.  MAIL = s;
  247.  
  248.  stat = fgets(s, 80, f);
  249.  if (stat == -1)
  250.   goto got_error;
  251.  POSTID = s;
  252.  
  253.  
  254.  stat = fgets(s, 80, f);
  255.  if (stat == -1)
  256.   goto got_error;
  257.  STAYON = s;
  258.  STAYON = (STAYON | 0X20);
  259.  
  260.  fclose(f);
  261.  return 1;
  262.  
  263. // jump here if error
  264.  
  265.  got_error:
  266.   fclose(f);
  267.   return -1;
  268.  
  269.   }
  270.  
  271.