- Timestamp:
- 11/16/12 13:07:05 (12 years ago)
- Location:
- trunk/src
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/CRXHttpMessage.cpp
r26 r28 68 68 { 69 69 /*----------------------------------------------------------------*/ 70 SetMessage (aHttpMessage);71 70 /*----------------------------------------------------------------*/ 72 71 -
trunk/src/CRXHttpRequest.cpp
r26 r28 50 50 } 51 51 52 std::string53 CRXHttpRequest::GetURL (void) const54 {55 /*----------------------------------------------------------------*/56 /*----------------------------------------------------------------*/57 58 return mUrl;59 }60 61 std::string62 CRXHttpRequest::GetHost (void) const63 {64 /*----------------------------------------------------------------*/65 /*----------------------------------------------------------------*/66 67 return mHost;68 }69 70 int71 CRXHttpRequest::GetPort (void) const72 {73 /*----------------------------------------------------------------*/74 /*----------------------------------------------------------------*/75 76 return mPort;77 }78 79 52 CRXHttpRequest & 80 53 CRXHttpRequest::operator = (const char * aHttpMessage) … … 90 63 CRXHttpRequest::Parse (void) 91 64 { 92 std::string aHttpRequestUr i = "";65 std::string aHttpRequestUrl; 93 66 94 67 char aMethod[64] = {0x00, }; … … 103 76 104 77 /*----------------------------------------------------------------*/ 105 aHttpRequestUr i= GetHeader ().substr (0, mHttpMessage.find ('\r'));78 aHttpRequestUrl = GetHeader ().substr (0, mHttpMessage.find ('\r')); 106 79 107 80 /*---------------------------------------------------------------- 108 81 * 1. separate first line to <METHOD>, <URL> and <VERSION> 109 82 *----------------------------------------------------------------*/ 110 sscanf (aHttpRequestUr i.c_str (), "%[^ ] %[^ ] %[^ ]\r\n", aMethod, aUrl, aHttpVersion);83 sscanf (aHttpRequestUrl.c_str (), "%[^ ] %[^ ] %[^ ]\r\n", aMethod, aUrl, aHttpVersion); 111 84 mMethod.assign (aMethod); 112 85 mUrl.assign (aUrl); 113 86 mHttpVersion.assign (aHttpVersion); 87 88 ParseFileExtension (); 114 89 115 90 /*---------------------------------------------------------------- … … 129 104 /*----------------------------------------------------------------*/ 130 105 } 106 107 void 108 CRXHttpRequest::ParseFileExtension (void) 109 { 110 std::string aFilename; 111 112 size_t aFilenameOffset = 0; 113 size_t aParameterPosition = 0; 114 size_t aSlashPosition = 0; 115 size_t aDotPosition = 0; 116 117 /*----------------------------------------------------------------*/ 118 /*---------------------------------------------------------------- 119 * 1. get filename 120 *----------------------------------------------------------------*/ 121 aParameterPosition = mUrl.find ('?'); 122 aSlashPosition = mUrl.rfind ('/', aParameterPosition) + 1; 123 if (aSlashPosition == mUrl.length ()) 124 return ; 125 126 aFilenameOffset = (aParameterPosition != std::string::npos) 127 ? aParameterPosition - aSlashPosition 128 : std::string::npos; 129 130 aFilename = mUrl.substr (aSlashPosition, aFilenameOffset); 131 132 /*---------------------------------------------------------------- 133 * 2. get file extension 134 *----------------------------------------------------------------*/ 135 aDotPosition = aFilename.rfind ('.'); 136 if (aDotPosition != std::string::npos) 137 mFileExtension = aFilename.substr (aDotPosition + 1); 138 /*----------------------------------------------------------------*/ 139 } 140 141 std::string CRXHttpRequest::GetURL (void) const { return mUrl; } 142 std::string CRXHttpRequest::GetHost (void) const { return mHost; } 143 int CRXHttpRequest::GetPort (void) const { return mPort; } 144 std::string CRXHttpRequest::GetFileExtension (void) const { return mFileExtension; } -
trunk/src/CRXHttpResponse.cpp
r26 r28 110 110 111 111 return GetMessage (); 112 }113 114 int115 CRXHttpResponse::GetStatusCode (void) const116 {117 /*----------------------------------------------------------------*/118 /*----------------------------------------------------------------*/119 120 return mStatusCode;121 }122 123 int124 CRXHttpResponse::GetContentLength (void) const125 {126 /*----------------------------------------------------------------*/127 /*----------------------------------------------------------------*/128 129 return mContentLength;130 }131 132 const char *133 CRXHttpResponse::GetContentBody (void) const134 {135 /*----------------------------------------------------------------*/136 /*----------------------------------------------------------------*/137 138 return mContent.mBody;139 112 } 140 113 … … 232 205 return aResult; 233 206 } 207 208 int CRXHttpResponse::GetStatusCode (void) const { return mStatusCode; } 209 int CRXHttpResponse::GetContentLength (void) const { return mContentLength; } 210 const char * CRXHttpResponse::GetContentBody (void) const { return mContent.mBody; } -
trunk/src/CRXProxy.cpp
r24 r28 7 7 #include <string.h> 8 8 9 CRXFilter CRXProxy::mFilter; 10 9 11 CRXProxy::CRXProxy (void) 10 : mClient (0), 12 : mIsIntercepted (false), 13 mClient (0), 11 14 mServer (0) 12 15 { … … 59 62 } 60 63 61 int 62 CRXProxy::GetStatus (void) 63 { 64 /*----------------------------------------------------------------*/ 65 /*----------------------------------------------------------------*/ 66 67 return mProxyStatus; 64 void 65 CRXProxy::SetRequestFilter (const E_CRX_FILTER_REQUEST aType, 66 const bool aIsMatched, 67 const std::string aValue) 68 { 69 /*----------------------------------------------------------------*/ 70 mFilter.SetRequestFilter (aType, aIsMatched, aValue); 71 /*----------------------------------------------------------------*/ 72 } 73 74 void 75 CRXProxy::RemoveRequestFilter (const E_CRX_FILTER_REQUEST aType) 76 { 77 /*----------------------------------------------------------------*/ 78 mFilter.RemoveRequestFilter (aType); 79 /*----------------------------------------------------------------*/ 80 } 81 82 bool 83 CRXProxy::CheckRequestFilter (const E_CRX_FILTER_REQUEST aType) 84 { 85 /*----------------------------------------------------------------*/ 86 /*----------------------------------------------------------------*/ 87 88 return mFilter.CheckRequestFilter (aType, this->mHttpRequest); 68 89 } 69 90 -
trunk/src/main.cpp
r24 r28 76 76 CRXProxy * aProxy = NULL; 77 77 78 char * aFilterFileExtension = "exe|gif|jpg|png|css|js|ico|"; 79 char * aHttpRequest = NULL; 80 int aHttpRequestLength = 0; 81 78 82 /*----------------------------------------------------------------*/ 79 83 for (;;) … … 94 98 95 99 aProxy->SetClientSocket (aResult); 100 aProxy->SetRequestFilter (CRX_FILTER_REQUEST_FILE_EXTENSION, 101 CRX_FILTER_MATCHED, 102 aFilterFileExtension); 96 103 97 104 aResult = aProxy->Forward (); … … 99 106 { 100 107 cerr << aProxy->GetErrorMessage () << endl; 108 } 109 110 if (!aProxy->CheckRequestFilter (CRX_FILTER_REQUEST_FILE_EXTENSION)) 111 { 112 aHttpRequestLength = aProxy->GetHttpRequestLength (); 113 aHttpRequest = (char *) calloc (aHttpRequestLength + 1, 1); 114 cout << aProxy->GetHttpRequest (aHttpRequest, aHttpRequestLength) << endl; 115 free (aHttpRequest); 101 116 } 102 117 -
trunk/src/makefile
r19 r28 1 2 1 #---------------------------------------------------------- 3 2 # platform
Note:
See TracChangeset
for help on using the changeset viewer.