Extract iCal UIDs from core components only

This commit is contained in:
mdecimus
2025-05-25 17:14:47 +02:00
parent 85bc434fbf
commit c76a660623

View File

@@ -278,7 +278,7 @@ impl CalendarUpdateRequestHandler for Server {
fn validate_ical(ical: &ICalendar) -> crate::Result<&str> { fn validate_ical(ical: &ICalendar) -> crate::Result<&str> {
// Validate UIDs // Validate UIDs
let uids = ical.uids().collect::<HashSet<_>>(); let mut uids = HashSet::with_capacity(1);
// Validate component types // Validate component types
let mut types: [u8; 5] = [0; 5]; let mut types: [u8; 5] = [0; 5];
@@ -286,18 +286,33 @@ fn validate_ical(ical: &ICalendar) -> crate::Result<&str> {
match comp.component_type { match comp.component_type {
ICalendarComponentType::VEvent => { ICalendarComponentType::VEvent => {
types[0] += 1; types[0] += 1;
if let Some(uid) = comp.uid() {
uids.insert(uid);
}
} }
ICalendarComponentType::VTodo => { ICalendarComponentType::VTodo => {
types[1] += 1; types[1] += 1;
if let Some(uid) = comp.uid() {
uids.insert(uid);
}
} }
ICalendarComponentType::VJournal => { ICalendarComponentType::VJournal => {
types[2] += 1; types[2] += 1;
if let Some(uid) = comp.uid() {
uids.insert(uid);
}
} }
ICalendarComponentType::VFreebusy => { ICalendarComponentType::VFreebusy => {
types[3] += 1; types[3] += 1;
if let Some(uid) = comp.uid() {
uids.insert(uid);
}
} }
ICalendarComponentType::VAvailability => { ICalendarComponentType::VAvailability => {
types[4] += 1; types[4] += 1;
if let Some(uid) = comp.uid() {
uids.insert(uid);
}
} }
_ => {} _ => {}
} }