MCPcopy Create free account
hub / github.com/coder/wush / earlyNoise

Method earlyNoise

tsserver/server.go:811–844  ·  view source on GitHub ↗
(protocolVersion int, writer io.Writer)

Source from the content-addressed store, hash-verified

809var _ = (*noiseServer)(nil).earlyNoise
810
811func (ns *noiseServer) earlyNoise(protocolVersion int, writer io.Writer) error {
812 ns.logger.Info("early noise")
813 if protocolVersion < earlyNoiseCapabilityVersion {
814 return nil
815 }
816
817 earlyJSON, err := json.Marshal(&tailcfg.EarlyNoise{
818 NodeKeyChallenge: ns.challenge.Public(),
819 })
820 if err != nil {
821 return err
822 }
823
824 // 5 bytes that won't be mistaken for an HTTP/2 frame:
825 // https://httpwg.org/specs/rfc7540.html#rfc.section.4.1 (Especially not
826 // an HTTP/2 settings frame, which isn't of type 'T')
827 var notH2Frame [5]byte
828 copy(notH2Frame[:], earlyPayloadMagic)
829 var lenBuf [4]byte
830 binary.BigEndian.PutUint32(lenBuf[:], uint32(len(earlyJSON)))
831 // These writes are all buffered by caller, so fine to do them
832 // separately:
833 if _, err := writer.Write(notH2Frame[:]); err != nil {
834 return err
835 }
836 if _, err := writer.Write(lenBuf[:]); err != nil {
837 return err
838 }
839 if _, err := writer.Write(earlyJSON); err != nil {
840 return err
841 }
842
843 return nil
844}

Callers

nothing calls this directly

Calls 1

WriteMethod · 0.45

Tested by

no test coverage detected