/* * request from/reply to andrew mail watcher * $Header: /afs/andrew.cmu.edu/usr13/aw0g/gms/RCS/gms.h,v 1.4 90/07/20 11:08:53 aw0g Exp $ */ #ifndef uint8 #define uint8 unsigned char #endif #ifndef int32 #define int32 long #define uint32 unsigned long #endif #ifndef uint16 #define uint16 unsigned short int #endif #define GMS_VERS_MAJ (2) #define GMS_VERS_MIN (14) #define gms_MIN_TYPE (23) #define gms_ask_mail (23) /*tell me about these users*/ #define gms_answer_mail (24) /*here is info on them*/ #define gms_news (25) /*server sent something unsolicited*/ #define gms_ack (26) /*reply to server*/ #define gms_MAX_TYPE (26) #define GMS_MAX_STR_LEN (400) #define gms_fl_mail (1) /*set if this is a mail answer*/ #define gms_fl_error (2) /*set if this in an error answer*/ #define gms_fl_nocache (4) /*this is a live anwer*/ struct gms_mail_status_R { uint8 gms_vers_maj; /*major version number*/ uint8 gms_vers_min; /*minor version number*/ uint8 gms_type; /*gms packet type*/ uint8 gms_flags; /*status flags*/ uint16 gms_change_count0; /*change count of messages for this user*/ uint16 gms_change_count1; /*change count of messages for this that*/ int32 gms_id; /*packet id to make ack esayer*/ int32 gms_poll_time; /*mac sends cur poll time, server answers min poll time*/ char gms_text_buf[GMS_MAX_STR_LEN]; /*null terminated string*/ }; typedef struct gms_mail_status_R gms_mail_status,*gms_mail_status_pt; #define GMS_nameoffset (16) /*start of username text*/ #define GMS_max_size (GMS_nameoffset+GMS_MAX_STR_LEN) /* * get size of data to transmit on net */ #define GMS_real_size(xx_arg) (GMS_nameoffset+strlen((xx_arg).gms_text_buf)+1)