#include <stdio.h>
#include "Connect.h"
#include "inet-udp.h"

#define printError() fprintf(stderr, "%s\n", Error_String(Error))

main(argc, argv)
     char **argv;
{
  Addr a, b;
  Packet p;
  char *message = "hello\n";
  char name[50];

  if (!argv[1] || !argv[2])
    {
      fprintf(stderr, "usage: <from> <to>\n");
      exit(1);
    }

  if (Connect_Initialize())
    printError();
  if (Connect_RegisterDomain(&inetudp))
    printError();

  if (Connect_NameToAddress(argv[1] /* "inet-udp:get-a-life" */, &a))
    printError();
  if (Connect_NameToAddress(argv[2] /* "inet-udp:sullius-secundus/13" */, &b))
    printError();

  if (Connect_OpenConnection(a, b))
    printError();

  p.Source = a;
  p.Destination = b;
  p.packet = message;
  p.length = strlen(message);
  if (Connect_SendPacket(&p))
    printError();
  sleep(2);
  if (Connect_SendPacket(&p))
    printError();
  sleep(2);
  if (Connect_SendPacket(&p))
    printError();


  if (Connect_Wait(&p, NOTIMEOUT))
    printError();

  Connect_AddressToName(p.Source, name, sizeof(name));
  fprintf(stdout, "From: %d - %s\n", p.Source, name);
  fprintf(stdout, "%s", p.packet);
}
