aboutsummaryrefslogtreecommitdiff
path: root/aerogramme/src/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'aerogramme/src/server.rs')
-rw-r--r--aerogramme/src/server.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/aerogramme/src/server.rs b/aerogramme/src/server.rs
index e302db3..e57cd72 100644
--- a/aerogramme/src/server.rs
+++ b/aerogramme/src/server.rs
@@ -21,6 +21,7 @@ pub struct Server {
imap_server: Option<imap::Server>,
auth_server: Option<auth::AuthServer>,
dav_unsecure_server: Option<dav::Server>,
+ dav_server: Option<dav::Server>,
pid_file: Option<PathBuf>,
}
@@ -37,6 +38,7 @@ impl Server {
imap_server: None,
auth_server: None,
dav_unsecure_server: None,
+ dav_server: None,
pid_file: config.pid,
})
}
@@ -63,12 +65,17 @@ impl Server {
let dav_unsecure_server = config
.dav_unsecure
.map(|dav_config| dav::new_unsecure(dav_config, login.clone()));
+ let dav_server = config
+ .dav
+ .map(|dav_config| dav::new(dav_config, login.clone()))
+ .transpose()?;
Ok(Self {
lmtp_server,
imap_unsecure_server,
imap_server,
dav_unsecure_server,
+ dav_server,
auth_server,
pid_file: config.pid,
})
@@ -125,6 +132,12 @@ impl Server {
None => Ok(()),
Some(s) => s.run(exit_signal.clone()).await,
}
+ },
+ async {
+ match self.dav_server {
+ None => Ok(()),
+ Some(s) => s.run(exit_signal.clone()).await,
+ }
}
)?;