Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
1.7 KiB

  1. //
  2. // Pei-Hwa Lin (peiwhal), July 25, 1997
  3. //
  4. #include "urltrk.h"
  5. #define TRACK_FLAGS (TRACK_OFFLINE_CACHE_ENTRY | TRACK_ONLINE_CACHE_ENTRY)
  6. #ifdef unix
  7. extern "C"
  8. #endif /* unix */
  9. BOOL WINAPI
  10. IsLoggingEnabledA
  11. (
  12. IN LPCSTR pszUrl
  13. )
  14. {
  15. CHAR szCanonicalUrl[INTERNET_MAX_URL_LENGTH];
  16. DWORD dwSize = INTERNET_MAX_URL_LENGTH;
  17. BOOL fTrack = FALSE;
  18. ULONG dwTrack;
  19. // canonicalize URL
  20. InternetCanonicalizeUrlA(pszUrl, szCanonicalUrl, &dwSize, ICU_DECODE);
  21. dwTrack = _IsLoggingEnabled(szCanonicalUrl);
  22. fTrack = (dwTrack & TRACK_FLAGS);
  23. SetLastError(0);
  24. return fTrack;
  25. }
  26. BOOL WINAPI
  27. WriteHitLogging
  28. (
  29. IN LPHIT_LOGGING_INFO lpLogInfo
  30. )
  31. {
  32. CHAR szCanonicalUrl[INTERNET_MAX_URL_LENGTH];
  33. DWORD dwSize = INTERNET_MAX_URL_LENGTH;
  34. BOOL bRet = FALSE;
  35. BOOL foffline;
  36. ULONG dwTrack;
  37. MY_LOGGING_INFO mLi;
  38. if (!lpLogInfo->lpszLoggedUrlName)
  39. {
  40. SetLastError(ERROR_INVALID_PARAMETER);
  41. return bRet;
  42. }
  43. // canonicalize URL
  44. InternetCanonicalizeUrlA(lpLogInfo->lpszLoggedUrlName, szCanonicalUrl, &dwSize, ICU_DECODE);
  45. // don't log if it's disalbed at first place
  46. dwTrack = _IsLoggingEnabled(szCanonicalUrl);
  47. foffline = IsGlobalOffline();
  48. if (dwTrack & TRACK_FLAGS)
  49. {
  50. if (((dwTrack & TRACK_OFFLINE_CACHE_ENTRY) && foffline) ||
  51. ((dwTrack & TRACK_ONLINE_CACHE_ENTRY) && !foffline))
  52. {
  53. mLi.pLogInfo = lpLogInfo;
  54. mLi.fOffLine = foffline;
  55. bRet = _WriteHitLogging(&mLi);
  56. }
  57. }
  58. else
  59. {
  60. SetLastError(0);
  61. bRet = TRUE;
  62. }
  63. return bRet;
  64. }