
/* edward - I removed the TI_* constants that were used internally */
/* (TI_TEXTDOC, TI_MENU, etc.) */

#define PRIVATE static
#define EXTERN extern

#define GWVERSION             "WWW-TI_GATE:1.7"  /* changed from 1.6, edward */

#ifdef MIT

#ifdef TEST
#  define LOCAL_TISERVER        "tiserve.mit.edu"  /* MIT server */
#  define LOCAL_TIPORT          "9000"
#  define LOCAL_SOURCES_NODEID  "23194"          /* MIT sources node ID */
#  define WELCOMEDOC            "/afs/athena.mit.edu/software/techinfo/www/gw-welcome.html"
#  define WORLDTIDOC            "/afs/athena.mit.edu/software/techinfo/www/worldwide_ti.html"
#  define SCHEMESFILE           "/afs/athena.mit.edu/software/techinfo/www/schemes"
   PRIVATE char logfilename[] = "/afs/zone.mit.edu/user/edward/logs/log";

#else
#  define LOCAL_TISERVER        "tiserve.mit.edu"  /* MIT ti server */
#  define LOCAL_TIPORT          "9000"
#  define LOCAL_SOURCES_NODEID  "23194"          /* MIT sources node ID */
#  define WELCOMEDOC            "/afs/athena.mit.edu/software/techinfo/www/gw-welcome.html"
#  define WORLDTIDOC            "/afs/athena.mit.edu/software/techinfo/www/worldwide_ti.html"
#  define SCHEMESFILE           "/usr/www/lib/tigw-schemes"
   PRIVATE char logfilename[] = "/usr/www/logs/tigw";

#endif /* TEST */

#  define I_SHORTCUT             "/techinfo/"
#endif   /* MIT */

#ifdef PENN

#ifdef TEST
#  define LOCAL_TISERVER        "penninfo-srv.upenn.edu" /* Penn's server */
#  define LOCAL_TIPORT          "9000"
#  define LOCAL_SOURCES_NODEID  "876"
#  define WELCOMEDOC            "/tmp/www-gw-welcome.html"
#  define WORLDTIDOC            "/tmp/www-gw-worldwide_ti.html"
#  define SCHEMESFILE           "/tmp/www-gw-schemes"
   PRIVATE char logfilename[] = "/tmp/www-gw-log";

#else
#  define LOCAL_TISERVER        "penninfo-srv.upenn.edu" /* Penn's server */
#  define LOCAL_TIPORT          "9000"
#  define LOCAL_SOURCES_NODEID  "876"
#  define WELCOMEDOC            "/usr/local/techinfo/www-gw/docs/welcome.html"
#  define WORLDTIDOC            "/usr/local/techinfo/www-gw/docs/worldwide_ti.html"
#  define SCHEMESFILE           "/usr/local/techinfo/www-gw/schemes"
   PRIVATE char logfilename[] = "/usr/local/techinfo/www-gw/log";
#endif /* TEST */

#  define I_SHORTCUT             "/penninfo/"
#endif  /* PENN */

/* URLs to icons used by the gateway */
#define ICON_PATH "http://web.mit.edu/afs/athena.mit.edu/software/techinfo/lib/graphics/"
#define TECHINFO_GIF           ICON_PATH ## "logo.gif"
#define LOGO_GIF               ICON_PATH ## "smallogo.gif"
#define FOLDER_GIF             ICON_PATH ## "folder.gif"
#define DOC_GIF                ICON_PATH ## "html.gif"
#define IMAGE_GIF              ICON_PATH ## "gif.gif"
#define AUDIO_GIF              ICON_PATH ## "audio.gif"
#define VIDEO_GIF              ICON_PATH ## "video.gif"
#define BINARY_GIF             ICON_PATH ## "floppy.gif"
#define BINHEX_GIF             ICON_PATH ## "apple.gif"
#define LOCK_GIF               ICON_PATH ## "lock.gif"
#define UNKNOWN_GIF            ICON_PATH ## "doc.gif"

#define I_DELIM                '/'
#define I_KEYWD_SRCH           "Keyword"
#define I_TITLE_SRCH           "Title"
#define I_WHATSNEW_SRCH        "Whats-New"
#define I_SOURCE_SRCH          "Owner"
#define I_FULLTEXT_SRCH        "Full-Text"

#define I_IMAGE_STR            "gif"
#define I_HTML_STR             "html"
#define I_LINK_STR             "link"
/* edward - more type extensions */
#define I_BINHEX_STR           "hqx"
#define I_JPEG_STR             "jpg"
#define I_JFIF_STR             "jfif"
#define I_MPEG_STR             "mpg"
#define I_QUICKTIME_STR        "mov"
#define I_ULAW_STR             "au"
#define I_ZIP_STR              "zip"
#define I_RTF_STR              "rtf"
#define I_PS_STR               "ps"
#define I_EPS_STR              "eps"
#define I_AIFF_STR             "aiff"
#define I_AIFF_C_STR           "aifc"
#define I_WAVE_STR             "wav"
#define I_TIFF_STR             "tiff"
#define I_DVI_STR              "dvi"
#define I_MS_EXCEL_STR         "xls"

#define I_IMAGE                'I'
#define I_LINK                 'L'
#define I_HTML                 'H'
#define I_DYNAMIC_EXT          'E'
/* edward - more possible types */
#define I_ASCII                'A'
#define I_BINARY               'B'
#define I_UNKNOWN              'U'

#define TI_MAINMENU_ID         "0"

#define I_GET                   1
#define I_POST                  2

#define MAX_NLIST_SIZE         350
   /* max number of nodes to get from the ti server for sending to client */

#define TIMAXFIELDS            40
#define TIDELIM                ':'

#define TI_GIFIMAGE_FLAG       0x40
#define TI_TELNETSESS          0x2000

/* How many characters per node description line in the TI protocol? 
   Really only 4K, but it can't hurt to go over */
#define NLIST_BUFSIZ           5000

#define TICMD_KEYWD_SRCH         "b"
#define TICMD_TITLE_SRCH         "T"
#define TICMD_WHATSNEW_SRCH      "I"
#define TICMD_SOURCE_SRCH        "K"
#define TICMD_FULLTEXT_SRCH      "J"


typedef struct {
  char *attrib;
  char *val;
} attribute_value_pairs;


struct nodeinfo {
  char buf[NLIST_BUFSIZ];
  char *nodeid;
  char *date;
  char *title;
  char *source;
  char *flags;
  char *keywords;
  char *linkinfo;
  char *locker;
  char *file;
  char type;
/* edward - ti_type needs to be unsigned because valid node types */
/* range from 1 to 255 */
  unsigned char ti_type;
  char extension[20];
  int depth;
  int numchildren;
};



struct sourceinfo {
  int  gotsrcinfo;
  char buf[1000];
  char *name;
  char *longname;
  char *people;
  char *phone;
  char *email;
};


#define TOTCHARSTR              "Total Characters :"
#define LASTMODSTR              "This document was last modified on "
#define TICMD_VERSION           "v:%s"
#define TICMD_SHOWFLAGS         "O:2"
#define TICMD_GETDOC            "t:%s:%d:%d"


