|
|
@@ -3,10 +3,11 @@ package protocol
|
|
|
import (
|
|
|
"io"
|
|
|
|
|
|
+ "v2ray.com/core/common/task"
|
|
|
+
|
|
|
"v2ray.com/core/common"
|
|
|
"v2ray.com/core/common/buf"
|
|
|
"v2ray.com/core/common/net"
|
|
|
- "v2ray.com/core/common/signal"
|
|
|
)
|
|
|
|
|
|
type AddressOption func(*AddressParser)
|
|
|
@@ -153,9 +154,9 @@ func (p *AddressParser) ReadAddressPort(buffer *buf.Buffer, input io.Reader) (ne
|
|
|
var err error
|
|
|
|
|
|
if p.portFirst {
|
|
|
- err = signal.Execute(pTask, aTask)
|
|
|
+ err = task.Run(task.Sequential(pTask, aTask))()
|
|
|
} else {
|
|
|
- err = signal.Execute(aTask, pTask)
|
|
|
+ err = task.Run(task.Sequential(aTask, pTask))()
|
|
|
}
|
|
|
|
|
|
if err != nil {
|
|
|
@@ -177,21 +178,21 @@ func (p *AddressParser) writeAddress(writer io.Writer, address net.Address) erro
|
|
|
|
|
|
switch address.Family() {
|
|
|
case net.AddressFamilyIPv4, net.AddressFamilyIPv6:
|
|
|
- return signal.Execute(func() error {
|
|
|
+ return task.Run(task.Sequential(func() error {
|
|
|
return common.Error2(writer.Write([]byte{tb}))
|
|
|
}, func() error {
|
|
|
return common.Error2(writer.Write(address.IP()))
|
|
|
- })
|
|
|
+ }))()
|
|
|
case net.AddressFamilyDomain:
|
|
|
domain := address.Domain()
|
|
|
if isDomainTooLong(domain) {
|
|
|
return newError("Super long domain is not supported: ", domain)
|
|
|
}
|
|
|
- return signal.Execute(func() error {
|
|
|
+ return task.Run(task.Sequential(func() error {
|
|
|
return common.Error2(writer.Write([]byte{tb, byte(len(domain))}))
|
|
|
}, func() error {
|
|
|
return common.Error2(writer.Write([]byte(domain)))
|
|
|
- })
|
|
|
+ }))()
|
|
|
default:
|
|
|
panic("Unknown family type.")
|
|
|
}
|
|
|
@@ -207,8 +208,8 @@ func (p *AddressParser) WriteAddressPort(writer io.Writer, addr net.Address, por
|
|
|
}
|
|
|
|
|
|
if p.portFirst {
|
|
|
- return signal.Execute(pTask, aTask)
|
|
|
+ return task.Run(task.Sequential(pTask, aTask))()
|
|
|
}
|
|
|
|
|
|
- return signal.Execute(aTask, pTask)
|
|
|
+ return task.Run(task.Sequential(aTask, pTask))()
|
|
|
}
|