#include <stdio.h>
#include "Connect.h"
#include "protocol.h"
#include "Parse.h"


typedef struct _Adr
{
  char *user;
  char *machine;
  char *hostname;
  u_long ip;
  char *vendor;
  char *program;
  char *version;
} Adr;

#include "authorize.h"

#define CONFIG "config"
extern Keywords mainwords[];
void printError()
{
  while (Error_Exists)
    {
      if (Error == PARSE_BADKEYWORD)
        fprintf(stderr, "Bad keyword in line %d.\n", (int)Error_Info);
      else
        fprintf(stderr, "%s\n", Error_String(Error));
      Error_Pop();
    }
}

#define E(x) if (x) printError()

extern ParseBlock *testblock;
int debug;
main(argc, argv)
int     argc;
char    *argv[];
{
MasterBlock *block;
ParseBlock  *top;
struct _Adr desc;
int rc;

if (argc < 3) {
  printf("give user & hostname as args\n");
  exit();
}
printf("arg 1 = %s, arg 2 = %s\n",argv[1],argv[2]);
desc.user = argv[1];
desc.machine = ""; 
desc.hostname = argv[2];
desc.ip = inet_addr(argv[3]);
desc.vendor = "MIT";
desc.program = "test";
desc.version = "0.0";

debug = 1;

E(Parse_NewMasterBlock(&block));
E(Parse_NewBlock(block,CONFIG, &top));
E(Parse_RegisterKeywords(block,"server",mainwords));
E(Parse_RegisterKeywords(block,"authorization",authorizeWords));
E(Parse_ParseFile(block,"config"));
Parse_SetCurrentBlock(block,top);

E(Authorize_LoadInfo(&desc));
rc = Authorized(block,testblock);
if (rc == 0)
  printf("GOOD\n");
else
  printError();
}












