138 lines
3.3 KiB
C
138 lines
3.3 KiB
C
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
smtpdata.h
|
|
|
|
Abstract:
|
|
|
|
This module contains declarations for globals.
|
|
|
|
Author:
|
|
|
|
Johnson Apacible (JohnsonA) 26-Sept-1995
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _SMTPDATA_
|
|
#define _SMTPDATA_
|
|
|
|
//
|
|
// tracing
|
|
//
|
|
|
|
#define INIT_TRACE InitAsyncTrace( )
|
|
#define TERM_TRACE TermAsyncTrace( )
|
|
#define ENTER( _x_ ) TraceFunctEnter( _x_ );
|
|
#define LEAVE TraceFunctLeave( );
|
|
|
|
|
|
#define SMTP_UNRECOG_COMMAND_CODE 500
|
|
#define SMTP_SYNTAX_ERROR_CODE 501
|
|
#define SMTP_NOT_IMPLEMENTED_CODE 502
|
|
#define SMTP_BAD_SEQUENCE_CODE 503
|
|
#define SMTP_PARAM_NOT_IMPLEMENTED_CODE 504
|
|
|
|
#define SMTP_SYS_STATUS_CODE 211
|
|
#define SMTP_SERVICE_CLOSE_CODE 221
|
|
#define SMTP_SERVICE_READY_CODE 220
|
|
#define SMTP_OK_CODE 250
|
|
#define SMTP_USER_NOT_LOCAL_CODE 251
|
|
#define SMTP_MBOX_BUSY_CODE 450
|
|
#define SMTP_MBOX_NOTFOUND_CODE 550
|
|
#define SMTP_ERROR_PROCESSING_CODE 451
|
|
#define SMTP_USERNOTLOCAL_CODE 551
|
|
#define SMTP_INSUFF_STORAGE_CODE 452
|
|
#define SMTP_ACTION_ABORTED_CODE 552
|
|
#define SMTP_ACTION_NOT_TAKEN_CODE 553
|
|
#define SMTP_START_MAIL_CODE 354
|
|
#define SMTP_TRANSACT_FAILED_CODE 554
|
|
|
|
#define SMTP_SERVICE_UNAVAILABLE_CODE 421
|
|
#define SMTP_COMPLETE_FAILURE_DWORD 5
|
|
|
|
enum RCPTYPE{LOCAL_NAME, REMOTE_NAME, ALIAS_NAME};
|
|
|
|
#define NORMAL_RCPT (char)'R'
|
|
#define ERROR_RCPT (char)'E'
|
|
//
|
|
// use the current command for transaction logging
|
|
//
|
|
#define USE_CURRENT 0xFFFFFFFF
|
|
|
|
static const char * LOCAL_TRANSCRIPT = "ltr";
|
|
static const char * REMOTE_TRANSCRIPT = "rtr";
|
|
static const char * ALIAS_EXT = "dl";
|
|
|
|
#define ISNULLADDRESS(Address) ((Address[0] == '<') && (Address[1] == '>'))
|
|
|
|
typedef char RCPT_TYPE;
|
|
|
|
|
|
//
|
|
// Statistics
|
|
//
|
|
|
|
extern SMTP_STATISTICS_0 g_SmtpStat;
|
|
extern SMTPCONFIG * g_SmtpConfig;
|
|
extern TIME_ZONE_INFORMATION tzInfo;
|
|
extern PERSIST_QUEUE * g_LocalQ;
|
|
extern PERSIST_QUEUE * g_RemoteQ;
|
|
extern BOOL g_IsShuttingDown;
|
|
extern BOOL g_QIsShuttingDown;
|
|
extern BOOL g_RetryQIsShuttingDown;
|
|
|
|
#define INITIALIZE_INBOUNDPOOL 0x00000001
|
|
#define INITIALIZE_OUTBOUNDPOOL 0x00000002
|
|
#define INITIALIZE_ADDRESSPOOL 0x00000004
|
|
#define INITIALIZE_MAILOBJPOOL 0x00000008
|
|
#define INITIALIZE_CBUFFERPOOL 0x00000010
|
|
#define INITIALIZE_CIOBUFFPOOL 0x00000020
|
|
|
|
extern DWORD g_SmtpInitializeStatus;
|
|
|
|
|
|
#define BUMP_COUNTER(counter) \
|
|
InterlockedIncrement((LPLONG) &(g_SmtpStat. counter))
|
|
|
|
#define DROP_COUNTER(counter) \
|
|
InterlockedDecrement((LPLONG) &(g_SmtpStat. counter))
|
|
|
|
#define ADD_COUNTER(counter, value) \
|
|
INTERLOCKED_ADD_CHEAP(&(g_SmtpStat. counter), value)
|
|
|
|
#define ADD_BIGCOUNTER(counter, value) \
|
|
INTERLOCKED_BIGADD_CHEAP(&(g_SmtpStat. counter), value)
|
|
|
|
/*++
|
|
|
|
Returns a UniqueFilename for an e-mail message.
|
|
The caller should loop through this call and a call to
|
|
CreateFile with the CREATE_NEW flag. If the Create fails due
|
|
to YYY, then the caller should loop again.
|
|
|
|
Arguments:
|
|
|
|
psz - a buffer
|
|
pdw - IN the size of the buffer,
|
|
OUT: the size of the buffer needed (error == ERROR_MORE_DATA)
|
|
or the size of the filename.
|
|
|
|
Returns:
|
|
|
|
TRUE on SUCCESS
|
|
FALSE if buffer isn't big enough.
|
|
|
|
--*/
|
|
BOOL GetUniqueFilename(
|
|
IN OUT LPTSTR psz,
|
|
IN OUT LPDWORD pdw
|
|
);
|
|
|
|
#endif // _SMTPDATA_
|
|
|