Browse Source

update to proposed draft/resume-0.5 behavior

tags/v1.1.0-rc1
Shivaram Lingamneni 5 years ago
parent
commit
acc9d8c13d
5 changed files with 14 additions and 20 deletions
  1. 1
    1
      gencapdefs.py
  2. 2
    2
      irc/caps/defs.go
  3. 0
    3
      irc/client.go
  4. 1
    1
      irc/commands.go
  5. 10
    13
      irc/handlers.go

+ 1
- 1
gencapdefs.py View File

@@ -113,7 +113,7 @@ CAPDEFS = [
113 113
     ),
114 114
     CapDef(
115 115
         identifier="Resume",
116
-        name="draft/resume-0.4",
116
+        name="draft/resume-0.5",
117 117
         url="https://github.com/DanielOaks/ircv3-specifications/blob/master+resume/extensions/resume.md",
118 118
         standard="proposed IRCv3",
119 119
     ),

+ 2
- 2
irc/caps/defs.go View File

@@ -77,7 +77,7 @@ const (
77 77
 	// https://github.com/SaberUK/ircv3-specifications/blob/rename/extensions/rename.md
78 78
 	Rename Capability = iota
79 79
 
80
-	// Resume is the proposed IRCv3 capability named "draft/resume-0.4":
80
+	// Resume is the proposed IRCv3 capability named "draft/resume-0.5":
81 81
 	// https://github.com/DanielOaks/ircv3-specifications/blob/master+resume/extensions/resume.md
82 82
 	Resume Capability = iota
83 83
 
@@ -141,7 +141,7 @@ var (
141 141
 		"message-tags",
142 142
 		"multi-prefix",
143 143
 		"draft/rename",
144
-		"draft/resume-0.4",
144
+		"draft/resume-0.5",
145 145
 		"sasl",
146 146
 		"server-time",
147 147
 		"draft/setname",

+ 0
- 3
irc/client.go View File

@@ -579,9 +579,6 @@ func (session *Session) playResume() {
579 579
 	}
580 580
 
581 581
 	timestamp := session.resumeDetails.Timestamp
582
-	if timestamp.IsZero() {
583
-		timestamp = session.client.ctime
584
-	}
585 582
 	gap := lastDiscarded.Sub(timestamp)
586 583
 	session.resumeDetails.HistoryIncomplete = gap > 0
587 584
 	gapSeconds := int(gap.Seconds()) + 1 // round up to avoid confusion

+ 1
- 1
irc/commands.go View File

@@ -232,7 +232,7 @@ func init() {
232 232
 		"RESUME": {
233 233
 			handler:      resumeHandler,
234 234
 			usablePreReg: true,
235
-			minParams:    1,
235
+			minParams:    2,
236 236
 		},
237 237
 		"SAJOIN": {
238 238
 			handler:   sajoinHandler,

+ 10
- 13
irc/handlers.go View File

@@ -2359,27 +2359,24 @@ func renameHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
2359 2359
 	return false
2360 2360
 }
2361 2361
 
2362
-// RESUME <token> [timestamp]
2362
+// RESUME <token> <timestamp>
2363 2363
 func resumeHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
2364
-	details := ResumeDetails{
2365
-		PresentedToken: msg.Params[0],
2366
-	}
2367
-
2368 2364
 	if client.registered {
2369 2365
 		rb.Add(nil, server.name, "FAIL", "RESUME", "REGISTRATION_IS_COMPLETED", client.t("Cannot resume connection, connection registration has already been completed"))
2370 2366
 		return false
2371 2367
 	}
2372 2368
 
2373
-	if 1 < len(msg.Params) {
2374
-		ts, err := time.Parse(IRCv3TimestampFormat, msg.Params[1])
2375
-		if err == nil {
2376
-			details.Timestamp = ts
2377
-		} else {
2378
-			rb.Add(nil, server.name, "WARN", "RESUME", "HISTORY_LOST", client.t("Timestamp is not in 2006-01-02T15:04:05.999Z format, ignoring it"))
2379
-		}
2369
+	ts, err := time.Parse(IRCv3TimestampFormat, msg.Params[1])
2370
+	if err != nil {
2371
+		rb.Add(nil, server.name, "FAIL", "RESUME", "INVALID_TIMESTAMP", client.t("Cannot resume connection, timestamp is not valid"))
2372
+		return false
2373
+	}
2374
+
2375
+	rb.session.resumeDetails = &ResumeDetails{
2376
+		PresentedToken: msg.Params[0],
2377
+		Timestamp:      ts,
2380 2378
 	}
2381 2379
 
2382
-	rb.session.resumeDetails = &details
2383 2380
 	return false
2384 2381
 }
2385 2382
 

Loading…
Cancel
Save