Explorar el Código

consolidate some time-setting code

tags/v1.2.0-rc1
Shivaram Lingamneni hace 5 años
padre
commit
8dca545264
Se han modificado 2 ficheros con 13 adiciones y 17 borrados
  1. 10
    8
      irc/client.go
  2. 3
    9
      irc/responsebuffer.go

+ 10
- 8
irc/client.go Ver fichero

1160
 		msg.SetTag("msgid", msgid)
1160
 		msg.SetTag("msgid", msgid)
1161
 	}
1161
 	}
1162
 	// attach server-time
1162
 	// attach server-time
1163
-	if session.capabilities.Has(caps.ServerTime) {
1164
-		if serverTime.IsZero() {
1165
-			serverTime = time.Now().UTC()
1166
-		}
1167
-		msg.SetTag("time", serverTime.Format(IRCv3TimestampFormat))
1168
-	}
1163
+	session.setTimeTag(&msg, serverTime)
1169
 
1164
 
1170
 	return session.SendRawMessage(msg, blocking)
1165
 	return session.SendRawMessage(msg, blocking)
1171
 }
1166
 }
1246
 
1241
 
1247
 func (session *Session) Send(tags map[string]string, prefix string, command string, params ...string) (err error) {
1242
 func (session *Session) Send(tags map[string]string, prefix string, command string, params ...string) (err error) {
1248
 	msg := ircmsg.MakeMessage(tags, prefix, command, params...)
1243
 	msg := ircmsg.MakeMessage(tags, prefix, command, params...)
1244
+	session.setTimeTag(&msg, time.Time{})
1245
+	return session.SendRawMessage(msg, false)
1246
+}
1247
+
1248
+func (session *Session) setTimeTag(msg *ircmsg.IrcMessage, serverTime time.Time) {
1249
 	if session.capabilities.Has(caps.ServerTime) && !msg.HasTag("time") {
1249
 	if session.capabilities.Has(caps.ServerTime) && !msg.HasTag("time") {
1250
-		msg.SetTag("time", time.Now().UTC().Format(IRCv3TimestampFormat))
1250
+		if serverTime.IsZero() {
1251
+			serverTime = time.Now()
1252
+		}
1253
+		msg.SetTag("time", serverTime.UTC().Format(IRCv3TimestampFormat))
1251
 	}
1254
 	}
1252
-	return session.SendRawMessage(msg, false)
1253
 }
1255
 }
1254
 
1256
 
1255
 // Notice sends the client a notice from the server.
1257
 // Notice sends the client a notice from the server.

+ 3
- 9
irc/responsebuffer.go Ver fichero

93
 		msg.SetTag("msgid", msgid)
93
 		msg.SetTag("msgid", msgid)
94
 	}
94
 	}
95
 	// attach server-time
95
 	// attach server-time
96
-	if rb.session.capabilities.Has(caps.ServerTime) && !msg.HasTag("time") {
97
-		msg.SetTag("time", time.UTC().Format(IRCv3TimestampFormat))
98
-	}
96
+	rb.session.setTimeTag(&msg, time)
99
 
97
 
100
 	rb.AddMessage(msg)
98
 	rb.AddMessage(msg)
101
 }
99
 }
223
 		// ACK message
221
 		// ACK message
224
 		message := ircmsg.MakeMessage(nil, rb.session.client.server.name, "ACK")
222
 		message := ircmsg.MakeMessage(nil, rb.session.client.server.name, "ACK")
225
 		message.SetTag(caps.LabelTagName, rb.Label)
223
 		message.SetTag(caps.LabelTagName, rb.Label)
226
-		if rb.session.capabilities.Has(caps.ServerTime) {
227
-			message.SetTag("time", time.Now().UTC().Format(IRCv3TimestampFormat))
228
-		}
224
+		rb.session.setTimeTag(&message, time.Time{})
229
 		rb.session.SendRawMessage(message, blocking)
225
 		rb.session.SendRawMessage(message, blocking)
230
 	} else if useLabel && len(rb.messages) == 1 && rb.batchID == "" && final {
226
 	} else if useLabel && len(rb.messages) == 1 && rb.batchID == "" && final {
231
 		// single labeled message
227
 		// single labeled message
235
 	// send each message out
231
 	// send each message out
236
 	for _, message := range rb.messages {
232
 	for _, message := range rb.messages {
237
 		// attach server-time if needed
233
 		// attach server-time if needed
238
-		if rb.session.capabilities.Has(caps.ServerTime) && !message.HasTag("time") {
239
-			message.SetTag("time", time.Now().UTC().Format(IRCv3TimestampFormat))
240
-		}
234
+		rb.session.setTimeTag(&message, time.Time{})
241
 
235
 
242
 		// attach batch ID, unless this message was part of a nested batch and is
236
 		// attach batch ID, unless this message was part of a nested batch and is
243
 		// already tagged
237
 		// already tagged

Loading…
Cancelar
Guardar