Commit fdd7edb 1 parent 3d9483c commit fdd7edb Copy full SHA for fdd7edb
File tree 4 files changed +63
-23
lines changed
4 files changed +63
-23
lines changed Original file line number Diff line number Diff line change @@ -85,18 +85,17 @@ func (c *spoc) checkIdenticalServices(sRules *serviceRules) {
85
85
// Sort riList, because we use attributes of first element
86
86
// to build hash key from.
87
87
slices .SortFunc (riList , func (a , b * ruleInfo ) int {
88
- if a . deny != b . deny {
89
- if a . deny {
88
+ cmpBool1 := func ( a bool ) int {
89
+ if a {
90
90
return - 1
91
91
}
92
- // Uncoverable, deny rules have been put in front of list.
93
- //return 1
92
+ return 1
93
+ }
94
+ if a .deny != b .deny {
95
+ return cmpBool1 (a .deny )
94
96
}
95
97
if a .objIsSrc != b .objIsSrc {
96
- if ! a .objIsSrc {
97
- return - 1
98
- }
99
- return 1
98
+ return cmpBool1 (! a .objIsSrc )
100
99
}
101
100
return slices .Compare (a .names , b .names )
102
101
})
Original file line number Diff line number Diff line change @@ -343,26 +343,24 @@ func moveRulesEspAh(
343
343
}
344
344
return cmp .Compare (a .Bits (), b .Bits ())
345
345
}
346
+ hasLog = true
346
347
slices .SortStableFunc (rules , func (a , b * ciscoRule ) int {
347
- if a . deny && b . deny {
348
- return 0
349
- }
350
- if a . deny {
351
- return - 1
352
- }
353
- if b . deny {
348
+ cmpBool := func ( a , b bool ) int {
349
+ if a == b {
350
+ return 0
351
+ }
352
+ if a {
353
+ return - 1
354
+ }
354
355
return 1
355
356
}
357
+ if a .deny || b .deny {
358
+ return cmpBool (a .deny , b .deny )
359
+ }
356
360
sa := needSort (a )
357
361
sb := needSort (b )
358
- if ! sa && ! sb {
359
- return 0
360
- }
361
- if ! sa {
362
- return 1
363
- }
364
- if ! sb {
365
- return - 1
362
+ if ! sa || ! sb {
363
+ return cmpBool (! sb , ! sa )
366
364
}
367
365
if cmp := strings .Compare (a .prt .protocol , b .prt .protocol ); cmp != 0 {
368
366
return cmp
Original file line number Diff line number Diff line change @@ -337,6 +337,27 @@ Warning: These services have identical rule definitions.
337
337
- service :s2
338
338
=OPTIONS =--check_identical_services =warn
339
339
340
+ ############################################################
341
+ =TITLE =Changed order of equal rules (3 )
342
+ =INPUT =
343
+ [[topo ]]
344
+ service :s1 = {
345
+ user = network:n2 ;
346
+ deny src = host:h10 ; dst = user; prt = tcp 22;
347
+ permit src = network:n1 ; dst = user; prt = tcp 22;
348
+ }
349
+ service: s2 = {
350
+ user = interface: r1. n1;
351
+ permit src = network: n1; dst = user; prt = tcp 22 ;
352
+ deny src = host: h10; dst = user; prt = tcp 22 ;
353
+ }
354
+ = WARNING=
355
+ Warning: These services have identical rule definitions .
356
+ A single service should be created instead , with merged users .
357
+ - service :s1
358
+ - service :s2
359
+ =OPTIONS =--check_identical_services =warn --check_duplicate_rules =0
360
+
340
361
############################################################
341
362
=TITLE =Similar service , but changed src /dst
342
363
=INPUT =
Original file line number Diff line number Diff line change @@ -353,6 +353,28 @@ Warning: These services have identical rule definitions.
353
353
- service:s2
354
354
=OPTIONS=--check_identical_services=warn
355
355
356
+ ############################################################
357
+ =TITLE=Changed order of equal rules (3)
358
+ =PARAMS=--ipv6
359
+ =INPUT=
360
+ [[topo]]
361
+ service:s1 = {
362
+ user = network:n2;
363
+ deny src = host:h10; dst = user; prt = tcp 22;
364
+ permit src = network:n1; dst = user; prt = tcp 22;
365
+ }
366
+ service:s2 = {
367
+ user = interface:r1.n1;
368
+ permit src = network:n1; dst = user; prt = tcp 22;
369
+ deny src = host:h10; dst = user; prt = tcp 22;
370
+ }
371
+ =WARNING=
372
+ Warning: These services have identical rule definitions.
373
+ A single service should be created instead, with merged users.
374
+ - service:s1
375
+ - service:s2
376
+ =OPTIONS=--check_identical_services=warn --check_duplicate_rules=0
377
+
356
378
############################################################
357
379
=TITLE=Similar service, but changed src/dst
358
380
=PARAMS=--ipv6
You can’t perform that action at this time.
0 commit comments