aboutsummaryrefslogtreecommitdiff
path: root/slowpoke.go
diff options
context:
space:
mode:
Diffstat (limited to 'slowpoke.go')
-rw-r--r--slowpoke.go17
1 files changed, 4 insertions, 13 deletions
diff --git a/slowpoke.go b/slowpoke.go
index 4a36306..fb491a1 100644
--- a/slowpoke.go
+++ b/slowpoke.go
@@ -1,4 +1,4 @@
-package slowpoke
+package main
import (
"io"
@@ -18,7 +18,7 @@ type Slowpoke struct {
logger *logging.Logger
}
-func New(conn net.Conn, targetAddr *net.TCPAddr, latency time.Duration, bufferSize int, logger *logging.Logger) *Slowpoke {
+func NewSlowpoke(conn net.Conn, targetAddr *net.TCPAddr, latency time.Duration, bufferSize int, logger *logging.Logger) *Slowpoke {
return &Slowpoke{
conn: conn,
targetAddr: targetAddr,
@@ -55,25 +55,16 @@ func (s *Slowpoke) createBuffer() []byte {
func (s *Slowpoke) transferWithLatency(source net.Conn, target net.Conn) {
byteBuffer := s.createBuffer()
- var transferDirection string
- // If the data source is the client then we are sending
- if source == s.conn {
- transferDirection = "%d bytes sent"
- } else {
- transferDirection = "%d bytes received"
- }
-
for {
bytesRead, readError := source.Read(byteBuffer)
if bytesRead > 0 {
+ s.logger.Debugf("Transferring %d bytes from %s to %s with %s added latency", bytesRead, source.RemoteAddr(), target.RemoteAddr(), s.latency)
+
if s.latency != 0 {
- s.logger.Debugf(transferDirection+" with latency of %s", bytesRead, s.latency)
time.Sleep(s.latency)
- } else {
- s.logger.Debugf(transferDirection, bytesRead)
}
bytesWritten, writeError := target.Write(byteBuffer[0:bytesRead])