MCPcopy
hub / github.com/grpc/grpc-go / writeHeader

Method writeHeader

internal/transport/handler_server.go:360–384  ·  view source on GitHub ↗
(s *ServerStream, md metadata.MD)

Source from the content-addressed store, hash-verified

358}
359
360func (ht *serverHandlerTransport) writeHeader(s *ServerStream, md metadata.MD) error {
361 if err := s.SetHeader(md); err != nil {
362 return err
363 }
364
365 headersWritten := s.updateHeaderSent()
366 err := ht.do(func() {
367 if !headersWritten {
368 ht.writePendingHeaders(s)
369 }
370
371 ht.rw.WriteHeader(200)
372 ht.rw.(http.Flusher).Flush()
373 })
374
375 if err == nil && ht.stats != nil {
376 // Note: The header fields are compressed with hpack after this call returns.
377 // No WireLength field is set here.
378 ht.stats.HandleRPC(s.Context(), &stats.OutHeader{
379 Header: md.Copy(),
380 Compression: s.sendCompress,
381 })
382 }
383 return err
384}
385
386func (ht *serverHandlerTransport) adjustWindow(*ServerStream, uint32) {
387}

Callers

nothing calls this directly

Calls 8

doMethod · 0.95
writePendingHeadersMethod · 0.95
updateHeaderSentMethod · 0.80
CopyMethod · 0.80
SetHeaderMethod · 0.65
FlushMethod · 0.65
HandleRPCMethod · 0.65
ContextMethod · 0.65

Tested by

no test coverage detected