unfuck nickname
This commit is contained in:
parent
415e967af0
commit
77f7cfa3c3
36
main.go
36
main.go
|
@ -10,7 +10,6 @@ import (
|
||||||
"github.com/Xe/ln"
|
"github.com/Xe/ln"
|
||||||
"github.com/caarlos0/env"
|
"github.com/caarlos0/env"
|
||||||
_ "github.com/joho/godotenv/autoload"
|
_ "github.com/joho/godotenv/autoload"
|
||||||
"github.com/kr/pretty"
|
|
||||||
"gopkg.in/irc.v1"
|
"gopkg.in/irc.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -122,6 +121,7 @@ func (s *Server) F() ln.F {
|
||||||
return ln.F{
|
return ln.F{
|
||||||
"registered": s.registered,
|
"registered": s.registered,
|
||||||
"remote_addr": s.conn.RemoteAddr().String(),
|
"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.conn.Close()
|
||||||
defer s.cancel()
|
defer s.cancel()
|
||||||
|
|
||||||
|
s.nickname = "*"
|
||||||
|
|
||||||
for {
|
for {
|
||||||
if (s.nick && s.user) && !s.registered {
|
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
|
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", "")
|
err := s.stream(ctx, "&user", "user", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -159,6 +147,20 @@ func (s *Server) HandleConn(ctx context.Context) {
|
||||||
ln.Error(err, s.F(), ln.F{"action": "public_stream"})
|
ln.Error(err, s.F(), ln.F{"action": "public_stream"})
|
||||||
return
|
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":
|
case "USER":
|
||||||
s.user = true
|
s.user = true
|
||||||
|
@ -169,7 +171,7 @@ func (s *Server) HandleConn(ctx context.Context) {
|
||||||
msg.Command = "PONG"
|
msg.Command = "PONG"
|
||||||
s.iw.WriteMessage(msg)
|
s.iw.WriteMessage(msg)
|
||||||
default:
|
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
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue