Documentation ¶
Overview ¶
Package slowdown provides an implementation of net.Listener that limits bandwidth.
Index ¶
- Variables
- func NewSlowListener(listener net.Listener, readrate uint, writerate uint) net.Listener
- type SlowConn
- func (sc *SlowConn) Close() error
- func (sc *SlowConn) LocalAddr() net.Addr
- func (sc *SlowConn) Read(b []byte) (n int, err error)
- func (sc *SlowConn) RemoteAddr() net.Addr
- func (sc *SlowConn) SetDeadline(t time.Time) error
- func (sc *SlowConn) SetReadDeadline(t time.Time) error
- func (sc *SlowConn) SetWriteDeadline(t time.Time) error
- func (sc *SlowConn) Write(b []byte) (n int, err error)
- type SlowListener
Constants ¶
This section is empty.
Variables ¶
var MaxRate uint = (1024 * 1024) * 1000
The maximum rate you should specify for readrate or writerate.If this is too high, the token bucket implementation seems to break down.
Functions ¶
Types ¶
type SlowConn ¶
type SlowConn struct {
// contains filtered or unexported fields
}
SlowConn is a slow connection
func (*SlowConn) Close ¶
Close closes the connection. Any blocked Read or Write operations will be unblocked and return errors.
func (*SlowConn) Read ¶
Read reads data from the connection. Read can be made to time out and return a Error with Timeout() == true after a fixed time limit; see SetDeadline and SetReadDeadline.
func (*SlowConn) RemoteAddr ¶
RemoteAddr returns the remote network address.
func (*SlowConn) SetDeadline ¶
SetDeadline sets the read and write deadlines associated with the connection. It is equivalent to calling both SetReadDeadline and SetWriteDeadline.
A deadline is an absolute time after which I/O operations fail with a timeout (see type Error) instead of blocking. The deadline applies to all future I/O, not just the immediately following call to Read or Write.
An idle timeout can be implemented by repeatedly extending the deadline after successful Read or Write calls.
A zero value for t means I/O operations will not time out.
func (*SlowConn) SetReadDeadline ¶
SetReadDeadline sets the deadline for future Read calls. A zero value for t means Read will not time out.
func (*SlowConn) SetWriteDeadline ¶
SetWriteDeadline sets the deadline for future Write calls. Even if write times out, it may return n > 0, indicating that some of the data was successfully written. A zero value for t means Write will not time out.
type SlowListener ¶
type SlowListener struct {
// contains filtered or unexported fields
}
SlowListener is a listener that limits global IO over all connections
func (*SlowListener) Accept ¶
func (l *SlowListener) Accept() (net.Conn, error)
Accept waits for and returns the next connection to the listener.
func (*SlowListener) Addr ¶
func (l *SlowListener) Addr() net.Addr
Addr returns the listener's network address.