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]" />