Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(263)

Side by Side Diff: net/tools/flip_server/streamer_interface.cc

Issue 93793004: Format and Refactor Flip Server. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/tools/flip_server/streamer_interface.h" 5 #include "net/tools/flip_server/streamer_interface.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "net/tools/balsa/balsa_frame.h" 9 #include "net/tools/balsa/balsa_frame.h"
10 #include "net/tools/flip_server/constants.h" 10 #include "net/tools/flip_server/constants.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 void StreamerSM::InitSMConnection(SMConnectionPoolInterface* connection_pool, 50 void StreamerSM::InitSMConnection(SMConnectionPoolInterface* connection_pool,
51 SMInterface* sm_interface, 51 SMInterface* sm_interface,
52 EpollServer* epoll_server, 52 EpollServer* epoll_server,
53 int fd, 53 int fd,
54 std::string server_ip, 54 std::string server_ip,
55 std::string server_port, 55 std::string server_port,
56 std::string remote_ip, 56 std::string remote_ip,
57 bool use_ssl) { 57 bool use_ssl) {
58 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "StreamerSM: Initializing server " 58 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "StreamerSM: Initializing server "
59 << "connection."; 59 << "connection.";
60 connection_->InitSMConnection(connection_pool, sm_interface, 60 connection_->InitSMConnection(connection_pool,
61 epoll_server, fd, server_ip, 61 sm_interface,
62 server_port, remote_ip, use_ssl); 62 epoll_server,
63 fd,
64 server_ip,
65 server_port,
66 remote_ip,
67 use_ssl);
63 } 68 }
64 69
65 size_t StreamerSM::ProcessReadInput(const char* data, size_t len) { 70 size_t StreamerSM::ProcessReadInput(const char* data, size_t len) {
66 // For now we only want to parse http requests. Just stream responses 71 // For now we only want to parse http requests. Just stream responses
67 if (is_request_) { 72 if (is_request_) {
68 return http_framer_->ProcessInput(data, len); 73 return http_framer_->ProcessInput(data, len);
69 } else { 74 } else {
70 return sm_other_interface_->ProcessWriteInput(data, len); 75 return sm_other_interface_->ProcessWriteInput(data, len);
71 } 76 }
72 } 77 }
73 78
74 size_t StreamerSM::ProcessWriteInput(const char* data, size_t len) { 79 size_t StreamerSM::ProcessWriteInput(const char* data, size_t len) {
75 char * dataPtr = new char[len]; 80 char* dataPtr = new char[len];
76 memcpy(dataPtr, data, len); 81 memcpy(dataPtr, data, len);
77 DataFrame* df = new DataFrame; 82 DataFrame* df = new DataFrame;
78 df->data = (const char *)dataPtr; 83 df->data = (const char*)dataPtr;
79 df->size = len; 84 df->size = len;
80 df->delete_when_done = true; 85 df->delete_when_done = true;
81 connection_->EnqueueDataFrame(df); 86 connection_->EnqueueDataFrame(df);
82 return len; 87 return len;
83 } 88 }
84 89
85 bool StreamerSM::Error() const { 90 bool StreamerSM::Error() const { return false; }
86 return false;
87 }
88 91
89 const char* StreamerSM::ErrorAsString() const { 92 const char* StreamerSM::ErrorAsString() const { return "(none)"; }
90 return "(none)";
91 }
92 93
93 bool StreamerSM::MessageFullyRead() const { 94 bool StreamerSM::MessageFullyRead() const {
94 if (is_request_) { 95 if (is_request_) {
95 return http_framer_->MessageFullyRead(); 96 return http_framer_->MessageFullyRead();
96 } else { 97 } else {
97 return false; 98 return false;
98 } 99 }
99 } 100 }
100 101
101 void StreamerSM::Reset() { 102 void StreamerSM::Reset() {
102 VLOG(1) << ACCEPTOR_CLIENT_IDENT << "StreamerSM: Reset"; 103 VLOG(1) << ACCEPTOR_CLIENT_IDENT << "StreamerSM: Reset";
103 connection_->Cleanup("Server Reset"); 104 connection_->Cleanup("Server Reset");
104 http_framer_->Reset(); 105 http_framer_->Reset();
105 } 106 }
106 107
107 void StreamerSM::ResetForNewConnection() { 108 void StreamerSM::ResetForNewConnection() {
108 http_framer_->Reset(); 109 http_framer_->Reset();
109 sm_other_interface_->Reset(); 110 sm_other_interface_->Reset();
110 } 111 }
111 112
112 void StreamerSM::Cleanup() { 113 void StreamerSM::Cleanup() {
113 if (is_request_) 114 if (is_request_)
114 http_framer_->Reset(); 115 http_framer_->Reset();
115 } 116 }
116 117
117 int StreamerSM::PostAcceptHook() { 118 int StreamerSM::PostAcceptHook() {
118 if (!sm_other_interface_) { 119 if (!sm_other_interface_) {
119 SMConnection *server_connection = 120 SMConnection* server_connection = SMConnection::NewSMConnection(
120 SMConnection::NewSMConnection(epoll_server_, NULL, NULL, 121 epoll_server_, NULL, NULL, acceptor_, "server_conn: ");
121 acceptor_, "server_conn: ");
122 if (server_connection == NULL) { 122 if (server_connection == NULL) {
123 LOG(ERROR) << "StreamerSM: Could not create server conenction."; 123 LOG(ERROR) << "StreamerSM: Could not create server conenction.";
124 return 0; 124 return 0;
125 } 125 }
126 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "StreamerSM: Creating new server " 126 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "StreamerSM: Creating new server "
127 << "connection."; 127 << "connection.";
128 sm_other_interface_ = new StreamerSM(server_connection, this, 128 sm_other_interface_ =
129 epoll_server_, acceptor_); 129 new StreamerSM(server_connection, this, epoll_server_, acceptor_);
130 sm_other_interface_->InitSMInterface(this, 0); 130 sm_other_interface_->InitSMInterface(this, 0);
131 } 131 }
132 // The Streamer interface is used to stream HTTPS connections, so we 132 // The Streamer interface is used to stream HTTPS connections, so we
133 // will always use the https_server_ip/port here. 133 // will always use the https_server_ip/port here.
134 sm_other_interface_->InitSMConnection(NULL, 134 sm_other_interface_->InitSMConnection(NULL,
135 sm_other_interface_, 135 sm_other_interface_,
136 epoll_server_, 136 epoll_server_,
137 -1, 137 -1,
138 acceptor_->https_server_ip_, 138 acceptor_->https_server_ip_,
139 acceptor_->https_server_port_, 139 acceptor_->https_server_port_,
140 std::string(), 140 std::string(),
141 false); 141 false);
142 142
143 return 1; 143 return 1;
144 } 144 }
145 145
146 size_t StreamerSM::SendSynStream(uint32 stream_id, 146 size_t StreamerSM::SendSynStream(uint32 stream_id,
147 const BalsaHeaders& headers) { 147 const BalsaHeaders& headers) {
148 return 0; 148 return 0;
149 } 149 }
150 150
151 size_t StreamerSM::SendSynReply(uint32 stream_id, const BalsaHeaders& headers) { 151 size_t StreamerSM::SendSynReply(uint32 stream_id, const BalsaHeaders& headers) {
152 return 0; 152 return 0;
153 } 153 }
154 154
155 void StreamerSM::ProcessBodyInput(const char *input, size_t size) { 155 void StreamerSM::ProcessBodyInput(const char* input, size_t size) {
156 VLOG(2) << ACCEPTOR_CLIENT_IDENT 156 VLOG(2) << ACCEPTOR_CLIENT_IDENT
157 << "StreamerHttpSM: Process Body Input Data: " 157 << "StreamerHttpSM: Process Body Input Data: "
158 << "size " << size; 158 << "size " << size;
159 sm_other_interface_->ProcessWriteInput(input, size); 159 sm_other_interface_->ProcessWriteInput(input, size);
160 } 160 }
161 161
162 void StreamerSM::MessageDone() { 162 void StreamerSM::MessageDone() {
163 if (acceptor_->flip_handler_type_ == FLIP_HANDLER_PROXY) { 163 if (acceptor_->flip_handler_type_ == FLIP_HANDLER_PROXY) {
164 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "StreamerHttpSM: MessageDone."; 164 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "StreamerHttpSM: MessageDone.";
165 // TODO(kelindsay): anything need to be done ehre? 165 // TODO(kelindsay): anything need to be done ehre?
(...skipping 14 matching lines...) Expand all
180 LOG(INFO) << "NOT adding forward header."; 180 LOG(INFO) << "NOT adding forward header.";
181 } 181 }
182 SimpleBuffer sb; 182 SimpleBuffer sb;
183 char* buffer; 183 char* buffer;
184 int size; 184 int size;
185 mod_headers.WriteHeaderAndEndingToBuffer(&sb); 185 mod_headers.WriteHeaderAndEndingToBuffer(&sb);
186 sb.GetReadablePtr(&buffer, &size); 186 sb.GetReadablePtr(&buffer, &size);
187 sm_other_interface_->ProcessWriteInput(buffer, size); 187 sm_other_interface_->ProcessWriteInput(buffer, size);
188 } 188 }
189 189
190 void StreamerSM::HandleHeaderError(BalsaFrame* framer) { 190 void StreamerSM::HandleHeaderError(BalsaFrame* framer) { HandleError(); }
191 HandleError();
192 }
193 191
194 void StreamerSM::HandleChunkingError(BalsaFrame* framer) { 192 void StreamerSM::HandleChunkingError(BalsaFrame* framer) { HandleError(); }
195 HandleError();
196 }
197 193
198 void StreamerSM::HandleBodyError(BalsaFrame* framer) { 194 void StreamerSM::HandleBodyError(BalsaFrame* framer) { HandleError(); }
199 HandleError();
200 }
201 195
202 void StreamerSM::HandleError() { 196 void StreamerSM::HandleError() {
203 VLOG(1) << ACCEPTOR_CLIENT_IDENT << "Error detected"; 197 VLOG(1) << ACCEPTOR_CLIENT_IDENT << "Error detected";
204 } 198 }
205 199
206 } // namespace net 200 } // namespace net
207
OLDNEW
« net/tools/flip_server/sm_connection.cc ('K') | « net/tools/flip_server/streamer_interface.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698