mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-09-30 07:46:41 -04:00
refactor
This commit is contained in:
parent
73c4696e00
commit
3161c56aba
@ -113,7 +113,7 @@ func (m *Client) Closed() bool {
|
|||||||
|
|
||||||
func (m *Client) fetchInput(ctx context.Context, s *session) {
|
func (m *Client) fetchInput(ctx context.Context, s *session) {
|
||||||
dest, _ := proxy.TargetFromContext(ctx)
|
dest, _ := proxy.TargetFromContext(ctx)
|
||||||
writer := &MuxWriter{
|
writer := &Writer{
|
||||||
dest: dest,
|
dest: dest,
|
||||||
id: s.id,
|
id: s.id,
|
||||||
writer: m.inboundRay.InboundInput(),
|
writer: m.inboundRay.InboundInput(),
|
||||||
|
@ -20,7 +20,7 @@ func TestReaderWriter(t *testing.T) {
|
|||||||
|
|
||||||
payload := buf.New()
|
payload := buf.New()
|
||||||
payload.AppendBytes('a', 'b', 'c', 'd')
|
payload.AppendBytes('a', 'b', 'c', 'd')
|
||||||
writer.Write(payload)
|
assert.Error(writer.Write(payload)).IsNil()
|
||||||
|
|
||||||
writer.Close()
|
writer.Close()
|
||||||
|
|
||||||
|
@ -7,20 +7,20 @@ import (
|
|||||||
"v2ray.com/core/common/serial"
|
"v2ray.com/core/common/serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
type MuxReader struct {
|
type Reader struct {
|
||||||
reader io.Reader
|
reader io.Reader
|
||||||
remainingLength int
|
remainingLength int
|
||||||
buffer *buf.Buffer
|
buffer *buf.Buffer
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewReader(reader buf.Reader) *MuxReader {
|
func NewReader(reader buf.Reader) *Reader {
|
||||||
return &MuxReader{
|
return &Reader{
|
||||||
reader: buf.ToBytesReader(reader),
|
reader: buf.ToBytesReader(reader),
|
||||||
buffer: buf.NewLocal(1024),
|
buffer: buf.NewLocal(1024),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *MuxReader) ReadMetadata() (*FrameMetadata, error) {
|
func (r *Reader) ReadMetadata() (*FrameMetadata, error) {
|
||||||
b := r.buffer
|
b := r.buffer
|
||||||
b.Clear()
|
b.Clear()
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ func (r *MuxReader) ReadMetadata() (*FrameMetadata, error) {
|
|||||||
return ReadFrameFrom(b.Bytes())
|
return ReadFrameFrom(b.Bytes())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *MuxReader) Read() (*buf.Buffer, bool, error) {
|
func (r *Reader) Read() (*buf.Buffer, bool, error) {
|
||||||
b := buf.New()
|
b := buf.New()
|
||||||
var dataLen int
|
var dataLen int
|
||||||
if r.remainingLength > 0 {
|
if r.remainingLength > 0 {
|
||||||
|
@ -6,22 +6,22 @@ import (
|
|||||||
"v2ray.com/core/common/serial"
|
"v2ray.com/core/common/serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
type MuxWriter struct {
|
type Writer struct {
|
||||||
id uint16
|
id uint16
|
||||||
dest net.Destination
|
dest net.Destination
|
||||||
writer buf.Writer
|
writer buf.Writer
|
||||||
followup bool
|
followup bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWriter(id uint16, dest net.Destination, writer buf.Writer) *MuxWriter {
|
func NewWriter(id uint16, dest net.Destination, writer buf.Writer) *Writer {
|
||||||
return &MuxWriter{
|
return &Writer{
|
||||||
id: id,
|
id: id,
|
||||||
dest: dest,
|
dest: dest,
|
||||||
writer: writer,
|
writer: writer,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *MuxWriter) writeInternal(b *buf.Buffer) error {
|
func (w *Writer) writeInternal(b *buf.Buffer) error {
|
||||||
meta := FrameMetadata{
|
meta := FrameMetadata{
|
||||||
SessionID: w.id,
|
SessionID: w.id,
|
||||||
Target: w.dest,
|
Target: w.dest,
|
||||||
@ -57,7 +57,7 @@ func (w *MuxWriter) writeInternal(b *buf.Buffer) error {
|
|||||||
return w.writer.Write(frame)
|
return w.writer.Write(frame)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *MuxWriter) Write(b *buf.Buffer) error {
|
func (w *Writer) Write(b *buf.Buffer) error {
|
||||||
defer b.Release()
|
defer b.Release()
|
||||||
|
|
||||||
if err := w.writeInternal(b); err != nil {
|
if err := w.writeInternal(b); err != nil {
|
||||||
@ -71,7 +71,7 @@ func (w *MuxWriter) Write(b *buf.Buffer) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *MuxWriter) Close() {
|
func (w *Writer) Close() {
|
||||||
meta := FrameMetadata{
|
meta := FrameMetadata{
|
||||||
SessionID: w.id,
|
SessionID: w.id,
|
||||||
Target: w.dest,
|
Target: w.dest,
|
||||||
|
Loading…
Reference in New Issue
Block a user