Merge pull request #487 from mitchellcash/port_validation

Fixed: Proper port validation for download clients and connections
This commit is contained in:
Devin Buhl 2017-01-28 17:32:49 -05:00 committed by GitHub
commit f9844c284a
14 changed files with 18 additions and 18 deletions

View file

@ -76,14 +76,14 @@ public static object ReadFromSchema(List<Field> fields, Type targetType)
if (propertyInfo.PropertyType == typeof(int))
{
var value = Convert.ToInt32(field.Value);
propertyInfo.SetValue(target, value, null);
var value = field.Value.ToString().ParseInt32();
propertyInfo.SetValue(target, value ?? 0, null);
}
else if (propertyInfo.PropertyType == typeof(long))
{
var value = Convert.ToInt64(field.Value);
propertyInfo.SetValue(target, value, null);
var value = field.Value.ToString().ParseInt64();
propertyInfo.SetValue(target, value ?? 0, null);
}
else if (propertyInfo.PropertyType == typeof(int?))

View file

@ -10,7 +10,7 @@ public class DelugeSettingsValidator : AbstractValidator<DelugeSettings>
public DelugeSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).GreaterThan(0);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
RuleFor(c => c.MovieCategory).Matches("^[-a-z]*$").WithMessage("Allowed characters a-z and -");
}

View file

@ -10,7 +10,7 @@ public class HadoukenSettingsValidator : AbstractValidator<HadoukenSettings>
public HadoukenSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).GreaterThan(0);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
RuleFor(c => c.Username).NotEmpty()
.WithMessage("Username must not be empty.");

View file

@ -10,7 +10,7 @@ public class NzbVortexSettingsValidator : AbstractValidator<NzbVortexSettings>
public NzbVortexSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).GreaterThan(0);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
RuleFor(c => c.ApiKey).NotEmpty()
.WithMessage("API Key is required");

View file

@ -10,7 +10,7 @@ public class NzbgetSettingsValidator : AbstractValidator<NzbgetSettings>
public NzbgetSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).GreaterThan(0);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
RuleFor(c => c.Username).NotEmpty().When(c => !string.IsNullOrWhiteSpace(c.Password));
RuleFor(c => c.Password).NotEmpty().When(c => !string.IsNullOrWhiteSpace(c.Username));

View file

@ -10,7 +10,7 @@ public class QBittorrentSettingsValidator : AbstractValidator<QBittorrentSetting
public QBittorrentSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).InclusiveBetween(0, 65535);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
}
}

View file

@ -10,7 +10,7 @@ public class SabnzbdSettingsValidator : AbstractValidator<SabnzbdSettings>
public SabnzbdSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).GreaterThan(0);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
RuleFor(c => c.ApiKey).NotEmpty()
.WithMessage("API Key is required when username/password are not configured")

View file

@ -12,7 +12,7 @@ public class TransmissionSettingsValidator : AbstractValidator<TransmissionSetti
public TransmissionSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).GreaterThan(0);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
RuleFor(c => c.UrlBase).ValidUrlBase();

View file

@ -10,10 +10,10 @@ public class RTorrentSettingsValidator : AbstractValidator<RTorrentSettings>
public RTorrentSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).InclusiveBetween(0, 65535);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
RuleFor(c => c.MovieCategory).NotEmpty()
.WithMessage("A category is recommended")
.AsWarning();
.AsWarning();
}
}

View file

@ -10,7 +10,7 @@ public class UTorrentSettingsValidator : AbstractValidator<UTorrentSettings>
public UTorrentSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).InclusiveBetween(0, 65535);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
RuleFor(c => c.TvCategory).NotEmpty();
}
}

View file

@ -10,7 +10,7 @@ public class EmailSettingsValidator : AbstractValidator<EmailSettings>
public EmailSettingsValidator()
{
RuleFor(c => c.Server).NotEmpty();
RuleFor(c => c.Port).GreaterThan(0);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
RuleFor(c => c.From).NotEmpty();
RuleFor(c => c.To).NotEmpty();
}

View file

@ -10,7 +10,7 @@ public class GrowlSettingsValidator : AbstractValidator<GrowlSettings>
public GrowlSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).GreaterThan(0);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
}
}

View file

@ -10,7 +10,7 @@ public class PlexClientSettingsValidator : AbstractValidator<PlexClientSettings>
public PlexClientSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).GreaterThan(0);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
}
}

View file

@ -10,7 +10,7 @@ public class PlexServerSettingsValidator : AbstractValidator<PlexServerSettings>
public PlexServerSettingsValidator()
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.Port).GreaterThan(0);
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
}
}