@joebigelow / wix / commits / 58d81bb1

Use camelCase attribute values.

Bob Arnson committed Feb 26, 2024 at 22:17 UTC 58d81bb1b6f7d7c6104914b3070dac95f16877c4
6 files changed +98 -80
src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs
+5 -5
@@ -48,7 +48,7 @@ namespace WixToolsetTest.Firewall
48 "Wix5FirewallException:fexv60s7u2Dmd1imH5vEFYKPgEWhG4\tinterface nested\t127.0.0.1\t54671\t6\t\t0\t-2147483648\tfilNdJBJmq3UCUIwmXS8x21aAsvqzk\tInterfaces with nested elements\t1\t-2147483648\t-2147483648\t-2147483648\t\t\tWi-Fi|Local Area Connection\t\t\t\t\t\t\t\t\t\t-2147483648",
49 "Wix5FirewallException:fexVr6uHcOCak5MHuTLwujjh_oKtbI\tGroupingExample2\t\t8732\t6\t\t0\t-2147483648\tfilNdJBJmq3UCUIwmXS8x21aAsvqzk\tRule with grouping property\t1\t-2147483648\t-2147483648\t-2147483648\t[GROUPING_PROP]\t\t\t\t\t\t\t\t\t\t\t\t-2147483648",
50 "Wix5FirewallException:fexwjf4OTFVE9SNiC4goVxBA6ENJBE\tINetFwRule3 values\t*\t\t-2147483648\t\t16\t-2147483648\tfilNdJBJmq3UCUIwmXS8x21aAsvqzk\tSimple INetFwRule3 values\t1\t-2147483648\t-2147483648\t-2147483648\t\t\t\t\t\t\t\tS-1-15-2-1239072475-3687740317-1842961305-3395936705-4023953123-1525404051-2779347315\tO:LSD:(A;;CC;;;S-1-5-84-0-0-0-0-0)\tS-1-5-21-1898747406-2352535518-1247798438-1914\t127.0.0.1\tO:LSD:(A;;CC;;;S-1-5-84-0-0-0-0-0)\t3",
51 - "Wix5FirewallException:ServiceInstall.nested\tExampleNestedService\tLocalSubnet\t3546-7890\t6\t\t1\t-2147483648\tfilNdJBJmq3UCUIwmXS8x21aAsvqzk\tA port-based firewall exception for a windows service\t1\t-2147483648\t-2147483648\t-2147483648\t\t\t\tLan,Wireless\t\t\tsvc1\t\t\t\t\t\t-2147483648",
51 + "Wix5FirewallException:ServiceInstall.nested\tExampleNestedService\tLocalSubnet\t3546-7890\t6\t\t1\t-2147483648\tfilNdJBJmq3UCUIwmXS8x21aAsvqzk\tA port-based firewall exception for a Windows service\t1\t-2147483648\t-2147483648\t-2147483648\t\t\t\tLan,Wireless\t\t\tsvc1\t\t\t\t\t\t-2147483648",
52 }, results);
53 }
54
@@ -87,7 +87,7 @@ namespace WixToolsetTest.Firewall
87 "Wix5FirewallException:fexv60s7u2Dmd1imH5vEFYKPgEWhG4\tinterface nested\t127.0.0.1\t54671\t6\t\t0\t-2147483648\tfilNdJBJmq3UCUIwmXS8x21aAsvqzk\tInterfaces with nested elements\t1\t-2147483648\t-2147483648\t-2147483648\t\t\tWi-Fi|Local Area Connection\t\t\t\t\t\t\t\t\t\t-2147483648",
88 "Wix5FirewallException:fexVr6uHcOCak5MHuTLwujjh_oKtbI\tGroupingExample2\t\t8732\t6\t\t0\t-2147483648\tfilNdJBJmq3UCUIwmXS8x21aAsvqzk\tRule with grouping property\t1\t-2147483648\t-2147483648\t-2147483648\t[GROUPING_PROP]\t\t\t\t\t\t\t\t\t\t\t\t-2147483648",
89 "Wix5FirewallException:fexwjf4OTFVE9SNiC4goVxBA6ENJBE\tINetFwRule3 values\t*\t\t-2147483648\t\t16\t-2147483648\tfilNdJBJmq3UCUIwmXS8x21aAsvqzk\tSimple INetFwRule3 values\t1\t-2147483648\t-2147483648\t-2147483648\t\t\t\t\t\t\t\tS-1-15-2-1239072475-3687740317-1842961305-3395936705-4023953123-1525404051-2779347315\tO:LSD:(A;;CC;;;S-1-5-84-0-0-0-0-0)\tS-1-5-21-1898747406-2352535518-1247798438-1914\t127.0.0.1\tO:LSD:(A;;CC;;;S-1-5-84-0-0-0-0-0)\t3",
90 - "Wix5FirewallException:ServiceInstall.nested\tExampleNestedService\tLocalSubnet\t3546-7890\t6\t\t1\t-2147483648\tfilNdJBJmq3UCUIwmXS8x21aAsvqzk\tA port-based firewall exception for a windows service\t1\t-2147483648\t-2147483648\t-2147483648\t\t\t\tLan,Wireless\t\t\tsvc1\t\t\t\t\t\t-2147483648",
90 + "Wix5FirewallException:ServiceInstall.nested\tExampleNestedService\tLocalSubnet\t3546-7890\t6\t\t1\t-2147483648\tfilNdJBJmq3UCUIwmXS8x21aAsvqzk\tA port-based firewall exception for a Windows service\t1\t-2147483648\t-2147483648\t-2147483648\t\t\t\tLan,Wireless\t\t\tsvc1\t\t\t\t\t\t-2147483648",
91 }, results);
92 }
93
@@ -224,7 +224,7 @@ namespace WixToolsetTest.Firewall
224 "Port=42",
225 "Protocol=tcp",
226 "Program=[#filNdJBJmq3UCUIwmXS8x21aAsvqzk]",
227 - "OnUpdate=DoNothing",
227 + "OnUpdate=doNothing",
228 "Description=An app-based firewall exception",
229 "xmlns=http://wixtoolset.org/schemas/v4/wxs/firewall",
230 }, actual.Attributes);
@@ -241,7 +241,7 @@ namespace WixToolsetTest.Firewall
241 "Scope=localSubnet",
242 "Port=42",
243 "Protocol=tcp",
244 - "OnUpdate=EnableOnly",
244 + "OnUpdate=enableOnly",
245 "Description=A port-based firewall exception",
246 "Outbound=yes",
247 "xmlns=http://wixtoolset.org/schemas/v4/wxs/firewall",
@@ -330,7 +330,7 @@ namespace WixToolsetTest.Firewall
330 "LocalUserOwner=S-1-5-21-1898747406-2352535518-1247798438-1914",
331 "RemoteMachineAuthorizedList=127.0.0.1",
332 "RemoteUserAuthorizedList=O:LSD:(A;;CC;;;S-1-5-84-0-0-0-0-0)",
333 - "IPSecSecureFlags=NegotiateEncryption",
333 + "IPSecSecureFlags=negotiateEncryption",
334 "xmlns=http://wixtoolset.org/schemas/v4/wxs/firewall",
335 }, actual.Attributes);
336 }
src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/UsingFirewall/PackageComponents.wxs
+7 -7
@@ -6,18 +6,18 @@
6 <Component>
7 <File Name="fw.exe" Source="example.txt">
8 <Shortcut Id="FwShortcut" Directory="INSTALLFOLDER" Name="Firewall" />
9 - <fw:FirewallException Id="ExampleFirewall" Description="An app-based firewall exception" Name="ExampleApp" Port="42" OnUpdate="DoNothing" >
9 + <fw:FirewallException Id="ExampleFirewall" Description="An app-based firewall exception" Name="ExampleApp" Port="42" OnUpdate="doNothing" >
10 <fw:RemoteAddress Value="*" />
11 </fw:FirewallException>
12 </File>
13
14 - <fw:FirewallException Description="A port-based firewall exception" Name="ExamplePort" Port="42" Outbound="yes" Scope="localSubnet" OnUpdate="EnableOnly" />
14 + <fw:FirewallException Description="A port-based firewall exception" Name="ExamplePort" Port="42" Outbound="yes" Scope="localSubnet" OnUpdate="enableOnly" />
15 <fw:FirewallException Description="DNS scope firewall exception" Name="ExampleDNSScope" Port="356" Protocol="udp" Scope="DNS" />
16 <fw:FirewallException Description="DHCP scope firewall exception" Name="ExampleDHCPScope" Program="test.exe" Protocol="211" Scope="DHCP" Profile="public" />
17 <fw:FirewallException Description="WINS scope firewall exception" Name="ExampleWINSScope" Port="6573" Scope="WINS" Profile="domain"/>
18 <fw:FirewallException Description="defaultGateway scope firewall exception" Name="ExampleDefaultGatewayScope" Port="4432" Scope="defaultGateway" Profile="private" />
19
20 - <fw:FirewallException Description="Defer to user edge traversal" Name="defertouser" Program="fw.exe" EdgeTraversal="DeferToUser" />
20 + <fw:FirewallException Description="Defer to user edge traversal" Name="defertouser" Program="fw.exe" EdgeTraversal="deferToUser" />
21 <fw:FirewallException Description="A port-based service exception" Name="ExampleService" Port="12000" Service="ftpsrv" Program="%windir%\system32\svchost.exe" >
22 <fw:LocalAddress Value="DHCP"/>
23 <fw:LocalAddress Value="WINS"/>
@@ -31,13 +31,13 @@
31 <fw:FirewallException Description="Interfaces with property" Name="interface property" Port="54671" Interface="[INTERFACE_PROPERTY]" />
32
33 <ServiceInstall Name="svc1" Type="ownProcess" Start="disabled" ErrorControl="ignore" >
34 - <fw:FirewallException Id="ServiceInstall.nested" IgnoreFailure="true" Description="A port-based firewall exception for a windows service" Name="ExampleNestedService" Port="3546-7890" Scope="localSubnet" >
35 - <fw:InterfaceType Value="Lan" />
36 - <fw:InterfaceType Value="Wireless" />
34 + <fw:FirewallException Id="ServiceInstall.nested" IgnoreFailure="true" Description="A port-based firewall exception for a Windows service" Name="ExampleNestedService" Port="3546-7890" Scope="localSubnet" >
35 + <fw:InterfaceType Value="lan" />
36 + <fw:InterfaceType Value="wireless" />
37 </fw:FirewallException>
38 </ServiceInstall>
39
40 - <fw:FirewallException Description="Simple INetFwRule3 values" Name="INetFwRule3 values" Scope="any" LocalAppPackageId="S-1-15-2-1239072475-3687740317-1842961305-3395936705-4023953123-1525404051-2779347315" LocalUserAuthorizedList="O:LSD:(A;;CC;;;S-1-5-84-0-0-0-0-0)" LocalUserOwner="S-1-5-21-1898747406-2352535518-1247798438-1914" RemoteMachineAuthorizedList="127.0.0.1" RemoteUserAuthorizedList="O:LSD:(A;;CC;;;S-1-5-84-0-0-0-0-0)" IPSecSecureFlags="NegotiateEncryption" />
40 + <fw:FirewallException Description="Simple INetFwRule3 values" Name="INetFwRule3 values" Scope="any" LocalAppPackageId="S-1-15-2-1239072475-3687740317-1842961305-3395936705-4023953123-1525404051-2779347315" LocalUserAuthorizedList="O:LSD:(A;;CC;;;S-1-5-84-0-0-0-0-0)" LocalUserOwner="S-1-5-21-1898747406-2352535518-1247798438-1914" RemoteMachineAuthorizedList="127.0.0.1" RemoteUserAuthorizedList="O:LSD:(A;;CC;;;S-1-5-84-0-0-0-0-0)" IPSecSecureFlags="negotiateEncryption" />
41 <fw:FirewallException Description="INetFwRule3 passed via properties" Name="INetFwRule3 properties" Scope="any" LocalAppPackageId="[PROP1]" LocalUserAuthorizedList="[PROP2]" LocalUserOwner="[PROP3]" RemoteMachineAuthorizedList="[PROP4]" RemoteUserAuthorizedList="[PROP5]" IPSecSecureFlags="[PROP6]" />
42
43 <fw:FirewallException Description="Simple rule with grouping" Name="GroupingExample1" Program="fw.exe" Grouping="@yourresources.dll,-1005" />
src/ext/Firewall/wixext/FirewallCompiler.cs
+52 -46
@@ -155,6 +155,16 @@ namespace WixToolset.Firewall
155 file = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
156 }
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;
168 case "IgnoreFailure":
169 if (this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) == YesNoType.Yes)
170 {
@@ -165,28 +175,18 @@ namespace WixToolset.Firewall
175 var onupdate = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
176 switch (onupdate)
177 {
168 - case "DoNothing":
178 + case "doNothing":
179 attributes |= 0x2; // feaIgnoreUpdates
180 break;
171 - case "EnableOnly":
181 + case "enableOnly":
182 attributes |= 0x4; // feaEnableOnUpdate
183 break;
184
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"));
187 break;
188 }
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":
191 port = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
192 break;
@@ -284,17 +284,17 @@ namespace WixToolset.Firewall
284 action = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
285 switch (action)
286 {
287 - case "Block":
287 + case "block":
288 action = "0";
289 break;
290 - case "Allow":
290 + case "allow":
291 action = "1";
292 break;
293
294 default:
295 if (!this.ParseHelper.ContainsProperty(action))
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 }
299 break;
300 }
@@ -303,17 +303,17 @@ namespace WixToolset.Firewall
303 edgeTraversal = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
304 switch (edgeTraversal)
305 {
306 - case "Deny":
306 + case "deny":
307 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_DENY.ToString();
308 break;
309 - case "Allow":
309 + case "allow":
310 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_ALLOW.ToString();
311 break;
312 - case "DeferToApp":
312 + case "deferToApp":
313 attributes |= 0x8; // feaAddINetFwRule2
314 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_DEFER_TO_APP.ToString();
315 break;
316 - case "DeferToUser":
316 + case "deferToUser":
317 attributes |= 0x8; // feaAddINetFwRule2
318 edgeTraversal = FirewallConstants.NET_FW_EDGE_TRAVERSAL_TYPE_DEFER_TO_USER.ToString();
319 break;
@@ -321,7 +321,7 @@ namespace WixToolset.Firewall
321 default:
322 if (!this.ParseHelper.ContainsProperty(edgeTraversal))
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 }
326 break;
327 }
@@ -338,7 +338,6 @@ namespace WixToolset.Firewall
338 case YesNoType.No:
339 enabled = "0";
340 break;
341 -
341 default:
342 this.Messaging.Write(ErrorMessages.IllegalYesNoValue(sourceLineNumbers, element.Name.LocalName, "Enabled", enabled));
343 break;
@@ -359,16 +358,16 @@ namespace WixToolset.Firewall
358 interfaceTypeValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
359 switch (interfaceTypeValue)
360 {
362 - case "RemoteAccess":
363 - case "Wireless":
364 - case "Lan":
365 - case "All":
361 + case "remoteAccess":
362 + case "wireless":
363 + case "lan":
364 + case "all":
365 break;
366
367 default:
368 if (!this.ParseHelper.ContainsProperty(interfaceTypeValue))
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"));
371 }
372 break;
373 }
@@ -449,23 +448,23 @@ namespace WixToolset.Firewall
448 {
449 switch (secureFlags)
450 {
452 - case "None":
451 + case "none":
452 secureFlags = "0";
453 break;
455 - case "NoEncapsulation":
454 + case "noEncapsulation":
455 secureFlags = "1";
456 break;
458 - case "WithIntegrity":
457 + case "withIntegrity":
458 secureFlags = "2";
459 break;
461 - case "NegotiateEncryption":
460 + case "negotiateEncryption":
461 secureFlags = "3";
462 break;
464 - case "Encrypt":
463 + case "encrypt":
464 secureFlags = "4";
465 break;
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"));
468 break;
469 }
470 }
@@ -573,43 +572,43 @@ namespace WixToolset.Firewall
572
573 if (String.IsNullOrEmpty(fileId) && String.IsNullOrEmpty(file) && String.IsNullOrEmpty(program))
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"));
576 }
577
578 if (port != null)
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"));
581 }
582
583 if (remotePort != null)
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"));
586 }
587
588 if (localScope != null)
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"));
591 }
592
593 if (scope != null)
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"));
596 }
597
598 if (profile != null)
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"));
601 }
602
603 if (service != null)
604 {
605 if (serviceName != null)
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));
608 }
609 else
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"));
612 }
613 }
614 }
@@ -807,16 +806,23 @@ namespace WixToolset.Firewall
806 {
807 switch (value)
808 {
810 - case "RemoteAccess":
811 - case "Wireless":
812 - case "Lan":
813 - case "All":
809 + case "remoteAccess":
810 + value = "RemoteAccess";
811 + break;
812 + case "wireless":
813 + value = "Wireless";
814 + break;
815 + case "lan":
816 + value = "Lan";
817 + break;
818 + case "all":
819 + value = "All";
820 break;
821
822 default:
823 if (!this.ParseHelper.ContainsProperty(value))
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"));
826 value = null;
827 }
828 break;
src/ext/Firewall/wixext/FirewallDecompiler.cs
+29 -17
@@ -4,6 +4,8 @@ namespace WixToolset.Firewall
4 {
5 using System;
6 using System.Collections.Generic;
7 + using System.Reflection;
8 + using System.Security;
9 using System.Xml.Linq;
10 using WixToolset.Data;
11 using WixToolset.Data.WindowsInstaller;
@@ -161,11 +163,11 @@ namespace WixToolset.Firewall
163
164 if ((attr & 0x2) == 0x2)
165 {
164 - firewallException.Add(new XAttribute("OnUpdate", "DoNothing"));
166 + firewallException.Add(new XAttribute("OnUpdate", "doNothing"));
167 }
168 else if ((attr & 0x4) == 0x4)
169 {
168 - firewallException.Add(new XAttribute("OnUpdate", "EnableOnly"));
170 + firewallException.Add(new XAttribute("OnUpdate", "enableOnly"));
171 }
172 }
173
@@ -222,10 +224,10 @@ namespace WixToolset.Firewall
224 case FirewallConstants.IntegerNotSetString:
225 break;
226 case "1":
225 - firewallException.Add(new XAttribute("Action", "Allow"));
227 + firewallException.Add(new XAttribute("Action", "allow"));
228 break;
229 case "0":
228 - firewallException.Add(new XAttribute("Action", "Block"));
230 + firewallException.Add(new XAttribute("Action", "block"));
231 break;
232 default:
233 firewallException.Add(new XAttribute("Action", action));
@@ -241,16 +243,16 @@ namespace WixToolset.Firewall
243 case FirewallConstants.IntegerNotSetString:
244 break;
245 case "0":
244 - firewallException.Add(new XAttribute("EdgeTraversal", "Deny"));
246 + firewallException.Add(new XAttribute("EdgeTraversal", "deny"));
247 break;
248 case "1":
247 - firewallException.Add(new XAttribute("EdgeTraversal", "Allow"));
249 + firewallException.Add(new XAttribute("EdgeTraversal", "allow"));
250 break;
251 case "2":
250 - firewallException.Add(new XAttribute("EdgeTraversal", "DeferToApp"));
252 + firewallException.Add(new XAttribute("EdgeTraversal", "deferToApp"));
253 break;
254 case "3":
253 - firewallException.Add(new XAttribute("EdgeTraversal", "DeferToUser"));
255 + firewallException.Add(new XAttribute("EdgeTraversal", "deferToUser"));
256 break;
257 default:
258 firewallException.Add(new XAttribute("EdgeTraversal", edgeTraversal));
@@ -292,13 +294,13 @@ namespace WixToolset.Firewall
294 string[] interfaces = row.FieldAsString(16).Split(new[] { FirewallConstants.FORBIDDEN_FIREWALL_CHAR }, StringSplitOptions.RemoveEmptyEntries);
295 if (interfaces.Length == 1)
296 {
295 - firewallException.Add(new XAttribute("Interface", interfaces[0]));
297 + firewallException.Add(new XAttribute("Interface", interfaces[0].ToCamelCase()));
298 }
299 else
300 {
301 foreach (var interfaceItem in interfaces)
302 {
301 - FirewallDecompiler.AddInterface(firewallException, interfaceItem);
303 + FirewallDecompiler.AddInterface(firewallException, interfaceItem.ToCamelCase());
304 }
305 }
306 }
@@ -308,13 +310,13 @@ namespace WixToolset.Firewall
310 string[] interfaceTypes = row.FieldAsString(17).Split(',');
311 if (interfaceTypes.Length == 1)
312 {
311 - firewallException.Add(new XAttribute("InterfaceType", interfaceTypes[0]));
313 + firewallException.Add(new XAttribute("InterfaceType", interfaceTypes[0].ToCamelCase()));
314 }
315 else
316 {
317 foreach (var interfaceType in interfaceTypes)
318 {
317 - FirewallDecompiler.AddInterfaceType(firewallException, interfaceType);
319 + FirewallDecompiler.AddInterfaceType(firewallException, interfaceType.ToCamelCase());
320 }
321 }
322 }
@@ -408,19 +410,19 @@ namespace WixToolset.Firewall
410 case FirewallConstants.IntegerNotSetString:
411 break;
412 case "0":
411 - firewallException.Add(new XAttribute("IPSecSecureFlags", "None"));
413 + firewallException.Add(new XAttribute("IPSecSecureFlags", "none"));
414 break;
415 case "1":
414 - firewallException.Add(new XAttribute("IPSecSecureFlags", "NoEncapsulation"));
416 + firewallException.Add(new XAttribute("IPSecSecureFlags", "noEncapsulation"));
417 break;
418 case "2":
417 - firewallException.Add(new XAttribute("IPSecSecureFlags", "WithIntegrity"));
419 + firewallException.Add(new XAttribute("IPSecSecureFlags", "withIntegrity"));
420 break;
421 case "3":
420 - firewallException.Add(new XAttribute("IPSecSecureFlags", "NegotiateEncryption"));
422 + firewallException.Add(new XAttribute("IPSecSecureFlags", "negotiateEncryption"));
423 break;
424 case "4":
423 - firewallException.Add(new XAttribute("IPSecSecureFlags", "Encrypt"));
425 + firewallException.Add(new XAttribute("IPSecSecureFlags", "encrypt"));
426 break;
427 default:
428 firewallException.Add(new XAttribute("IPSecSecureFlags", secureFlags));
@@ -499,4 +501,14 @@ namespace WixToolset.Firewall
501 }
502 }
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 + }
514 }
src/test/msi/TestData/FirewallExtensionTests/FirewallRulesInterfaces/product.wxs
+3 -3
@@ -17,9 +17,9 @@
17 <fw:Interface Name="[INTERFACE1]" />
18 <fw:Interface Name="[INTERFACE2]" />
19 <fw:Interface Name="[INTERFACE3]" />
20 - <fw:InterfaceType Value="RemoteAccess" />
21 - <fw:InterfaceType Value="Lan" />
22 - <fw:InterfaceType Value="Wireless" />
20 + <fw:InterfaceType Value="remoteAccess" />
21 + <fw:InterfaceType Value="lan" />
22 + <fw:InterfaceType Value="wireless" />
23 </fw:FirewallException>
24 </File>
25
src/test/msi/TestData/FirewallExtensionTests/FirewallRulesProperties/product.wxs
+2 -2
@@ -11,7 +11,7 @@
11 <Fragment>
12 <Component Id="FirewallComponent1" Guid="A1553D10-BEB7-4E60-A0DC-6F1EEE5A1719" Directory="INSTALLFOLDER">
13 <fw:FirewallException
14 - Name="WiXToolset Test - 0028" OnUpdate="EnableOnly"
14 + Name="WiXToolset Test - 0028" OnUpdate="enableOnly"
15 Port="[LOCALPORT]"
16 Protocol="[PROTOCOL]"
17 Program="[PROGRAM]"
@@ -35,7 +35,7 @@
35 IPSecSecureFlags="[SECUREFLAGS]"
36 />
37
38 - <fw:FirewallException Name="WiXToolset Test - 0029" OnUpdate="DoNothing" >
38 + <fw:FirewallException Name="WiXToolset Test - 0029" OnUpdate="doNothing" >
39 <fw:RemoteAddress Value="[REMOTEADDRESS]" />
40 <fw:LocalAddress Value="[LOCALADDRESS]" />
41 <fw:InterfaceType Value="[INTERFACETYPE]" />