WorkingThread.h
上传用户:mingyuanzm
上传日期:2007-01-04
资源大小:117k
文件大小:3k
源码类别:

代理服务器

开发平台:

Visual C++

  1. /*
  2. * File name: WorkingThread.h
  3. * Version: 1.0.0.1
  4. * Programmer: A.George
  5. * Organization:
  6. * Date(start): 5.23.2000
  7. * Date(finish):
  8. * Description:
  9. Working thread header file
  10. */
  11. #ifndef _WORKING_THREAD_AG_INCLUDED_
  12. #define _WORKING_THREAD_AG_INCLUDED_
  13. #include <winsock.h>
  14. // macros for constant definition
  15. #define AGM_OUTPUT 0x500
  16. #define REQUEST_UNAUTHORIZED 1
  17. #define VIRTUAL_RESOURCE 2
  18. #define PARTIAL_CONTENT 4
  19. #define BUFFER_SIZE 2048
  20. // string constant
  21. #define STRCONTENT "
  22. <HTML>
  23. <HEAD><TITLE>
  24. Connection limit exceeded
  25. </TITLE></HEAD>
  26. <BODY>
  27. <H1>Connection limit exceeded</H1>
  28. Please change to another proxy server or wait for decreasing of connections number.<P>
  29. <ADDRESS>Proxy server at %d.%d.%d.%d:%d ag</ADDRESS>
  30. </BODY>
  31. </HTML>
  32. "
  33. #define STR407 "
  34. <HTML>
  35. <HEAD><TITLE>
  36. Proxy authorization required
  37. </TITLE></HEAD>
  38. <BODY>
  39. <H1>Proxy authorization required</H1>
  40. Username authentication is required for using this proxy.
  41. Either your browser does not perform proxy authorization, or your
  42. authorization has failed.<P>
  43. <ADDRESS>Proxy server at %d.%d.%d.%d:%d ag</ADDRESS>
  44. </BODY>
  45. </HTML>
  46. "
  47. #define VIRTUAL_MAIN_PAGE "
  48. <HTML>
  49. <TITLE>Ag Virtual Home Page</TITLE>
  50. <BODY BACKGROUND="http://www.PersonalProxy.com/image/background.jpg">
  51. <FONT COLOR=#00ffff>
  52. <H1>Personal Proxy</H1> by Ag<br><br>
  53. This is Virtual Page of site www.PersonalProxy.com<P>
  54. </BODY>
  55. </HTML>"
  56. // structures
  57. typedef struct tagTHREADPARAM{
  58. char pszUrl[512];
  59. BYTE b1;
  60. BYTE b2;
  61. BYTE b3;
  62. BYTE b4;
  63. int nPort;
  64. char pszUser[16];
  65. char pszPasswd[16];
  66. }THREADPARAM;
  67. //typedef struct tagLISTENPARAM{
  68. // int nPortProxy;
  69. //}LISTENPARAM;
  70. typedef struct tagWORKPARAM{
  71. SOCKET sckClient;
  72. sockaddr_in addr;
  73. }WORKPARAM;
  74. typedef struct tagHTTPHEADER{
  75. DWORD dwHttpStatus;
  76. int nVerMajor;
  77. int nVerMinor;
  78. char pszStatus[256];
  79. char pszType[256];
  80. char pszLocation[256];
  81. DWORD dwContSize;
  82. char * pContBegin;
  83. }HTTPHEADER;
  84. typedef struct tagREQUESTHEADER{
  85. DWORD dwFlag;
  86. char* pszAuthBegin;
  87. char* pszAuthEnd;
  88. char* pszVirtualRes;
  89. char pszUrl[512];
  90. char pszUserPass[16];
  91. char* pszContBegin;
  92. DWORD dwRange;
  93. DWORD dwContSize;
  94. }REQUESTHEADER;
  95. typedef struct tagGLOBAL{
  96. HWND hWnd;
  97. BYTE b1;
  98. BYTE b2;
  99. BYTE b3;
  100. BYTE b4;
  101. int nPort2nd;
  102. char pszUser[64];
  103. char pszPasswd[64];
  104. BYTE _b1;
  105. BYTE _b2;
  106. BYTE _b3;
  107. BYTE _b4;
  108. int nPort; // local
  109. }GLOBAL;
  110. // global variables
  111. extern int g_nConnectionCount;
  112. extern HANDLE g_hConnectionCount;
  113. extern GLOBAL globalInfo;
  114. extern unsigned long g_ulIpRefused[100];
  115. extern int g_nRefused;
  116. // functions
  117. #define OUTPUT(pszMsg) ::SendMessage(globalInfo.hWnd, AGM_OUTPUT, 0, (LPARAM)(LPCTSTR)(pszMsg))
  118. UINT ListeningThread(LPVOID lpVoid);
  119. #endif  //_WORKING_THREAD_AG_INCLUDED_