Skip to content

Commit

Permalink
webrtc and quic improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
vyloy committed Nov 20, 2023
1 parent ee826f9 commit e688216
Show file tree
Hide file tree
Showing 11 changed files with 280 additions and 247 deletions.
4 changes: 1 addition & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ update_submodule:
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/tlslite-ng
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/wycheproof
$(UPDATE_SUBMODULE_COMMAND)
@git apply dep/patch/* && echo "patches applied" || echo "no patch applied"

docker_create_image: update_submodule
docker images | grep -cim1 -E "^gtbuild\s+?v1" || docker build -t gtbuild:v1 .
Expand Down Expand Up @@ -260,9 +261,6 @@ check_msquic_dependencies:

compile_msquic: check_msquic_dependencies update_submodule
mkdir -p ./dep/_msquic/$(TARGET)
sed 's|\(^ *msquic_lib\)$$|\1 ALL|g' ./dep/_msquic/src/bin/CMakeLists.txt > ./dep/_msquic/src/bin/CMakeLists.txt.tmp
cat ./dep/_msquic/src/bin/CMakeLists.txt.tmp > ./dep/_msquic/src/bin/CMakeLists.txt
rm ./dep/_msquic/src/bin/CMakeLists.txt.tmp
cmake -B./dep/_msquic/$(TARGET) -S./dep/_msquic -DQUIC_BUILD_SHARED=OFF -DCMAKE_TARGET_ARCHITECTURE=$(TARGET_CPU)
make -C./dep/_msquic/$(TARGET) -j$(shell nproc)
@renameSymbols=$$(objdump -t ./dep/_msquic/$(TARGET)/bin/Release/libmsquic.a | awk -v RS= '/_YB80VJ/{next}1' | grep -E 'g +(F|O) ' | grep -Evi ' (ms){0,1}quic' | awk '{print " --redefine-sym " $$NF "=" $$NF "_YB80VJ"}') && \
Expand Down
22 changes: 16 additions & 6 deletions client/api/conn.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,25 @@ func (c *Conn) Read(b []byte) (n int, err error) {
func (c *Conn) Write(b []byte) (n int, err error) {
c.mtx.Lock()
defer c.mtx.Unlock()

binary.BigEndian.PutUint32(c.buf[0:], c.id)
binary.BigEndian.PutUint16(c.buf[4:], predef.Data)
binary.BigEndian.PutUint32(c.buf[6:], uint32(len(b)))
nw, err := c.writer.Write(c.buf[:10])
if err != nil {
return

var i int
for {
j := copy(c.buf[10:], b[i:])
i += j
binary.BigEndian.PutUint32(c.buf[6:], uint32(j))
var nw int
nw, err = c.writer.Write(c.buf[:10+j])
if err != nil {
return
}
n += nw
if len(b[i:]) == 0 {
break
}
}
n, err = c.writer.Write(b)
n += nw
return
}

Expand Down
Loading

0 comments on commit e688216

Please sign in to comment.