OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / btcsuite / go-socks / socks / conn.go
1 // Copyright 2012 Samuel Stauffer. All rights reserved.
2 // Use of this source code is governed by a 3-clause BSD
3 // license that can be found in the LICENSE file.
4
5 package socks
6
7 import (
8         "net"
9         "time"
10 )
11
12 type proxiedConn struct {
13         conn       net.Conn
14         remoteAddr *ProxiedAddr
15         boundAddr  *ProxiedAddr
16 }
17
18 func (c *proxiedConn) Read(b []byte) (int, error) {
19         return c.conn.Read(b)
20 }
21
22 func (c *proxiedConn) Write(b []byte) (int, error) {
23         return c.conn.Write(b)
24 }
25
26 func (c *proxiedConn) Close() error {
27         return c.conn.Close()
28 }
29
30 func (c *proxiedConn) LocalAddr() net.Addr {
31         if c.boundAddr != nil {
32                 return c.boundAddr
33         }
34         return c.conn.LocalAddr()
35 }
36
37 func (c *proxiedConn) RemoteAddr() net.Addr {
38         if c.remoteAddr != nil {
39                 return c.remoteAddr
40         }
41         return c.conn.RemoteAddr()
42 }
43
44 func (c *proxiedConn) SetDeadline(t time.Time) error {
45         return c.conn.SetDeadline(t)
46 }
47
48 func (c *proxiedConn) SetReadDeadline(t time.Time) error {
49         return c.conn.SetReadDeadline(t)
50 }
51
52 func (c *proxiedConn) SetWriteDeadline(t time.Time) error {
53         return c.conn.SetWriteDeadline(t)
54 }