|
@@ -41,7 +41,7 @@ var (
|
41
|
41
|
|
42
|
42
|
// whitelist of caps to serve on the STS-only listener. In particular,
|
43
|
43
|
// never advertise SASL, to discourage people from sending their passwords:
|
44
|
|
- stsOnlyCaps = caps.NewSet(caps.STS, caps.MessageTags, caps.ServerTime, caps.LabeledResponse, caps.Nope)
|
|
44
|
+ stsOnlyCaps = caps.NewSet(caps.STS, caps.MessageTags, caps.ServerTime, caps.Batch, caps.LabeledResponse, caps.EchoMessage, caps.Nope)
|
45
|
45
|
|
46
|
46
|
// we only have standard channels for now. TODO: any updates to this
|
47
|
47
|
// will also need to be reflected in CasefoldChannel
|
|
@@ -214,7 +214,7 @@ func (server *Server) tryRegister(c *Client, session *Session) (exiting bool) {
|
214
|
214
|
}
|
215
|
215
|
|
216
|
216
|
if c.isSTSOnly {
|
217
|
|
- server.playRegistrationBurst(session)
|
|
217
|
+ server.playSTSBurst(session)
|
218
|
218
|
return true
|
219
|
219
|
}
|
220
|
220
|
|
|
@@ -285,6 +285,19 @@ func (server *Server) tryRegister(c *Client, session *Session) (exiting bool) {
|
285
|
285
|
return false
|
286
|
286
|
}
|
287
|
287
|
|
|
288
|
+func (server *Server) playSTSBurst(session *Session) {
|
|
289
|
+ nick := utils.SafeErrorParam(session.client.preregNick)
|
|
290
|
+ session.Send(nil, server.name, RPL_WELCOME, nick, fmt.Sprintf("Welcome to the Internet Relay Network %s", nick))
|
|
291
|
+ session.Send(nil, server.name, RPL_YOURHOST, nick, fmt.Sprintf("Your host is %[1]s, running version %[2]s", server.name, "oragono"))
|
|
292
|
+ session.Send(nil, server.name, RPL_CREATED, nick, fmt.Sprintf("This server was created %s", time.Time{}.Format(time.RFC1123)))
|
|
293
|
+ session.Send(nil, server.name, RPL_MYINFO, nick, server.name, "oragono", "o", "o", "o")
|
|
294
|
+ session.Send(nil, server.name, RPL_ISUPPORT, nick, "CASEMAPPING=ascii")
|
|
295
|
+ session.Send(nil, server.name, ERR_NOMOTD, nick, "MOTD is unavailable")
|
|
296
|
+ for _, line := range server.Config().Server.STS.bannerLines {
|
|
297
|
+ session.Send(nil, server.name, "NOTICE", nick, line)
|
|
298
|
+ }
|
|
299
|
+}
|
|
300
|
+
|
288
|
301
|
func (server *Server) playRegistrationBurst(session *Session) {
|
289
|
302
|
c := session.client
|
290
|
303
|
// continue registration
|
|
@@ -300,13 +313,6 @@ func (server *Server) playRegistrationBurst(session *Session) {
|
300
|
313
|
session.Send(nil, server.name, RPL_CREATED, d.nick, fmt.Sprintf(c.t("This server was created %s"), server.ctime.Format(time.RFC1123)))
|
301
|
314
|
session.Send(nil, server.name, RPL_MYINFO, d.nick, server.name, Ver, rplMyInfo1, rplMyInfo2, rplMyInfo3)
|
302
|
315
|
|
303
|
|
- if c.isSTSOnly {
|
304
|
|
- for _, line := range server.Config().Server.STS.bannerLines {
|
305
|
|
- c.Notice(line)
|
306
|
|
- }
|
307
|
|
- return
|
308
|
|
- }
|
309
|
|
-
|
310
|
316
|
rb := NewResponseBuffer(session)
|
311
|
317
|
server.RplISupport(c, rb)
|
312
|
318
|
server.Lusers(c, rb)
|