/* * PDU format */ struct accountingPDU { char version; char type; /* type of record */ /* * FTP: * C - Client * S - Server * * SMTP: * N - Network delivery (send) * L - Local delivery (received) * F - Forwarded * R - Returned * D - Delivery Receipt * Q - ReQueued * J - reJected message * */ char flags; /* not currently used */ char reserved; /* for future use */ int payload_length; /* length (in bytes) of data after header */ int port; /* IP port of reporting service - 25 SMTP, 21 - FTP */ int reporterIP; /* IP address of reporter */ }; struct FTPaccounting_data { struct accountingPDU header; int start_time[2]; /* VMS time that session started */ int end_time[2]; /* VMS time that session ended */ int datasent; /* KBytes of file data sent */ int datarecv; /* KBytes of file data received */ int filessent; /* Number of files sent */ int filesrecv; /* Number of files received */ int partnerIP; /* IP address of partner */ char user[13]; /* username that operations were done under */ }; struct SMTPaccounting_data { struct accountingPDU header; int date[2]; /* Time of activity */ int msg_size; /* size of message in bytes */ int from_str_size; /* size of From: string */ int to_str_size; /* size of To: string */ int partner_str_size; /* size of ip/name of partner system */ char from_to_str[1]; /* text of From & To string */ }; #define accounting_Close 1 #define MAX_STRING_LEN 255