Legend:
- Unmodified
- Added
- Removed
-
trunk/README.md
r86 r91 15 15 go run ./cmd/jounce 16 16 17 Then connect with username `jounce@chat.freenode.net` and join `#jounce`. 18 17 19 ## Contributing 18 20 -
trunk/downstream.go
r90 r91 2 2 3 3 import ( 4 "crypto/tls" 4 5 "fmt" 5 6 "io" 6 7 "net" 7 8 "strings" 9 "time" 8 10 9 11 "golang.org/x/crypto/bcrypt" … … 337 339 } 338 340 341 func sanityCheckServer(addr string) error { 342 dialer := net.Dialer{Timeout: 30 * time.Second} 343 conn, err := tls.DialWithDialer(&dialer, "tcp", addr, nil) 344 if err != nil { 345 return err 346 } 347 return conn.Close() 348 } 349 339 350 func (dc *downstreamConn) register() error { 340 351 username := strings.TrimPrefix(dc.username, "~") … … 366 377 network = u.getNetwork(networkName) 367 378 if network == nil { 368 dc.logger.Printf("failed registration: unknown network %q", networkName) 369 dc.SendMessage(&irc.Message{ 370 Prefix: dc.srv.prefix(), 371 Command: irc.ERR_PASSWDMISMATCH, 372 Params: []string{"*", fmt.Sprintf("Unknown network %q", networkName)}, 373 }) 374 return nil 379 addr := networkName 380 if !strings.ContainsRune(addr, ':') { 381 addr = addr + ":6697" 382 } 383 384 dc.logger.Printf("trying to connect to new upstream server %q", addr) 385 if err := sanityCheckServer(addr); err != nil { 386 dc.logger.Printf("failed to connect to %q: %v", addr, err) 387 return ircError{&irc.Message{ 388 Command: irc.ERR_PASSWDMISMATCH, 389 Params: []string{"*", fmt.Sprintf("Failed to connect to %q", networkName)}, 390 }} 391 } 392 393 dc.logger.Printf("auto-adding network %q", networkName) 394 network, err = u.createNetwork(networkName, dc.nick) 395 if err != nil { 396 return err 397 } 375 398 } 376 399 } -
trunk/server.go
r90 r91 162 162 } 163 163 u.lock.Unlock() 164 } 165 166 func (u *user) createNetwork(addr, nick string) (*network, error) { 167 network := newNetwork(u, &Network{ 168 Addr: addr, 169 Nick: nick, 170 }) 171 err := u.srv.db.StoreNetwork(u.Username, &network.Network) 172 if err != nil { 173 return nil, err 174 } 175 u.lock.Lock() 176 u.networks = append(u.networks, network) 177 u.lock.Unlock() 178 go network.run() 179 return network, nil 164 180 } 165 181
Note:
See TracChangeset
for help on using the changeset viewer.