// LogExtPg.cpp : implementation file // #include "stdafx.h" #include #include "logui.h" #include "LogExtPg.h" #include "wrapmb.h" #include "metatool.h" #include #include #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CLogExtended property page IMPLEMENT_DYNCREATE(CLogExtended, CPropertyPage) CLogExtended::CLogExtended() : CPropertyPage(CLogExtended::IDD), m_fInitialized( FALSE ) { //{{AFX_DATA_INIT(CLogExtended) m_bool_bytesreceived = FALSE; m_bool_bytessent = FALSE; m_bool_clientip = FALSE; m_bool_cookie = FALSE; m_bool_date = FALSE; m_bool_httpstatus = FALSE; m_bool_referer = FALSE; m_bool_serverip = FALSE; m_bool_servername = FALSE; m_bool_servicename = FALSE; m_bool_time = FALSE; m_bool_timetaken = FALSE; m_bool_uriquery = FALSE; m_bool_uristem = FALSE; m_bool_useragent = FALSE; m_bool_username = FALSE; m_bool_win32status = FALSE; m_bool_method = FALSE; m_bool_serverport = FALSE; m_bool_version = FALSE; //}}AFX_DATA_INIT } CLogExtended::~CLogExtended() { } void CLogExtended::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CLogExtended) DDX_Check(pDX, IDC_CHK_BYTESRECEIVED, m_bool_bytesreceived); DDX_Check(pDX, IDC_CHK_BYTESSENT, m_bool_bytessent); DDX_Check(pDX, IDC_CHK_CLIENTIP, m_bool_clientip); DDX_Check(pDX, IDC_CHK_COOKIE, m_bool_cookie); DDX_Check(pDX, IDC_CHK_DATE, m_bool_date); DDX_Check(pDX, IDC_CHK_HTTPSTATUS, m_bool_httpstatus); DDX_Check(pDX, IDC_CHK_REFERER, m_bool_referer); DDX_Check(pDX, IDC_CHK_SERVERIP, m_bool_serverip); DDX_Check(pDX, IDC_CHK_SERVERNAME, m_bool_servername); DDX_Check(pDX, IDC_CHK_SERVICENAME, m_bool_servicename); DDX_Check(pDX, IDC_CHK_TIME, m_bool_time); DDX_Check(pDX, IDC_CHK_TIMETAKEN, m_bool_timetaken); DDX_Check(pDX, IDC_CHK_URI_QUERY, m_bool_uriquery); DDX_Check(pDX, IDC_CHK_URISTEM, m_bool_uristem); DDX_Check(pDX, IDC_CHK_USERAGENT, m_bool_useragent); DDX_Check(pDX, IDC_CHK_USERNAME, m_bool_username); DDX_Check(pDX, IDC_CHK_WIN32STATUS, m_bool_win32status); DDX_Check(pDX, IDC_METHOD, m_bool_method); DDX_Check(pDX, IDC_CHK_SERVERPORT, m_bool_serverport); DDX_Check(pDX, IDC_CHK_VERSION, m_bool_version); //}}AFX_DATA_MAP } //-------------------------------------------------------------------------- BEGIN_MESSAGE_MAP(CLogExtended, CPropertyPage) //{{AFX_MSG_MAP(CLogExtended) ON_BN_CLICKED(IDC_CHK_BYTESRECEIVED, OnChkBytesreceived) ON_BN_CLICKED(IDC_CHK_BYTESSENT, OnChkBytessent) ON_BN_CLICKED(IDC_CHK_CLIENTIP, OnChkClientip) ON_BN_CLICKED(IDC_CHK_COOKIE, OnChkCookie) ON_BN_CLICKED(IDC_CHK_DATE, OnChkDate) ON_BN_CLICKED(IDC_CHK_HTTPSTATUS, OnChkHttpstatus) ON_BN_CLICKED(IDC_CHK_REFERER, OnChkReferer) ON_BN_CLICKED(IDC_CHK_SERVERIP, OnChkServerip) ON_BN_CLICKED(IDC_CHK_SERVERNAME, OnChkServername) ON_BN_CLICKED(IDC_CHK_SERVICENAME, OnChkServicename) ON_BN_CLICKED(IDC_CHK_TIME, OnChkTime) ON_BN_CLICKED(IDC_CHK_TIMETAKEN, OnChkTimetaken) ON_BN_CLICKED(IDC_CHK_URI_QUERY, OnChkUriQuery) ON_BN_CLICKED(IDC_CHK_URISTEM, OnChkUristem) ON_BN_CLICKED(IDC_CHK_USERAGENT, OnChkUseragent) ON_BN_CLICKED(IDC_CHK_USERNAME, OnChkUsername) ON_BN_CLICKED(IDC_CHK_WIN32STATUS, OnChkWin32status) ON_BN_CLICKED(IDC_METHOD, OnMethod) //}}AFX_MSG_MAP ON_COMMAND(ID_HELP_FINDER, DoHelp) ON_COMMAND(ID_HELP, DoHelp) ON_COMMAND(ID_CONTEXT_HELP, DoHelp) ON_COMMAND(ID_DEFAULT_HELP, DoHelp) END_MESSAGE_MAP() //--------------------------------------------------------------------------- void CLogExtended::DoHelp() { WinHelp( HIDD_LOGUI_EXTENDED ); } //-------------------------------------------------------------------------- void CLogExtended::Init() { DWORD dwFlags; BOOL fGotIt = FALSE; // we will be pulling stuff out of the metabase here // prepare the metabase wrapper CWrapMetaBase mbWrap; if ( !mbWrap.FInit(m_pMB) ) return; // open the target if ( mbWrap.Open( m_szMeta, METADATA_PERMISSION_READ ) ) { // start with the logging period fGotIt = mbWrap.GetDword( _T(""), MD_LOGEXT_FIELD_MASK, IIS_MD_UT_SERVER, &dwFlags, METADATA_INHERIT ); // close the metabase mbWrap.Close(); } // if we didn't get it, use the default values if ( !fGotIt ) dwFlags = DEFAULT_EXTLOG_FIELDS; // seperate out all the fields UpdateData( TRUE ); if ( dwFlags & EXTLOG_BYTES_RECV ) m_bool_bytesreceived = TRUE; if ( dwFlags & EXTLOG_BYTES_SENT ) m_bool_bytessent = TRUE; if ( dwFlags & EXTLOG_CLIENT_IP ) m_bool_clientip = TRUE; if ( dwFlags & EXTLOG_COOKIE ) m_bool_cookie = TRUE; if ( dwFlags & EXTLOG_DATE ) m_bool_date = TRUE; if ( dwFlags & EXTLOG_HTTP_STATUS ) m_bool_httpstatus = TRUE; if ( dwFlags & EXTLOG_REFERER ) m_bool_referer = TRUE; if ( dwFlags & EXTLOG_SERVER_IP ) m_bool_serverip = TRUE; if ( dwFlags & EXTLOG_SERVER_PORT ) m_bool_serverport = TRUE; if ( dwFlags & EXTLOG_COMPUTER_NAME ) m_bool_servername = TRUE; if ( dwFlags & EXTLOG_SITE_NAME ) m_bool_servicename = TRUE; if ( dwFlags & EXTLOG_TIME ) m_bool_time = TRUE; if ( dwFlags & EXTLOG_TIME_TAKEN ) m_bool_timetaken = TRUE; if ( dwFlags & EXTLOG_URI_QUERY ) m_bool_uriquery = TRUE; if ( dwFlags & EXTLOG_URI_STEM ) m_bool_uristem = TRUE; if ( dwFlags & EXTLOG_USER_AGENT ) m_bool_useragent = TRUE; if ( dwFlags & EXTLOG_USERNAME ) m_bool_username = TRUE; if ( dwFlags & EXTLOG_WIN32_STATUS ) m_bool_win32status = TRUE; if ( dwFlags & EXTLOG_METHOD ) m_bool_method = TRUE; if ( dwFlags & EXTLOG_PROTOCOL_VERSION ) m_bool_version = TRUE; // set the data back UpdateData( FALSE ); } ///////////////////////////////////////////////////////////////////////////// // CLogExtended message handlers //-------------------------------------------------------------------------- BOOL CLogExtended::OnSetActive() { // if we haven't been initialized yet, do so if ( !m_fInitialized ) { Init(); m_fInitialized = TRUE; } return CPropertyPage::OnSetActive(); } //-------------------------------------------------------------------------- BOOL CLogExtended::OnApply() { DWORD dwFlags = 0; BOOL f; // prepare the extended logging flag if ( m_bool_bytesreceived ) dwFlags |= EXTLOG_BYTES_RECV; if ( m_bool_bytessent ) dwFlags |= EXTLOG_BYTES_SENT; if ( m_bool_clientip ) dwFlags |= EXTLOG_CLIENT_IP; if ( m_bool_cookie ) dwFlags |= EXTLOG_COOKIE; if ( m_bool_date ) dwFlags |= EXTLOG_DATE; if ( m_bool_httpstatus ) dwFlags |= EXTLOG_HTTP_STATUS; if ( m_bool_referer ) dwFlags |= EXTLOG_REFERER; if ( m_bool_serverport ) dwFlags |= EXTLOG_SERVER_PORT; if ( m_bool_serverip ) dwFlags |= EXTLOG_SERVER_IP; if ( m_bool_servername ) dwFlags |= EXTLOG_COMPUTER_NAME; if ( m_bool_servicename ) dwFlags |= EXTLOG_SITE_NAME; if ( m_bool_time ) dwFlags |= EXTLOG_TIME; if ( m_bool_timetaken ) dwFlags |= EXTLOG_TIME_TAKEN; if ( m_bool_uriquery ) dwFlags |= EXTLOG_URI_QUERY; if ( m_bool_uristem ) dwFlags |= EXTLOG_URI_STEM; if ( m_bool_useragent ) dwFlags |= EXTLOG_USER_AGENT; if ( m_bool_username ) dwFlags |= EXTLOG_USERNAME; if ( m_bool_win32status ) dwFlags |= EXTLOG_WIN32_STATUS; if ( m_bool_method ) dwFlags |= EXTLOG_METHOD; if ( m_bool_version ) dwFlags |= EXTLOG_PROTOCOL_VERSION; // set the extended logging logging field mask f = SetMetaDword( m_pMB, m_szServer, m_szMeta, _T(""), MD_LOGEXT_FIELD_MASK, IIS_MD_UT_SERVER, dwFlags, TRUE ); SetModified( FALSE ); return CPropertyPage::OnApply(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkBytesreceived() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkBytessent() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkClientip() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkCookie() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkDate() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkHttpstatus() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkReferer() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkServerip() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkServername() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkServicename() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkTime() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkTimetaken() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkUriQuery() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkUristem() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkUseragent() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkUsername() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnChkWin32status() { SetModified(); } //-------------------------------------------------------------------------- void CLogExtended::OnMethod() { SetModified(); }