aboutsummaryrefslogtreecommitdiff
path: root/src/ext/Firewall/wixext
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2024-02-26 22:17:10 -0500
committerBob Arnson <github@bobs.org>2024-02-27 12:28:30 -0500
commit58d81bb1b6f7d7c6104914b3070dac95f16877c4 (patch)
tree01ba734d3d17087560e02f57a062b4712dc48f4b /src/ext/Firewall/wixext
parent6067839ba180f2f4bcd5eac67f839f68f513ccd2 (diff)
downloadwix-58d81bb1b6f7d7c6104914b3070dac95f16877c4.tar.gz
wix-58d81bb1b6f7d7c6104914b3070dac95f16877c4.tar.bz2
wix-58d81bb1b6f7d7c6104914b3070dac95f16877c4.zip
Use camelCase attribute values.
Diffstat (limited to 'src/ext/Firewall/wixext')
-rw-r--r--src/ext/Firewall/wixext/FirewallCompiler.cs98
-rw-r--r--src/ext/Firewall/wixext/FirewallDecompiler.cs46
2 files changed, 81 insertions, 63 deletions
diff --git a/src/ext/Firewall/wixext/FirewallCompiler.cs b/src/ext/Firewall/wixext/FirewallCompiler.cs
index c4a5318c..7db1dcc4 100644
--- a/src/ext/Firewall/wixext/FirewallCompiler.cs
+++ b/src/ext/Firewall/wixext/FirewallCompiler.cs
@@ -155,6 +155,16 @@ namespace WixToolset.Firewall
155 file = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); 155 file = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
156 } 156 }
157 break; 157 break;
158 case "Program":
159 if (fileId != null)
160 {
161 this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, element.Name.LocalName, "Program", parentElement.Name.LocalName));
162 }
163 else
164 {
165 program = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
166 }
167 break;
158 case "IgnoreFailure": 168 case "IgnoreFailure":
159 if (this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) == YesNoType.Yes) 169 if (this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) == YesNoType.Yes)
160 { 170 {
@@ -165,28 +175,18 @@ namespace WixToolset.Firewall
165 var onupdate = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 175 var onupdate = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
166 switch (onupdate) 176 switch (onupdate)
167 { 177 {
168 case "DoNothing": 178 case "doNothing":
169 attributes |= 0x2; // feaIgnoreUpdates 179 attributes |= 0x2; // feaIgnoreUpdates
170 break; 180 break;
171 case "EnableOnly": 181 case "enableOnly":
172 attributes |= 0x4; // feaEnableOnUpdate 182 attributes |= 0x4; // feaEnableOnUpdate
173 break; 183 break;
174 184
175 default: 185 default:
176 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "OnUpdate", onupdate, "EnableOnly", "DoNothing")); 186 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "OnUpdate", onupdate, "enableOnly", "doNothing"));
177 break; 187 break;
178 } 188 }
179 break; 189 break;
180 case "Program":
181 if (fileId != null)
182 {
183 this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, element.Name.LocalName, "Program", parentElement.Name.LocalName));
184 }
185 else
186 {
187 program = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
188 }
189 break;
190 case "Port": 190 case "Port":
191 port = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 191 port = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
192 break; 192 break;
@@ -284,17 +284,17 @@ namespace WixToolset.Firewall
284 action = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 284 action = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
285 switch (action) 285 switch (action)
286 { 286 {
287 case "Block": 287 case "block":
288 action = "0"; 288 action = "0";
289 break; 289 break;
290 case "Allow": 290 case "allow":
291 action = "1"; 291 action = "1";
292 break; 292 break;
293 293
294 default: 294 default:
295 if (!this.ParseHelper.ContainsProperty(action)) 295 if (!this.ParseHelper.ContainsProperty(action))
296 { 296 {
297 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "Action", action, "Allow", "Block")); 297 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "Action", action, "allow", "block"));
298 } 298 }
299 break; 299 break;
300 } 300 }
@@ -303,17 +303,17 @@ namespace WixToolset.Firewall
303 edgeTraversal = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 303 edgeTraversal = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
304 switch (edgeTraversal) 304 switch (edgeTraversal)
305 { 305 {
306 case "Deny": 306 case "deny":
307 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_DENY.ToString(); 307 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_DENY.ToString();
308 break; 308 break;
309 case "Allow": 309 case "allow":
310 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_ALLOW.ToString(); 310 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_ALLOW.ToString();
311 break; 311 break;
312 case "DeferToApp": 312 case "deferToApp":
313 attributes |= 0x8; // feaAddINetFwRule2 313 attributes |= 0x8; // feaAddINetFwRule2
314 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_DEFER_TO_APP.ToString(); 314 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_DEFER_TO_APP.ToString();
315 break; 315 break;
316 case "DeferToUser": 316 case "deferToUser":
317 attributes |= 0x8; // feaAddINetFwRule2 317 attributes |= 0x8; // feaAddINetFwRule2
318 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_DEFER_TO_USER.ToString(); 318 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_DEFER_TO_USER.ToString();
319 break; 319 break;
@@ -321,7 +321,7 @@ namespace WixToolset.Firewall
321 default: 321 default:
322 if (!this.ParseHelper.ContainsProperty(edgeTraversal)) 322 if (!this.ParseHelper.ContainsProperty(edgeTraversal))
323 { 323 {
324 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "EdgeTraversal", edgeTraversal, "Allow", "DeferToApp", "DeferToUser", "Deny")); 324 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "EdgeTraversal", edgeTraversal, "allow", "deferToApp", "deferToUser", "deny"));
325 } 325 }
326 break; 326 break;
327 } 327 }
@@ -338,7 +338,6 @@ namespace WixToolset.Firewall
338 case YesNoType.No: 338 case YesNoType.No:
339 enabled = "0"; 339 enabled = "0";
340 break; 340 break;
341
342 default: 341 default:
343 this.Messaging.Write(ErrorMessages.IllegalYesNoValue(sourceLineNumbers, element.Name.LocalName, "Enabled", enabled)); 342 this.Messaging.Write(ErrorMessages.IllegalYesNoValue(sourceLineNumbers, element.Name.LocalName, "Enabled", enabled));
344 break; 343 break;
@@ -359,16 +358,16 @@ namespace WixToolset.Firewall
359 interfaceTypeValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 358 interfaceTypeValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
360 switch (interfaceTypeValue) 359 switch (interfaceTypeValue)
361 { 360 {
362 case "RemoteAccess": 361 case "remoteAccess":
363 case "Wireless": 362 case "wireless":
364 case "Lan": 363 case "lan":
365 case "All": 364 case "all":
366 break; 365 break;
367 366
368 default: 367 default:
369 if (!this.ParseHelper.ContainsProperty(interfaceTypeValue)) 368 if (!this.ParseHelper.ContainsProperty(interfaceTypeValue))
370 { 369 {
371 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "InterfaceType", interfaceTypeValue, "RemoteAccess", "Wireless", "Lan", "All")); 370 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "InterfaceType", interfaceTypeValue, "remoteAccess", "wireless", "lan", "all"));
372 } 371 }
373 break; 372 break;
374 } 373 }
@@ -449,23 +448,23 @@ namespace WixToolset.Firewall
449 { 448 {
450 switch (secureFlags) 449 switch (secureFlags)
451 { 450 {
452 case "None": 451 case "none":
453 secureFlags = "0"; 452 secureFlags = "0";
454 break; 453 break;
455 case "NoEncapsulation": 454 case "noEncapsulation":
456 secureFlags = "1"; 455 secureFlags = "1";
457 break; 456 break;
458 case "WithIntegrity": 457 case "withIntegrity":
459 secureFlags = "2"; 458 secureFlags = "2";
460 break; 459 break;
461 case "NegotiateEncryption": 460 case "negotiateEncryption":
462 secureFlags = "3"; 461 secureFlags = "3";
463 break; 462 break;
464 case "Encrypt": 463 case "encrypt":
465 secureFlags = "4"; 464 secureFlags = "4";
466 break; 465 break;
467 default: 466 default:
468 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "IPSecSecureFlags", secureFlags, "None", "NoEncapsulation", "WithIntegrity", "NegotiateEncryption", "Encrypt")); 467 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "IPSecSecureFlags", secureFlags, "none", "noEncapsulation", "withIntegrity", "negotiateEncryption", "encrypt"));
469 break; 468 break;
470 } 469 }
471 } 470 }
@@ -573,43 +572,43 @@ namespace WixToolset.Firewall
573 572
574 if (String.IsNullOrEmpty(fileId) && String.IsNullOrEmpty(file) && String.IsNullOrEmpty(program)) 573 if (String.IsNullOrEmpty(fileId) && String.IsNullOrEmpty(file) && String.IsNullOrEmpty(program))
575 { 574 {
576 this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Program", "EdgeTraversal", "DeferToUser")); 575 this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Program", "EdgeTraversal", "deferToUser"));
577 } 576 }
578 577
579 if (port != null) 578 if (port != null)
580 { 579 {
581 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "Port", "EdgeTraversal", "DeferToUser")); 580 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "Port", "EdgeTraversal", "deferToUser"));
582 } 581 }
583 582
584 if (remotePort != null) 583 if (remotePort != null)
585 { 584 {
586 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "RemotePort", "EdgeTraversal", "DeferToUser")); 585 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "RemotePort", "EdgeTraversal", "deferToUser"));
587 } 586 }
588 587
589 if (localScope != null) 588 if (localScope != null)
590 { 589 {
591 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "LocalScope", "EdgeTraversal", "DeferToUser")); 590 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "LocalScope", "EdgeTraversal", "deferToUser"));
592 } 591 }
593 592
594 if (scope != null) 593 if (scope != null)
595 { 594 {
596 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "Scope", "EdgeTraversal", "DeferToUser")); 595 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "Scope", "EdgeTraversal", "deferToUser"));
597 } 596 }
598 597
599 if (profile != null) 598 if (profile != null)
600 { 599 {
601 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "Profile", "EdgeTraversal", "DeferToUser")); 600 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "Profile", "EdgeTraversal", "deferToUser"));
602 } 601 }
603 602
604 if (service != null) 603 if (service != null)
605 { 604 {
606 if (serviceName != null) 605 if (serviceName != null)
607 { 606 {
608 this.Messaging.Write(ErrorMessages.IllegalAttributeValueWhenNested(sourceLineNumbers, element.Name.LocalName, "EdgeTraversal", "DeferToUser", parentElement.Name.LocalName)); 607 this.Messaging.Write(ErrorMessages.IllegalAttributeValueWhenNested(sourceLineNumbers, element.Name.LocalName, "EdgeTraversal", "deferToUser", parentElement.Name.LocalName));
609 } 608 }
610 else 609 else
611 { 610 {
612 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "Service", "EdgeTraversal", "DeferToUser")); 611 this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, element.Name.LocalName, "Service", "EdgeTraversal", "deferToUser"));
613 } 612 }
614 } 613 }
615 } 614 }
@@ -807,16 +806,23 @@ namespace WixToolset.Firewall
807 { 806 {
808 switch (value) 807 switch (value)
809 { 808 {
810 case "RemoteAccess": 809 case "remoteAccess":
811 case "Wireless": 810 value = "RemoteAccess";
812 case "Lan": 811 break;
813 case "All": 812 case "wireless":
813 value = "Wireless";
814 break;
815 case "lan":
816 value = "Lan";
817 break;
818 case "all":
819 value = "All";
814 break; 820 break;
815 821
816 default: 822 default:
817 if (!this.ParseHelper.ContainsProperty(value)) 823 if (!this.ParseHelper.ContainsProperty(value))
818 { 824 {
819 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "Value", value, "RemoteAccess", "Wireless", "Lan", "All")); 825 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName, "Value", value, "remoteAccess", "wireless", "lan", "all"));
820 value = null; 826 value = null;
821 } 827 }
822 break; 828 break;
diff --git a/src/ext/Firewall/wixext/FirewallDecompiler.cs b/src/ext/Firewall/wixext/FirewallDecompiler.cs
index 7fafab17..46ab2bd1 100644
--- a/src/ext/Firewall/wixext/FirewallDecompiler.cs
+++ b/src/ext/Firewall/wixext/FirewallDecompiler.cs
@@ -4,6 +4,8 @@ namespace WixToolset.Firewall
4{ 4{
5 using System; 5 using System;
6 using System.Collections.Generic; 6 using System.Collections.Generic;
7 using System.Reflection;
8 using System.Security;
7 using System.Xml.Linq; 9 using System.Xml.Linq;
8 using WixToolset.Data; 10 using WixToolset.Data;
9 using WixToolset.Data.WindowsInstaller; 11 using WixToolset.Data.WindowsInstaller;
@@ -161,11 +163,11 @@ namespace WixToolset.Firewall
161 163
162 if ((attr & 0x2) == 0x2) 164 if ((attr & 0x2) == 0x2)
163 { 165 {
164 firewallException.Add(new XAttribute("OnUpdate", "DoNothing")); 166 firewallException.Add(new XAttribute("OnUpdate", "doNothing"));
165 } 167 }
166 else if ((attr & 0x4) == 0x4) 168 else if ((attr & 0x4) == 0x4)
167 { 169 {
168 firewallException.Add(new XAttribute("OnUpdate", "EnableOnly")); 170 firewallException.Add(new XAttribute("OnUpdate", "enableOnly"));
169 } 171 }
170 } 172 }
171 173
@@ -222,10 +224,10 @@ namespace WixToolset.Firewall
222 case FirewallConstants.IntegerNotSetString: 224 case FirewallConstants.IntegerNotSetString:
223 break; 225 break;
224 case "1": 226 case "1":
225 firewallException.Add(new XAttribute("Action", "Allow")); 227 firewallException.Add(new XAttribute("Action", "allow"));
226 break; 228 break;
227 case "0": 229 case "0":
228 firewallException.Add(new XAttribute("Action", "Block")); 230 firewallException.Add(new XAttribute("Action", "block"));
229 break; 231 break;
230 default: 232 default:
231 firewallException.Add(new XAttribute("Action", action)); 233 firewallException.Add(new XAttribute("Action", action));
@@ -241,16 +243,16 @@ namespace WixToolset.Firewall
241 case FirewallConstants.IntegerNotSetString: 243 case FirewallConstants.IntegerNotSetString:
242 break; 244 break;
243 case "0": 245 case "0":
244 firewallException.Add(new XAttribute("EdgeTraversal", "Deny")); 246 firewallException.Add(new XAttribute("EdgeTraversal", "deny"));
245 break; 247 break;
246 case "1": 248 case "1":
247 firewallException.Add(new XAttribute("EdgeTraversal", "Allow")); 249 firewallException.Add(new XAttribute("EdgeTraversal", "allow"));
248 break; 250 break;
249 case "2": 251 case "2":
250 firewallException.Add(new XAttribute("EdgeTraversal", "DeferToApp")); 252 firewallException.Add(new XAttribute("EdgeTraversal", "deferToApp"));
251 break; 253 break;
252 case "3": 254 case "3":
253 firewallException.Add(new XAttribute("EdgeTraversal", "DeferToUser")); 255 firewallException.Add(new XAttribute("EdgeTraversal", "deferToUser"));
254 break; 256 break;
255 default: 257 default:
256 firewallException.Add(new XAttribute("EdgeTraversal", edgeTraversal)); 258 firewallException.Add(new XAttribute("EdgeTraversal", edgeTraversal));
@@ -292,13 +294,13 @@ namespace WixToolset.Firewall
292 string[] interfaces = row.FieldAsString(16).Split(new[] { FirewallConstants.FORBIDDEN_FIREWALL_CHAR }, StringSplitOptions.RemoveEmptyEntries); 294 string[] interfaces = row.FieldAsString(16).Split(new[] { FirewallConstants.FORBIDDEN_FIREWALL_CHAR }, StringSplitOptions.RemoveEmptyEntries);
293 if (interfaces.Length == 1) 295 if (interfaces.Length == 1)
294 { 296 {
295 firewallException.Add(new XAttribute("Interface", interfaces[0])); 297 firewallException.Add(new XAttribute("Interface", interfaces[0].ToCamelCase()));
296 } 298 }
297 else 299 else
298 { 300 {
299 foreach (var interfaceItem in interfaces) 301 foreach (var interfaceItem in interfaces)
300 { 302 {
301 FirewallDecompiler.AddInterface(firewallException, interfaceItem); 303 FirewallDecompiler.AddInterface(firewallException, interfaceItem.ToCamelCase());
302 } 304 }
303 } 305 }
304 } 306 }
@@ -308,13 +310,13 @@ namespace WixToolset.Firewall
308 string[] interfaceTypes = row.FieldAsString(17).Split(','); 310 string[] interfaceTypes = row.FieldAsString(17).Split(',');
309 if (interfaceTypes.Length == 1) 311 if (interfaceTypes.Length == 1)
310 { 312 {
311 firewallException.Add(new XAttribute("InterfaceType", interfaceTypes[0])); 313 firewallException.Add(new XAttribute("InterfaceType", interfaceTypes[0].ToCamelCase()));
312 } 314 }
313 else 315 else
314 { 316 {
315 foreach (var interfaceType in interfaceTypes) 317 foreach (var interfaceType in interfaceTypes)
316 { 318 {
317 FirewallDecompiler.AddInterfaceType(firewallException, interfaceType); 319 FirewallDecompiler.AddInterfaceType(firewallException, interfaceType.ToCamelCase());
318 } 320 }
319 } 321 }
320 } 322 }
@@ -408,19 +410,19 @@ namespace WixToolset.Firewall
408 case FirewallConstants.IntegerNotSetString: 410 case FirewallConstants.IntegerNotSetString:
409 break; 411 break;
410 case "0": 412 case "0":
411 firewallException.Add(new XAttribute("IPSecSecureFlags", "None")); 413 firewallException.Add(new XAttribute("IPSecSecureFlags", "none"));
412 break; 414 break;
413 case "1": 415 case "1":
414 firewallException.Add(new XAttribute("IPSecSecureFlags", "NoEncapsulation")); 416 firewallException.Add(new XAttribute("IPSecSecureFlags", "noEncapsulation"));
415 break; 417 break;
416 case "2": 418 case "2":
417 firewallException.Add(new XAttribute("IPSecSecureFlags", "WithIntegrity")); 419 firewallException.Add(new XAttribute("IPSecSecureFlags", "withIntegrity"));
418 break; 420 break;
419 case "3": 421 case "3":
420 firewallException.Add(new XAttribute("IPSecSecureFlags", "NegotiateEncryption")); 422 firewallException.Add(new XAttribute("IPSecSecureFlags", "negotiateEncryption"));
421 break; 423 break;
422 case "4": 424 case "4":
423 firewallException.Add(new XAttribute("IPSecSecureFlags", "Encrypt")); 425 firewallException.Add(new XAttribute("IPSecSecureFlags", "encrypt"));
424 break; 426 break;
425 default: 427 default:
426 firewallException.Add(new XAttribute("IPSecSecureFlags", secureFlags)); 428 firewallException.Add(new XAttribute("IPSecSecureFlags", secureFlags));
@@ -499,4 +501,14 @@ namespace WixToolset.Firewall
499 } 501 }
500 } 502 }
501 } 503 }
504
505 internal static class StringExtensions
506 {
507 public static string ToCamelCase(this string str)
508 {
509 var camelCase = str[0].ToString().ToLowerInvariant() + str.Substring(1);
510
511 return camelCase;
512 }
513 }
502} 514}