MCPcopy Index your code
hub / github.com/devspace-sh/devspace / ReadFromSession

Function ReadFromSession

pkg/devspace/tunnel/client.go:112–152  ·  view source on GitHub ↗
(session *tunnel.Session, sessionsOut chan<- *tunnel.Session, log logpkg.Logger)

Source from the content-addressed store, hash-verified

110}
111
112func ReadFromSession(session *tunnel.Session, sessionsOut chan<- *tunnel.Session, log logpkg.Logger) {
113 log.Debugf("started reading conn %s", session.ID)
114 defer log.Debugf("finished reading conn %s", session.ID)
115
116 conn := session.Conn
117 buff := make([]byte, tunnel.BufferSize)
118
119loop:
120 for {
121 br, err := conn.Read(buff)
122 select {
123 case <-session.Context.Done():
124 return
125 default:
126 if err != nil {
127 if err != io.EOF {
128 log.Errorf("%s: failed reading from socket, exiting: %v", session.ID.String(), err)
129 } else {
130 log.Debugf("read EOF from conn")
131 }
132 session.Open = false
133 sessionsOut <- session
134 break loop
135 }
136
137 log.Debugf("read %d bytes from conn", br)
138 if br > 0 {
139 session.Lock()
140 _, err = session.Buf.Write(buff[0:br])
141 session.Unlock()
142 log.Debugf("wrote %d bytes to session", br)
143 }
144 if err != nil {
145 log.Errorf("%s: failed writing to session buffer: %v", session.ID, err)
146 break loop
147 }
148
149 sessionsOut <- session
150 }
151 }
152}
153
154func SendData(stream remote.Tunnel_InitTunnelClient, sessions <-chan *tunnel.Session, closeChan <-chan bool, log logpkg.Logger) error {
155 for {

Callers 1

ReceiveDataFunction · 0.85

Calls 8

LockMethod · 0.80
UnlockMethod · 0.80
DoneMethod · 0.65
DebugfMethod · 0.45
ReadMethod · 0.45
ErrorfMethod · 0.45
StringMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected