MCPcopy Create free account
hub / github.com/esrrhs/spp / process

Method process

proxy/server.go:185–220  ·  view source on GitHub ↗
(wg *thread.Group, sendch *common.Channel, recvch *common.Channel, clientconn *ClientConn, pongflag *int32, pongtime *int64)

Source from the content-addressed store, hash-verified

183}
184
185func (s *Server) process(wg *thread.Group, sendch *common.Channel, recvch *common.Channel, clientconn *ClientConn, pongflag *int32, pongtime *int64) error {
186
187 loggo.Info("process start %s", clientconn.conn.Info())
188
189 for !wg.IsExit() {
190 ff := <-recvch.Ch()
191 if ff == nil {
192 break
193 }
194 f := ff.(*ProxyFrame)
195 switch f.Type {
196 case FRAME_TYPE_LOGIN:
197 s.processLogin(wg, f, sendch, clientconn)
198
199 case FRAME_TYPE_PING:
200 processPing(f, sendch, &clientconn.ProxyConn, pongflag, pongtime)
201
202 case FRAME_TYPE_PONG:
203 processPong(f, sendch, &clientconn.ProxyConn, s.config.ShowPing)
204
205 case FRAME_TYPE_DATA:
206 s.processData(f, clientconn)
207
208 case FRAME_TYPE_OPEN:
209 s.processOpen(f, clientconn)
210
211 case FRAME_TYPE_OPENRSP:
212 s.processOpenRsp(f, clientconn)
213
214 case FRAME_TYPE_CLOSE:
215 s.processClose(f, clientconn)
216 }
217 }
218 loggo.Info("process end %s", clientconn.conn.Info())
219 return nil
220}
221
222func (s *Server) processLogin(wg *thread.Group, f *ProxyFrame, sendch *common.Channel, clientconn *ClientConn) {
223 loggo.Info("processLogin from %s %s", clientconn.conn.Info(), f.LoginFrame.String())

Callers 1

serveClientMethod · 0.95

Calls 7

processLoginMethod · 0.95
processDataMethod · 0.95
processOpenMethod · 0.95
processOpenRspMethod · 0.95
processCloseMethod · 0.95
processPingFunction · 0.85
processPongFunction · 0.85

Tested by

no test coverage detected