Fix new profiles with custom config and implement review suggestions
This commit is contained in:
@@ -3,56 +3,104 @@ package profile
|
||||
const (
|
||||
// UnidentifiedProfileID is the profile ID used for unidentified processes.
|
||||
UnidentifiedProfileID = "_unidentified"
|
||||
// UnidentifiedProfileName is the name used for unidentified processes.
|
||||
UnidentifiedProfileName = "Unidentified Processes"
|
||||
|
||||
// SystemProfileID is the profile ID used for the system/kernel.
|
||||
SystemProfileID = "_system"
|
||||
// SystemProfileName is the name used for the system/kernel.
|
||||
SystemProfileName = "Operating System"
|
||||
|
||||
// PortmasterProfileID is the profile ID used for the Portmaster Core itself.
|
||||
PortmasterProfileID = "_portmaster"
|
||||
// PortmasterProfileName is the name used for the Portmaster Core itself.
|
||||
PortmasterProfileName = "Portmaster Core Service"
|
||||
|
||||
// PortmasterAppProfileID is the profile ID used for the Portmaster App.
|
||||
PortmasterAppProfileID = "_portmaster-app"
|
||||
// PortmasterAppProfileName is the name used for the Portmaster App.
|
||||
PortmasterAppProfileName = "Portmaster User Interface"
|
||||
|
||||
// PortmasterNotifierProfileID is the profile ID used for the Portmaster Notifier.
|
||||
PortmasterNotifierProfileID = "_portmaster-notifier"
|
||||
// PortmasterNotifierProfileName is the name used for the Portmaster Notifier.
|
||||
PortmasterNotifierProfileName = "Portmaster Notifier"
|
||||
)
|
||||
|
||||
func updateSpecialProfileMetadata(profile *Profile, binaryPath string) (ok, changed bool) {
|
||||
// Get new profile name and check if profile is applicable to special handling.
|
||||
var newProfileName string
|
||||
switch profile.ID {
|
||||
case UnidentifiedProfileID:
|
||||
newProfileName = UnidentifiedProfileName
|
||||
case SystemProfileID:
|
||||
newProfileName = SystemProfileName
|
||||
case PortmasterProfileID:
|
||||
newProfileName = PortmasterProfileName
|
||||
case PortmasterAppProfileID:
|
||||
newProfileName = PortmasterAppProfileName
|
||||
case PortmasterNotifierProfileID:
|
||||
newProfileName = PortmasterNotifierProfileName
|
||||
default:
|
||||
return false, false
|
||||
}
|
||||
|
||||
// Update profile name if needed.
|
||||
if profile.Name != newProfileName {
|
||||
profile.Name = newProfileName
|
||||
changed = true
|
||||
}
|
||||
|
||||
// Update LinkedPath to new value.
|
||||
if profile.LinkedPath != binaryPath {
|
||||
profile.LinkedPath = binaryPath
|
||||
changed = true
|
||||
}
|
||||
|
||||
return true, changed
|
||||
}
|
||||
|
||||
func getSpecialProfile(profileID, linkedPath string) *Profile {
|
||||
switch profileID {
|
||||
case UnidentifiedProfileID:
|
||||
return New(SourceLocal, UnidentifiedProfileID, linkedPath)
|
||||
return New(SourceLocal, UnidentifiedProfileID, linkedPath, nil)
|
||||
|
||||
case SystemProfileID:
|
||||
return New(SourceLocal, SystemProfileID, linkedPath)
|
||||
return New(SourceLocal, SystemProfileID, linkedPath, nil)
|
||||
|
||||
case PortmasterProfileID:
|
||||
profile := New(SourceLocal, PortmasterProfileID, linkedPath)
|
||||
profile.Name = "Portmaster Core Service"
|
||||
profile := New(SourceLocal, PortmasterProfileID, linkedPath, nil)
|
||||
profile.Internal = true
|
||||
return profile
|
||||
|
||||
case PortmasterAppProfileID:
|
||||
profile := New(SourceLocal, PortmasterAppProfileID, linkedPath)
|
||||
profile.Name = "Portmaster User Interface"
|
||||
profile.Internal = true
|
||||
profile.Config = map[string]interface{}{
|
||||
CfgOptionDefaultActionKey: "block",
|
||||
CfgOptionEndpointsKey: []string{
|
||||
"+ Localhost",
|
||||
profile := New(
|
||||
SourceLocal,
|
||||
PortmasterAppProfileID,
|
||||
linkedPath,
|
||||
map[string]interface{}{
|
||||
CfgOptionDefaultActionKey: "block",
|
||||
CfgOptionEndpointsKey: []string{
|
||||
"+ Localhost",
|
||||
},
|
||||
},
|
||||
}
|
||||
)
|
||||
profile.Internal = true
|
||||
return profile
|
||||
|
||||
case PortmasterNotifierProfileID:
|
||||
profile := New(SourceLocal, PortmasterNotifierProfileID, linkedPath)
|
||||
profile.Name = "Portmaster Notifier"
|
||||
profile.Internal = true
|
||||
profile.Config = map[string]interface{}{
|
||||
CfgOptionDefaultActionKey: "block",
|
||||
CfgOptionEndpointsKey: []string{
|
||||
"+ Localhost",
|
||||
profile := New(
|
||||
SourceLocal,
|
||||
PortmasterNotifierProfileID,
|
||||
linkedPath,
|
||||
map[string]interface{}{
|
||||
CfgOptionDefaultActionKey: "block",
|
||||
CfgOptionEndpointsKey: []string{
|
||||
"+ Localhost",
|
||||
},
|
||||
},
|
||||
}
|
||||
)
|
||||
profile.Internal = true
|
||||
return profile
|
||||
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user