Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r703 r704 615 615 } 616 616 617 func (dc *downstreamConn) handleMessage( msg *irc.Message) error {618 ctx, cancel := dc.conn.NewContext(c ontext.TODO())617 func (dc *downstreamConn) handleMessage(ctx context.Context, msg *irc.Message) error { 618 ctx, cancel := dc.conn.NewContext(ctx) 619 619 defer cancel() 620 620 … … 1402 1402 1403 1403 func (dc *downstreamConn) runUntilRegistered() error { 1404 ctx, cancel := context.WithTimeout(context.TODO(), downstreamRegisterTimeout) 1405 defer cancel() 1406 1407 // Close the connection with an error if the deadline is exceeded 1408 go func() { 1409 <-ctx.Done() 1410 if err := ctx.Err(); err == context.DeadlineExceeded { 1411 dc.SendMessage(&irc.Message{ 1412 Prefix: dc.srv.prefix(), 1413 Command: "ERROR", 1414 Params: []string{"Connection registration timed out"}, 1415 }) 1416 dc.Close() 1417 } 1418 }() 1419 1404 1420 for !dc.registered { 1405 1421 msg, err := dc.ReadMessage() … … 1408 1424 } 1409 1425 1410 err = dc.handleMessage( msg)1426 err = dc.handleMessage(ctx, msg) 1411 1427 if ircErr, ok := err.(ircError); ok { 1412 1428 ircErr.Message.Prefix = dc.srv.prefix() -
trunk/server.go
r694 r704 29 29 var backlogTimeout = 10 * time.Second 30 30 var handleDownstreamMessageTimeout = 10 * time.Second 31 var downstreamRegisterTimeout = 30 * time.Second 31 32 var chatHistoryLimit = 1000 32 33 var backlogLimit = 4000 -
trunk/user.go
r701 r704 638 638 break 639 639 } 640 err := dc.handleMessage( msg)640 err := dc.handleMessage(context.TODO(), msg) 641 641 if ircErr, ok := err.(ircError); ok { 642 642 ircErr.Message.Prefix = dc.srv.prefix()
Note:
See TracChangeset
for help on using the changeset viewer.