/* * K E R M I T */ #include stdio #include fab #include nam #include descrip #define debug 0 /* enable/disable debugging */ #define MAXPACK 94 /* Maximum packet size */ #define SOH 1 /* Start of header */ #define SP 32 /* ASCII space */ #define DEL 127 /* Delete (rubout) */ #define MAXTRY 5 /* Times to retry a packet */ #define MYQUOTE '#' /* Quote character I will use */ #define MYPAD 0 /* Number of padding characters I will need */ #define MYPCHAR 0 /* Padding character I need */ #define MYEOL '\r' /* End-Of-Line character I need */ #define MYTIME 10 /* Seconds after which I should be timed out */ #define TRUE -1 #define FALSE 0 #define EOF -1 /* * Declarations of global variables */ int size, /* Size of present data */ n, /* Message number */ rpsiz, /* Maximum receive packet size */ spsiz, /* Maximum send packet size */ pad, /* How much padding to send */ timint, /* Timeout for foreign host on sends */ numtry, /* Times this packet retried */ oldtry, /* Times previous packet retried */ fd, /* file pointer of file to read/write */ remfd; /* file pointer of the host's tty */ char state, /* Present state of the automaton */ padchar = '\0', /* Padding character to send */ eol = '\n', /* End-Of-Line character to send */ quote = '#', /* Quote character in incoming data */ filnam[80], /* The file name */ filestr[80], /* Resultant file name in null terminated */ /* string */ recpkt[MAXPACK], /* Receive packet buffer */ packet[MAXPACK], /* Packet buffer */ /* declare the neccesary variables to handle wildcarding */ namestr[10], /* first portion of filename */ extstr[5]; /* file type portion of filename */ struct FAB *fabp; /* pointer to a FAB block */ struct NAM *namp; /* pointer to a NAM block */ struct dsc$descriptor_s file_name; struct dsc$descriptor_s result_name;