diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 81e69cff..9534ad19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -311,7 +311,7 @@ jobs: - name: Build run: | rustup target add ${{matrix.target}} - cargo build --release --target ${{matrix.target}} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure enterprise" + cargo build --release --target ${{matrix.target}} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" cargo build --release --target ${{matrix.target}} -p stalwart-cli mkdir -p artifacts mv ./target/${{matrix.target}}/release/stalwart-mail.exe ./artifacts/stalwart-mail.exe @@ -349,14 +349,14 @@ jobs: # Get latest FoundationDB installer curl --retry 5 -Lso foundationdb.pkg "$(gh api -X GET /repos/apple/foundationdb/releases --jq '.[] | select(.prerelease == false) | .assets[] | select(.name | test("${{startsWith(matrix.target, 'x86') && 'x86_64' || 'arm64'}}" + ".pkg$")) | .browser_download_url' | head -n1)" sudo installer -allowUntrusted -dumplog -pkg foundationdb.pkg -target / - cargo build --release --target ${{matrix.target}} -p mail-server --no-default-features --features "foundationdb elastic s3 redis enterprise" + cargo build --release --target ${{matrix.target}} -p mail-server --no-default-features --features "foundationdb elastic s3 redis nats enterprise" mkdir -p artifacts mv ./target/${{matrix.target}}/release/stalwart-mail ./artifacts/stalwart-mail-foundationdb - name: Build run: | rustup target add ${{matrix.target}} - cargo build --release --target ${{matrix.target}} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure enterprise" + cargo build --release --target ${{matrix.target}} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" cargo build --release --target ${{matrix.target}} -p stalwart-cli mkdir -p artifacts mv ./target/${{matrix.target}}/release/stalwart-mail ./artifacts/stalwart-mail diff --git a/Dockerfile b/Dockerfile index 32f99aa9..f481b509 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,9 +22,9 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ g++-x86-64-linux-gnu binutils-x86-64-linux-gnu RUN rustup target add "$(cat /target.txt)" COPY --from=planner /recipe.json /recipe.json -RUN RUSTFLAGS="$(cat /flags.txt)" cargo chef cook --target "$(cat /target.txt)" --release --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure enterprise" --recipe-path /recipe.json +RUN RUSTFLAGS="$(cat /flags.txt)" cargo chef cook --target "$(cat /target.txt)" --release --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" --recipe-path /recipe.json COPY . . -RUN RUSTFLAGS="$(cat /flags.txt)" cargo build --target "$(cat /target.txt)" --release -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure enterprise" +RUN RUSTFLAGS="$(cat /flags.txt)" cargo build --target "$(cat /target.txt)" --release -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" RUN RUSTFLAGS="$(cat /flags.txt)" cargo build --target "$(cat /target.txt)" --release -p stalwart-cli RUN mv "/build/target/$(cat /target.txt)/release" "/output" diff --git a/Dockerfile.build b/Dockerfile.build index 79e38f6e..3de80167 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -92,7 +92,7 @@ RUN \ --mount=type=cache,target=/usr/local/cargo/git \ source /env-cargo && \ if [ ! -z "${FDB_ARCH}" ]; then \ - RUSTFLAGS="-L /usr/lib" cargo chef cook --recipe-path recipe.json --zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "foundationdb elastic s3 redis enterprise"; \ + RUSTFLAGS="-L /usr/lib" cargo chef cook --recipe-path recipe.json --zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "foundationdb elastic s3 redis nats enterprise"; \ fi RUN \ --mount=type=secret,id=ACTIONS_RESULTS_URL,env=ACTIONS_RESULTS_URL \ @@ -100,7 +100,7 @@ RUN \ --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/usr/local/cargo/git \ source /env-cargo && \ - cargo chef cook --recipe-path recipe.json --zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure enterprise" && \ + cargo chef cook --recipe-path recipe.json --zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" && \ cargo chef cook --recipe-path recipe.json --zigbuild --release --target ${TARGET} -p stalwart-cli # Copy the source code COPY . . @@ -114,7 +114,7 @@ RUN \ --mount=type=cache,target=/usr/local/cargo/git \ source /env-cargo && \ if [ ! -z "${FDB_ARCH}" ]; then \ - RUSTFLAGS="-L /usr/lib" cargo zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "foundationdb elastic s3 redis enterprise" && \ + RUSTFLAGS="-L /usr/lib" cargo zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "foundationdb elastic s3 redis nats enterprise" && \ mv /app/target/${TARGET}/release/stalwart-mail /app/artifact/stalwart-mail-foundationdb; \ fi # Build generic version @@ -124,7 +124,7 @@ RUN \ --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/usr/local/cargo/git \ source /env-cargo && \ - cargo zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure enterprise" && \ + cargo zigbuild --release --target ${TARGET} -p mail-server --no-default-features --features "sqlite postgres mysql rocks elastic s3 redis azure nats enterprise" && \ cargo zigbuild --release --target ${TARGET} -p stalwart-cli && \ mv /app/target/${TARGET}/release/stalwart-mail /app/artifact/stalwart-mail && \ mv /app/target/${TARGET}/release/stalwart-cli /app/artifact/stalwart-cli diff --git a/crates/common/src/config/groupware.rs b/crates/common/src/config/groupware.rs index 2718b489..6f49bc5f 100644 --- a/crates/common/src/config/groupware.rs +++ b/crates/common/src/config/groupware.rs @@ -36,53 +36,43 @@ impl GroupwareConfig { pub fn parse(config: &mut Config) -> Self { GroupwareConfig { max_request_size: config - .property("dav.limits.size.request") + .property("dav.request.max-size") .unwrap_or(25 * 1024 * 1024), dead_property_size: config - .property_or_default::>("dav.limits.size.dead-property", "1024") + .property_or_default::>("dav.property.max-size.dead", "1024") .unwrap_or(Some(1024)), - live_property_size: config - .property("dav.limits.size.live-property") - .unwrap_or(250), - max_lock_timeout: config - .property("dav.limits.timeout.max-lock") - .unwrap_or(3600), - max_locks_per_user: config - .property("dav.limits.max-locks-per-user") - .unwrap_or(10), - max_results: config.property("dav.limits.max-results").unwrap_or(2000), - max_vcard_size: config - .property("dav.limits.size.vcard") - .unwrap_or(512 * 1024), - max_ical_size: config - .property("dav.limits.size.ical") - .unwrap_or(512 * 1024), + live_property_size: config.property("dav.property.max-size.live").unwrap_or(250), + max_lock_timeout: config.property("dav.lock.max-timeout").unwrap_or(3600), + max_locks_per_user: config.property("dav.locks.max-per-user").unwrap_or(10), + max_results: config.property("dav.response.max-results").unwrap_or(2000), + max_vcard_size: config.property("contacts.max-size").unwrap_or(512 * 1024), + max_ical_size: config.property("calendar.max-size").unwrap_or(512 * 1024), default_calendar_name: config - .property_or_default::>("dav.default.calendar.name", "default") + .property_or_default::>("calendar.default.href-name", "default") .unwrap_or_default(), default_addressbook_name: config - .property_or_default::>("dav.default.addressbook.name", "default") + .property_or_default::>("contacts.default.href-name", "default") .unwrap_or_default(), default_calendar_display_name: config .property_or_default::>( - "dav.default.calendar.display-name", - "Default Calendar", + "calendar.default.display-name", + "Stalwart Calendar", ) .unwrap_or_default(), default_addressbook_display_name: config .property_or_default::>( - "dav.default.addressbook.display-name", - "Default Address Book", + "contacts.default.display-name", + "Stalwart Address Book", ) .unwrap_or_default(), max_ical_instances: config - .property("dav.limits.ical.max-instances") + .property("calendar.max-recurrence-expansions") .unwrap_or(1000), max_ical_attendees_per_instance: config - .property("dav.limits.ical.max-attendees-per-instance") + .property("calendar.max-attendees-per-instance") .unwrap_or(1000), max_file_size: config - .property("dav.limits.size.file") + .property("file-storage.max-size") .unwrap_or(25 * 1024 * 1024), } } diff --git a/crates/dav/src/request.rs b/crates/dav/src/request.rs index 52935001..a56948d0 100644 --- a/crates/dav/src/request.rs +++ b/crates/dav/src/request.rs @@ -549,7 +549,6 @@ impl DavRequestHandler for Server { }; //let c = println!("------------------------------------------"); - //let std_body = std::str::from_utf8(&body).unwrap_or("[binary]").to_string(); // Parse headers @@ -559,7 +558,7 @@ impl DavRequestHandler for Server { } let start_time = Instant::now(); - let result = match self + match self .dispatch_dav_request(&request, &headers, access_token, resource, method, body) .await { @@ -674,7 +673,7 @@ impl DavRequestHandler for Server { HttpResponse::new(code) } - }; + } /*let c = println!( "{:?} {} -> {:?}\nHeaders: {:?}\nBody: {}\nResponse headers: {:?}\nResponse: {}", @@ -689,9 +688,9 @@ impl DavRequestHandler for Server { http_proto::HttpResponseBody::Empty => "[empty]".to_string(), _ => "[binary]".to_string(), } - );*/ + ); - result + result*/ } } diff --git a/crates/groupware/src/cache/mod.rs b/crates/groupware/src/cache/mod.rs index 43b7ce2c..d8bf9f46 100644 --- a/crates/groupware/src/cache/mod.rs +++ b/crates/groupware/src/cache/mod.rs @@ -288,8 +288,12 @@ impl GroupwareCache for Server { name: name.clone(), preferences: vec![CalendarPreferences { account_id, - name: name.clone(), - description: self.core.groupware.default_calendar_display_name.clone(), + name: self + .core + .groupware + .default_calendar_display_name + .clone() + .unwrap_or_else(|| name.clone()), ..Default::default() }], ..Default::default()