home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1999 September
/
CHIPCD_9_99.iso
/
software
/
uaktualnienia
/
OptionPackPL
/
iis4_07.cab
/
notify.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-04-27
|
3KB
|
111 lines
#ifndef __NOTIFY_H__
#define __NOTIFY_H__
#define SZ_SESSION_ID_COOKIE_NAME "ASPSESSIONID"
#define SZ_SESSION_ID_COOKIE_NAME_SIZE 12 // strlen(SZ_SESSION_ID_COOKIE_NAME)
#define MAX_SESSION_ID_SIZE 24
// the different types of munging available
// off - no munging will be done
// on - munging will always be done
// smart - the munger will "test the waters" to see if cookies are getting through for each session.
// If they are, the munger will not be effectively off for this session. Otherwise, cookies
// will be munged as usual.
typedef enum
{
MungeMode_Off=0,
MungeMode_On,
MungeMode_Smart
} MungeModeT;
// the munging mode. This will be read from the registry upon initialization
extern int g_mungeMode;
// the session ID size is either 16 or 24 characters (depending on the server version)
extern long g_SessionIDSize;
extern CHAR g_szCookieExtra[];
// states for OnSendRawData
enum HN_STATE {
HN_UNDEFINED = 0,
HN_SEEN_URL,
HN_IN_HEADER,
HN_IN_BODY,
};
enum CONTENT_TYPE {
CT_UNDEFINED = 0,
CT_TEXT_HTML,
};
class CNotification
{
public:
enum {SPARE_BYTES = 2};
static
CNotification*
Create(
PHTTP_FILTER_CONTEXT pfc,
LPCSTR pszCookie);
static
void
Destroy(
PHTTP_FILTER_CONTEXT pfc);
static
CNotification*
Get(
PHTTP_FILTER_CONTEXT pfc)
{return static_cast<CNotification*>(pfc->pFilterContext);}
static
CNotification*
SetSessionID(
PHTTP_FILTER_CONTEXT pfc,
LPCSTR pszCookie);
LPCSTR
SessionID() const
{return m_szSessionID;}
HN_STATE
State() const
{return m_nState;}
void
AppendToken(
PHTTP_FILTER_CONTEXT pfc,
LPCSTR pszNewData,
int cchNewData);
bool MungingOff() const
{return ( !m_fEatCookies ) && ( !m_fTestCookies );}
protected:
CNotification(
LPCSTR pszCookie);
~CNotification();
public:
HN_STATE m_nState;
CONTENT_TYPE m_ct;
CHAR m_szSessionID[ MAX_SESSION_ID_SIZE ];
LPSTR m_pszUrl;
LPBYTE m_pbPartialToken;
int m_cbPartialToken;
LPBYTE m_pbTokenBuffer;
int m_cbTokenBuffer;
DWORD m_cchContentLength;
bool m_fEatCookies;
bool m_fTestCookies;
};
#endif // __NOTIFY_H__