1
0
Fork 0
forked from External/ergo

Merge remote-tracking branch 'origin/master' into listener_refactor.4

This commit is contained in:
Shivaram Lingamneni 2019-06-28 09:05:07 -04:00
commit cfe991a335
16 changed files with 96 additions and 91 deletions

View file

@ -1160,12 +1160,7 @@ func (session *Session) sendFromClientInternal(blocking bool, serverTime time.Ti
msg.SetTag("msgid", msgid)
}
// attach server-time
if session.capabilities.Has(caps.ServerTime) {
if serverTime.IsZero() {
serverTime = time.Now().UTC()
}
msg.SetTag("time", serverTime.Format(IRCv3TimestampFormat))
}
session.setTimeTag(&msg, serverTime)
return session.SendRawMessage(msg, blocking)
}
@ -1246,12 +1241,19 @@ func (client *Client) Send(tags map[string]string, prefix string, command string
func (session *Session) Send(tags map[string]string, prefix string, command string, params ...string) (err error) {
msg := ircmsg.MakeMessage(tags, prefix, command, params...)
if session.capabilities.Has(caps.ServerTime) && !msg.HasTag("time") {
msg.SetTag("time", time.Now().UTC().Format(IRCv3TimestampFormat))
}
session.setTimeTag(&msg, time.Time{})
return session.SendRawMessage(msg, false)
}
func (session *Session) setTimeTag(msg *ircmsg.IrcMessage, serverTime time.Time) {
if session.capabilities.Has(caps.ServerTime) && !msg.HasTag("time") {
if serverTime.IsZero() {
serverTime = time.Now()
}
msg.SetTag("time", serverTime.UTC().Format(IRCv3TimestampFormat))
}
}
// Notice sends the client a notice from the server.
func (client *Client) Notice(text string) {
client.Send(nil, client.server.name, "NOTICE", client.Nick(), text)