Skip to content

Commit 13f056a

Browse files
authored
no-op: plumb context to handleIRC (#20)
1 parent 7e358e9 commit 13f056a

3 files changed

Lines changed: 15 additions & 11 deletions

File tree

robustirc-bridge/bridge.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package main
99

1010
import (
1111
"bufio"
12+
"context"
1213
"crypto/tls"
1314
"flag"
1415
"fmt"
@@ -298,7 +299,7 @@ func (s *ircsession) getMessages() {
298299
}
299300
}
300301

301-
func (p *bridge) handleIRC(conn net.Conn) {
302+
func (p *bridge) handleIRC(ctx context.Context, conn net.Conn) {
302303
var quitmsg, killmsg string
303304
var waitingForPingReply bool
304305

@@ -527,6 +528,7 @@ func main() {
527528
log.Fatal("You must specify either -network and -listen, or -socks.")
528529
}
529530

531+
ctx := context.Background()
530532
if *httpAddress != "" {
531533
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
532534
for _, n := range robustsession.CopyNetworks() {
@@ -570,7 +572,7 @@ func main() {
570572
listeners = append(listeners, ln)
571573
go func() {
572574
log.Printf("RobustIRC IRC bridge listening on %q (SOCKS). Specify an empty -socks= to disable.\n", *socks)
573-
if err := serveSocks(ln, &connWG); err != nil {
575+
if err := serveSocks(ctx, ln, &connWG); err != nil {
574576
log.Fatal(err)
575577
}
576578
}()
@@ -582,7 +584,7 @@ func main() {
582584
log.Printf("Not listening on %q (IRC) because -network= was not specified.\n", *listen)
583585
ln := maybeTLSListener(*socks)
584586
listeners = append(listeners, ln)
585-
log.Fatal(serveSocks(ln, &connWG))
587+
log.Fatal(serveSocks(ctx, ln, &connWG))
586588
}
587589

588590
// IRC
@@ -607,13 +609,13 @@ func main() {
607609
connWG.Add(1)
608610
go func() {
609611
defer connWG.Done()
610-
p.handleIRC(conn)
612+
p.handleIRC(ctx, conn)
611613
}()
612614
}
613615
}()
614616
}
615617
} else if n := nfds(); *network != "" && n > 0 {
616-
if err := handleSocketActivation(n, &connWG); err != nil {
618+
if err := handleSocketActivation(ctx, n, &connWG); err != nil {
617619
log.Fatal(err)
618620
}
619621
}

robustirc-bridge/socket_activation.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package main
55

66
import (
7+
"context"
78
"log"
89
"net"
910
"os"
@@ -32,7 +33,7 @@ func nfds() int {
3233
// handleSocketActivation handles listening on the systemd-provided sockets.
3334
// It can return an error to differentiate between this implementation and
3435
// the no-op on Windows.
35-
func handleSocketActivation(n int, connWG *sync.WaitGroup) error {
36+
func handleSocketActivation(ctx context.Context, n int, connWG *sync.WaitGroup) error {
3637
names := strings.Split(os.Getenv("LISTEN_FDNAMES"), ":")
3738
os.Unsetenv("LISTEN_PID")
3839
os.Unsetenv("LISTEN_FDS")
@@ -67,7 +68,7 @@ func handleSocketActivation(n int, connWG *sync.WaitGroup) error {
6768
connWG.Add(1)
6869
go func() {
6970
defer connWG.Done()
70-
p.handleIRC(conn)
71+
p.handleIRC(ctx, conn)
7172
}()
7273
}
7374
}()

robustirc-bridge/socks.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"context"
45
"encoding/binary"
56
"errors"
67
"fmt"
@@ -55,7 +56,7 @@ type socksConnectionData struct {
5556
Port uint16
5657
}
5758

58-
func serveSocks(ln net.Listener, connWG *sync.WaitGroup) error {
59+
func serveSocks(ctx context.Context, ln net.Listener, connWG *sync.WaitGroup) error {
5960
for {
6061
conn, err := ln.Accept()
6162
if err != nil {
@@ -69,7 +70,7 @@ func serveSocks(ln net.Listener, connWG *sync.WaitGroup) error {
6970
defer connWG.Done()
7071
s := &socksServer{conn}
7172

72-
if err := s.handleConn(); err != nil {
73+
if err := s.handleConn(ctx); err != nil {
7374
log.Printf("Could not SOCKS: %v\n", err)
7475
}
7576
}()
@@ -79,7 +80,7 @@ func serveSocks(ln net.Listener, connWG *sync.WaitGroup) error {
7980
return nil
8081
}
8182

82-
func (s *socksServer) handleConn() (err error) {
83+
func (s *socksServer) handleConn(ctx context.Context) (err error) {
8384
defer s.conn.Close()
8485

8586
if err = s.greet(); err != nil {
@@ -122,7 +123,7 @@ func (s *socksServer) handleConn() (err error) {
122123
return err
123124
}
124125

125-
p.handleIRC(s.conn)
126+
p.handleIRC(ctx, s.conn)
126127
// never returns
127128
return nil
128129
}

0 commit comments

Comments
 (0)