unfuck nickname

This commit is contained in:
Cadey Ratio 2017-05-10 15:51:37 -07:00
parent 415e967af0
commit 77f7cfa3c3
1 changed files with 19 additions and 17 deletions

36
main.go
View File

@ -10,7 +10,6 @@ import (
"github.com/Xe/ln"
"github.com/caarlos0/env"
_ "github.com/joho/godotenv/autoload"
"github.com/kr/pretty"
"gopkg.in/irc.v1"
)
@ -122,6 +121,7 @@ func (s *Server) F() ln.F {
return ln.F{
"registered": s.registered,
"remote_addr": s.conn.RemoteAddr().String(),
"nickname": s.nickname,
}
}
@ -129,24 +129,12 @@ func (s *Server) HandleConn(ctx context.Context) {
defer s.conn.Close()
defer s.cancel()
s.nickname = "*"
for {
if (s.nick && s.user) && !s.registered {
s.iw.Writef(":%s 001 * :Welcome to an IRC relay!", s.cfg.ServerName)
s.iw.Writef(":%s 001 %s :Welcome to an IRC relay!", s.cfg.ServerName, s.nickname)
s.registered = true
}
msg, err := s.ir.ReadMessage()
if err != nil {
ln.Error(err, s.F(), ln.F{"action": "public_stream"})
return
}
pretty.Println(msg)
switch msg.Command {
case "NICK":
s.nick = true
s.nickname = msg.Params[0]
err := s.stream(ctx, "&user", "user", "")
if err != nil {
@ -159,6 +147,20 @@ func (s *Server) HandleConn(ctx context.Context) {
ln.Error(err, s.F(), ln.F{"action": "public_stream"})
return
}
}
msg, err := s.ir.ReadMessage()
if err != nil {
ln.Error(err, s.F(), ln.F{"action": "public_stream"})
return
}
ln.Log(s.F(), ln.F{"verb": msg.Command})
switch msg.Command {
case "NICK":
s.nick = true
s.nickname = msg.Params[0]
case "USER":
s.user = true
@ -169,7 +171,7 @@ func (s *Server) HandleConn(ctx context.Context) {
msg.Command = "PONG"
s.iw.WriteMessage(msg)
default:
s.iw.Writef(":%s 421 * :Unknown command %q", s.cfg.ServerName, msg.Command)
s.iw.Writef(":%s 421 %s :Unknown command %q", s.cfg.ServerName, s.nickname, msg.Command)
continue
}
}