Changeset 532 in code for trunk/user.go
- Timestamp:
- May 25, 2021, 2:42:51 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/user.go
r501 r532 142 142 func (net *network) forEachDownstream(f func(*downstreamConn)) { 143 143 net.user.forEachDownstream(func(dc *downstreamConn) { 144 if dc.network == nil && dc.caps["soju.im/bouncer-networks"] { 145 return 146 } 144 147 if dc.network != nil && dc.network != net { 145 148 return … … 512 515 uc.updateAway() 513 516 517 netIDStr := fmt.Sprintf("%v", uc.network.ID) 514 518 uc.forEachDownstream(func(dc *downstreamConn) { 515 519 dc.updateSupportedCaps() 516 sendServiceNOTICE(dc, fmt.Sprintf("connected to %s", uc.network.GetName())) 520 521 if dc.caps["soju.im/bouncer-networks"] { 522 dc.SendMessage(&irc.Message{ 523 Prefix: dc.srv.prefix(), 524 Command: "BOUNCER", 525 Params: []string{"NETWORK", netIDStr, "status=connected"}, 526 }) 527 } else { 528 sendServiceNOTICE(dc, fmt.Sprintf("connected to %s", uc.network.GetName())) 529 } 517 530 518 531 dc.updateNick() … … 641 654 } 642 655 656 netIDStr := fmt.Sprintf("%v", uc.network.ID) 643 657 uc.forEachDownstream(func(dc *downstreamConn) { 644 658 dc.updateSupportedCaps() 659 660 if dc.caps["soju.im/bouncer-networks"] { 661 dc.SendMessage(&irc.Message{ 662 Prefix: dc.srv.prefix(), 663 Command: "BOUNCER", 664 Params: []string{"NETWORK", netIDStr, "status=disconnected"}, 665 }) 666 } 645 667 }) 646 668 647 669 if uc.network.lastError == nil { 648 670 uc.forEachDownstream(func(dc *downstreamConn) { 649 sendServiceNOTICE(dc, fmt.Sprintf("disconnected from %s", uc.network.GetName())) 671 if !dc.caps["soju.im/bouncer-networks"] { 672 sendServiceNOTICE(dc, fmt.Sprintf("disconnected from %s", uc.network.GetName())) 673 } 650 674 }) 651 675 } … … 701 725 702 726 u.addNetwork(network) 727 728 // TODO: broadcast network status 729 idStr := fmt.Sprintf("%v", network.ID) 730 u.forEachDownstream(func(dc *downstreamConn) { 731 if dc.caps["soju.im/bouncer-networks"] { 732 dc.SendMessage(&irc.Message{ 733 Prefix: dc.srv.prefix(), 734 Command: "BOUNCER", 735 Params: []string{"NETWORK", idStr, "network=" + network.GetName()}, 736 }) 737 } 738 }) 703 739 704 740 return network, nil … … 755 791 u.addNetwork(updatedNetwork) 756 792 793 // TODO: broadcast BOUNCER NETWORK notifications 794 757 795 return updatedNetwork, nil 758 796 } … … 769 807 770 808 u.removeNetwork(network) 809 810 idStr := fmt.Sprintf("%v", network.ID) 811 u.forEachDownstream(func(dc *downstreamConn) { 812 if dc.caps["soju.im/bouncer-networks"] { 813 dc.SendMessage(&irc.Message{ 814 Prefix: dc.srv.prefix(), 815 Command: "BOUNCER", 816 Params: []string{"NETWORK", idStr, "*"}, 817 }) 818 } 819 }) 820 771 821 return nil 772 822 }
Note:
See TracChangeset
for help on using the changeset viewer.