@@ -21,16 +21,18 @@ func NewClientConn(ctx context.Context, n uint8, sendFunc sendBytesFunc,
2121			math .MaxUint8 )
2222	}
2323
24- 	conn  :=  newGoBackNConn ( ctx ,  sendFunc , receiveFunc ,  false , n )
24+ 	cfg  :=  newConfig ( sendFunc , receiveFunc , n )
2525
2626	// Apply functional options 
2727	for  _ , o  :=  range  opts  {
28- 		o (conn )
28+ 		o (cfg )
2929	}
3030
31+ 	conn  :=  newGoBackNConn (ctx , cfg , "client" )
32+ 
3133	if  err  :=  conn .clientHandshake (); err  !=  nil  {
3234		if  err  :=  conn .Close (); err  !=  nil  {
33- 			log .Errorf ("error closing gbn ClientConn: %v" , err )
35+ 			conn . log .Errorf ("error closing gbn ClientConn: %v" , err )
3436		}
3537		return  nil , err 
3638	}
@@ -76,7 +78,7 @@ func (g *GoBackNConn) clientHandshake() error {
7678			case  <- recvNext :
7779			}
7880
79- 			b , err  :=  g .recvFromStream (g .ctx )
81+ 			b , err  :=  g .cfg . recvFromStream (g .ctx )
8082			if  err  !=  nil  {
8183				errChan  <-  err 
8284				return 
@@ -101,21 +103,22 @@ func (g *GoBackNConn) clientHandshake() error {
101103handshake:
102104	for  {
103105		// start Handshake 
104- 		msg  :=  & PacketSYN {N : g .n }
106+ 		msg  :=  & PacketSYN {N : g .cfg . n }
105107		msgBytes , err  :=  msg .Serialize ()
106108		if  err  !=  nil  {
107109			return  err 
108110		}
109111
110112		// Send SYN 
111- 		log .Debugf ("Client sending  SYN" )
112- 		if  err  :=  g .sendToStream (g .ctx , msgBytes ); err  !=  nil  {
113+ 		g . log .Debugf ("Sending  SYN" )
114+ 		if  err  :=  g .cfg . sendToStream (g .ctx , msgBytes ); err  !=  nil  {
113115			return  err 
114116		}
115117
116118		for  {
117119			// Wait for SYN 
118- 			log .Debugf ("Client waiting for SYN" )
120+ 			g .log .Debugf ("Waiting for SYN" )
121+ 
119122			select  {
120123			case  recvNext  <-  1 :
121124			case  <- g .quit :
@@ -127,8 +130,10 @@ handshake:
127130
128131			var  b  []byte 
129132			select  {
130- 			case  <- time .After (g .handshakeTimeout ):
131- 				log .Debugf ("SYN resendTimeout. Resending SYN." )
133+ 			case  <- time .After (g .cfg .handshakeTimeout ):
134+ 				g .log .Debugf ("SYN resendTimeout. Resending "  + 
135+ 					"SYN." )
136+ 
132137				continue  handshake
133138			case  <- g .quit :
134139				return  nil 
@@ -144,7 +149,8 @@ handshake:
144149				return  err 
145150			}
146151
147- 			log .Debugf ("Client got %T" , resp )
152+ 			g .log .Debugf ("Got %T" , resp )
153+ 
148154			switch  r  :=  resp .(type ) {
149155			case  * PacketSYN :
150156				respSYN  =  r 
@@ -159,24 +165,24 @@ handshake:
159165		}
160166	}
161167
162- 	log .Debugf ("Client got  SYN" )
168+ 	g . log .Debugf ("Got  SYN" )
163169
164- 	if  respSYN .N  !=  g .n  {
170+ 	if  respSYN .N  !=  g .cfg . n  {
165171		return  io .EOF 
166172	}
167173
168174	// Send SYNACK 
169- 	log .Debugf ("Client sending  SYNACK" )
175+ 	g . log .Debugf ("Sending  SYNACK" )
170176	synack , err  :=  new (PacketSYNACK ).Serialize ()
171177	if  err  !=  nil  {
172178		return  err 
173179	}
174180
175- 	if  err  :=  g .sendToStream (g .ctx , synack ); err  !=  nil  {
181+ 	if  err  :=  g .cfg . sendToStream (g .ctx , synack ); err  !=  nil  {
176182		return  err 
177183	}
178184
179- 	log .Debugf ("Client  Handshake complete" )
185+ 	g . log .Debugf ("Handshake complete" )
180186
181187	return  nil 
182188}
0 commit comments