/*
 * This sucker takes the result of a dial command, checks it to see if there
 * was a session or not, and will keep track of the systems it couldn't
 * connect to so the scheduler will dial them less often.
 */

#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <dos/var.h>
#include <string.h>
#include <proto/dos.h>

extern struct DosLibrary *DOSBase;

void dialresp(char *address, char *response)
{
   int busy, maid;
   char temp[255], var[60];

   UnLock(CreateDir("Env:JamTool"));

   if (!strcmp(response, "CONNECT"))
   {
      sprintf(var, "env:JamTool/Bad.%s", address);
      remove(var);
      sprintf(var, "env:JamTool/Busy.%s", address);
      remove(var);
      sprintf(var, "env:JamTool/Togo.%s", address);
      remove(var);
   }
   else if (!strcmp(response, "BUSY"))
   {
      sprintf(var, "JamTool/Busy.%s", address);
      if (GetVar(var, temp, 10, GVF_GLOBAL_ONLY) > 0) busy=atoi(temp);
      sprintf(temp, "%d", busy+1);
      SetVar(var, temp, -1, GVF_GLOBAL_ONLY);
   }
   else if (!strcmp(response, "MAID"))
   {
      sprintf(var, "JamTool/Bad.%s", address);
      if (GetVar(var, temp, 10, GVF_GLOBAL_ONLY) > 0) maid=atoi(temp);
      sprintf(temp, "%d", maid+1);
      SetVar(var, temp, -1, GVF_GLOBAL_ONLY);
   }
   else if (!strcmp(response, "TIMEOUT"))
   {
      sprintf(var, "JamTool/Bad.%s", address);
      if (GetVar(var, temp, 10, GVF_GLOBAL_ONLY) > 0) maid=atoi(temp);
      sprintf(temp, "%d", maid+1);
      SetVar(var, temp, -1, GVF_GLOBAL_ONLY);
   }
}
