fix limit panicking in search() if config is specified

This commit is contained in:
askiiart 2024-11-27 23:41:31 -06:00
parent bf0c84f126
commit c1483ab210
Signed by untrusted user who does not match committer: askiiart
GPG key ID: EA85979611654C30
2 changed files with 9 additions and 8 deletions

View file

@ -57,12 +57,12 @@ pub(crate) fn caps() -> status::Custom<RawXml<String>> {
pub(crate) fn search(form: SearchForm) -> status::Custom<RawXml<String>> {
// The compiler won't let you get a field from a struct in the Option here, since the default is None
// So this is needed
let conf = create_empty_config();
let mut conf = create_empty_config();
unsafe {
if CONFIG.is_none() {
return (*STATUS_CONFIG_NOT_SPECIFIED).clone();
} else {
let conf: Config = CONFIG.clone().ok_or("").unwrap();
conf = CONFIG.clone().ok_or("").unwrap();
}
}
@ -99,11 +99,9 @@ pub(crate) fn search(form: SearchForm) -> status::Custom<RawXml<String>> {
offset = form.offset.ok_or(0).unwrap();
}
let mut limit: u32 = 0;
let mut limit: u32 = form.limit.ok_or("").unwrap_or(conf.caps.limits.max);
if limit > conf.caps.limits.max {
limit = conf.caps.limits.max;
let wanted_limit = form.limit.ok_or(limit).unwrap();
if wanted_limit < limit {
limit = wanted_limit
}
match conf.auth {

View file

@ -54,7 +54,10 @@ pub(crate) fn create_empty_config() -> Config {
image: None,
version: Some("1.0".to_string()),
},
limits: Limits { max: 1, default: 1 },
limits: Limits {
max: 100,
default: 20,
},
searching: searching,
categories: categories,
genres: Some(genres),