MCPcopy
hub / github.com/ContainerSSH/ContainerSSH / handleData

Method handleData

agentprotocol/server.go:190–233  ·  view source on GitHub ↗
(packet *Packet)

Source from the content-addressed store, hash-verified

188}
189
190func (c *ForwardCtx) handleData(packet *Packet) {
191 c.connMapMu.RLock()
192 conn, ok := c.connMap[packet.ConnectionId]
193 c.connMapMu.RUnlock()
194 if !ok {
195 c.logger.Info(
196 message.NewMessage(
197 message.EAgentUnknownConnection,
198 "Received data packet with unknown connection id %d",
199 packet.ConnectionId,
200 ),
201 )
202 return
203 }
204 conn.lock.Lock()
205 defer conn.lock.Unlock()
206 if conn.state != CONNECTION_STATE_STARTED {
207 c.logger.Info(
208 message.NewMessage(
209 message.EAgentConnectionInvalidState,
210 "Received data packet for a connection in a non-started state",
211 ),
212 )
213 return
214 }
215 nByte, err := conn.bufferWriter.Write(packet.Payload)
216 if err != nil {
217 c.logger.Error(message.Wrap(
218 err,
219 message.MSSHConnected,
220 "Error handling data packet",
221 ))
222 return
223 }
224 if nByte != len(packet.Payload) {
225 c.logger.Warning(
226 message.NewMessage(
227 message.EAgentWriteFailed,
228 "Failed to write connection packet to agent",
229 ),
230 )
231 return
232 }
233}
234
235func (c *ForwardCtx) handleClose(packet *Packet) {
236 c.connMapMu.Lock()

Callers 1

handleBackendMethod · 0.95

Calls 6

NewMessageFunction · 0.92
WrapFunction · 0.92
InfoMethod · 0.65
WriteMethod · 0.65
ErrorMethod · 0.65
WarningMethod · 0.65

Tested by

no test coverage detected