Skip to content

Commit

Permalink
2024-09-28 20:13:11
Browse files Browse the repository at this point in the history
  • Loading branch information
mohanson committed Sep 28, 2024
1 parent 87febb6 commit 0e48c61
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions protocol/czar/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ type Server struct {
}

// Serve incoming connections. Parameter cli will be closed automatically when the function exits.
func (s *Server) Serve(ctx *daze.Context, cli io.ReadWriteCloser) error {
func (s *Server) Serve(ctx *daze.Context, con io.ReadWriteCloser) error {
spy := &ashe.Server{Cipher: s.Cipher}
return spy.Serve(ctx, cli)
return spy.Serve(ctx, con)
}

// Close listener.
Expand All @@ -74,23 +74,23 @@ func (s *Server) Run() error {
go func() {
idx := uint32(math.MaxUint32)
for {
cli, err := l.Accept()
con, err := l.Accept()
if err != nil {
if !errors.Is(err, net.ErrClosed) {
log.Println("main:", err)
}
break
}
mux := NewMuxServer(cli)
mux := NewMuxServer(con)
go func() {
defer mux.Close()
for cli := range mux.Accept() {
for stm := range mux.Accept() {
idx++
ctx := &daze.Context{Cid: idx}
log.Printf("conn: %08x accept remote=%s", ctx.Cid, mux.con.RemoteAddr())
log.Printf("conn: %08x accept remote=%s", ctx.Cid, con.RemoteAddr())
go func() {
defer cli.Close()
if err := s.Serve(ctx, cli); err != nil {
defer stm.Close()
if err := s.Serve(ctx, stm); err != nil {
log.Printf("conn: %08x error %s", ctx.Cid, err)
}
log.Printf("conn: %08x closed", ctx.Cid)
Expand Down Expand Up @@ -129,17 +129,17 @@ func (c *Client) Close() error {
func (c *Client) Dial(ctx *daze.Context, network string, address string) (io.ReadWriteCloser, error) {
select {
case mux := <-c.Mux:
srv, err := mux.Open()
stm, err := mux.Open()
if err != nil {
return nil, err
}
log.Printf("czar: mux slot stream id=0x%02x", srv.idx)
log.Printf("czar: mux slot stream id=0x%02x", stm.idx)
spy := &ashe.Client{Cipher: c.Cipher}
con, err := spy.Estab(ctx, srv, network, address)
srv, err := spy.Estab(ctx, stm, network, address)
if err != nil {
srv.Close()
stm.Close()
}
return con, err
return srv, err
case <-time.After(daze.Conf.DialerTimeout):
return nil, fmt.Errorf("dial tcp: %s: i/o timeout", address)
}
Expand All @@ -148,18 +148,18 @@ func (c *Client) Dial(ctx *daze.Context, network string, address string) (io.Rea
// Run creates an establish connection to czar server.
func (c *Client) Run() {
var (
con net.Conn
err error
mux *Mux
rtt = 0
sid = 0
srv net.Conn
)
for {
switch sid {
case 0:
srv, err = daze.Dial("tcp", c.Server)
con, err = daze.Dial("tcp", c.Server)
switch {
case srv == nil:
case con == nil:
log.Println("czar:", err)
select {
case <-time.After(time.Second * time.Duration(math.Pow(2, float64(rtt)))):
Expand All @@ -170,7 +170,7 @@ func (c *Client) Run() {
}
case err == nil:
log.Println("czar: mux init")
mux = NewMuxClient(srv)
mux = NewMuxClient(con)
rtt = 0
sid = 1
}
Expand Down

0 comments on commit 0e48c61

Please sign in to comment.