Windows2003-3790/inetsrv/iis/svcs/smtp/server/smtpdata.h
2020-09-30 16:53:55 +02:00

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_