| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package mocks
- import (
- "bytes"
- "github.com/v2ray/v2ray-core/app"
- "github.com/v2ray/v2ray-core/common/alloc"
- v2net "github.com/v2ray/v2ray-core/common/net"
- "github.com/v2ray/v2ray-core/proxy/common/connhandler"
- )
- type InboundConnectionHandler struct {
- Data2Send []byte
- DataReturned *bytes.Buffer
- Port uint16
- Dispatcher app.PacketDispatcher
- }
- func (handler *InboundConnectionHandler) Listen(port uint16) error {
- handler.Port = port
- return nil
- }
- func (handler *InboundConnectionHandler) Communicate(packet v2net.Packet) error {
- ray := handler.Dispatcher.DispatchToOutbound(packet)
- input := ray.InboundInput()
- output := ray.InboundOutput()
- buffer := alloc.NewBuffer()
- buffer.Clear()
- buffer.Append(handler.Data2Send)
- input <- buffer
- close(input)
- v2net.ChanToWriter(handler.DataReturned, output)
- return nil
- }
- func (handler *InboundConnectionHandler) Create(dispatcher app.PacketDispatcher, config interface{}) (connhandler.InboundConnectionHandler, error) {
- handler.Dispatcher = dispatcher
- return handler, nil
- }
|