be5715a562
--HG-- branch : nmdc-ircfrontend
48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"libnmdc"
|
|
"log"
|
|
"net"
|
|
)
|
|
|
|
var (
|
|
ircAddress = flag.String("bind", ":6697", "The address:port to bind to and listen for clients on")
|
|
dcAddress = flag.String("upstream", "127.0.0.1:411", "Upstream NMDC server")
|
|
serverName = flag.String("servername", "nmdc-ircfrontend", "Server name displayed to clients")
|
|
)
|
|
|
|
func main() {
|
|
|
|
flag.Parse()
|
|
if len(*serverName) == 0 {
|
|
log.Println("Please specify the -servername parameter.")
|
|
return
|
|
}
|
|
|
|
listener, err := net.Listen("tcp", *ircAddress)
|
|
if err != nil {
|
|
log.Printf(err.Error())
|
|
return
|
|
}
|
|
|
|
log.Printf("Listening on %s", *ircAddress)
|
|
|
|
for {
|
|
conn, err := listener.Accept()
|
|
if err != nil {
|
|
log.Printf("Error accepting connection (%s)", err.Error())
|
|
continue
|
|
}
|
|
|
|
// Spin up an IRC server for the new user.
|
|
// The upstream connection doesn't get launched until we hear a nick
|
|
// from the irc client
|
|
|
|
server := NewServer(*serverName, libnmdc.HubAddress(*dcAddress))
|
|
go server.Run()
|
|
server.HandleConnection(conn)
|
|
}
|
|
}
|