Skip to content

Commit 79f78ac

Browse files
committed
Updates based on comments
Signed-off-by: Derek Collison <[email protected]>
1 parent 3201893 commit 79f78ac

File tree

3 files changed

+16
-12
lines changed

3 files changed

+16
-12
lines changed

server/accounts_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@ func TestNoPrefixWildcardMapping(t *testing.T) {
582582
t.Fatalf("Error registering client with 'bar' account: %v", err)
583583
}
584584

585-
if err := cfoo.acc.addStreamExport(">", []*Account{barAcc}); err != nil { // Public with no accounts defined.
585+
if err := cfoo.acc.addStreamExport(">", []*Account{barAcc}); err != nil {
586586
t.Fatalf("Error adding stream export to client foo: %v", err)
587587
}
588588
if err := cbar.acc.addStreamImport(fooAcc, "*", ""); err != nil {
@@ -635,7 +635,7 @@ func TestPrefixWildcardMapping(t *testing.T) {
635635
t.Fatalf("Error registering client with 'bar' account: %v", err)
636636
}
637637

638-
if err := cfoo.acc.addStreamExport(">", []*Account{barAcc}); err != nil { // Public with no accounts defined.
638+
if err := cfoo.acc.addStreamExport(">", []*Account{barAcc}); err != nil {
639639
t.Fatalf("Error adding stream export to client foo: %v", err)
640640
}
641641
// Checking that trailing '.' is accepted, tested that it is auto added above.
@@ -689,7 +689,7 @@ func TestPrefixWildcardMappingWithLiteralSub(t *testing.T) {
689689
t.Fatalf("Error registering client with 'bar' account: %v", err)
690690
}
691691

692-
if err := cfoo.acc.addStreamExport(">", []*Account{barAcc}); err != nil { // Public with no accounts defined.
692+
if err := cfoo.acc.addStreamExport(">", []*Account{barAcc}); err != nil {
693693
t.Fatalf("Error adding stream export to client foo: %v", err)
694694
}
695695
if err := cbar.acc.addStreamImport(fooAcc, "*", "pub.imports."); err != nil {

server/client.go

+13-8
Original file line numberDiff line numberDiff line change
@@ -1956,29 +1956,34 @@ func (c *client) typeString() string {
19561956
// longer authorized, e.g. due to a config reload.
19571957
func (c *client) removeUnauthorizedSubs() {
19581958
c.mu.Lock()
1959-
if c.perms == nil {
1959+
if c.perms == nil || c.sl == nil {
19601960
c.mu.Unlock()
19611961
return
19621962
}
19631963
srv := c.srv
1964-
subs := make(map[string]*subscription, len(c.subs))
1965-
for sid, sub := range c.subs {
1966-
subs[sid] = sub
1964+
1965+
var subsa [32]*subscription
1966+
subs := subsa[:0]
1967+
for _, sub := range c.subs {
1968+
subs = append(subs, sub)
19671969
}
19681970

19691971
var removedSubs [32]*subscription
19701972
removed := removedSubs[:0]
19711973

1972-
for sid, sub := range subs {
1973-
if c.sl != nil && !c.canSubscribe(sub.subject) {
1974+
for _, sub := range subs {
1975+
if !c.canSubscribe(sub.subject) {
19741976
removed = append(removed, sub)
1975-
delete(c.subs, sid)
1977+
delete(c.subs, string(sub.sid))
19761978
}
19771979
}
19781980
c.mu.Unlock()
19791981

1982+
// Remove unauthorized clients subscriptions.
1983+
c.sl.RemoveBatch(removed)
1984+
1985+
// Report back to client and logs.
19801986
for _, sub := range removed {
1981-
c.sl.Remove(sub)
19821987
c.sendErr(fmt.Sprintf("Permissions Violation for Subscription to %q (sid %s)",
19831988
sub.subject, sub.sid))
19841989
srv.Noticef("Removed sub %q for user %q - not authorized",

server/server.go

-1
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,6 @@ func (s *Server) copyInfo() Info {
833833

834834
func (s *Server) createClient(conn net.Conn) *client {
835835
// Snapshot server options.
836-
// TODO(dlc) - This can get expensive.
837836
opts := s.getOpts()
838837

839838
max_pay := int64(opts.MaxPayload)

0 commit comments

Comments
 (0)