···66# server display name; appears in IDA output window
77server_name = "lumen"
8899+# Allow clients to delete metadata from the database?
1010+allow_deletes = false
1111+912# only required when `use_tls` is set to true.
1013[lumina.tls]
1114# Specify the server's certificate.
+22-1
lumen/src/main.rs
···131131 status: Cow::Owned(status),
132132 }).async_write(&mut stream).await?;
133133 },
134134+ RpcMessage::DelHistory(req) => {
135135+ let is_delete_allowed = state.config.lumina.allow_deletes.unwrap_or(false);
136136+ if !is_delete_allowed {
137137+ RpcMessage::Fail(rpc::RpcFail {
138138+ code: 2,
139139+ message: &format!("{server_name}: Delete command is disabled on this server.")
140140+ }).async_write(&mut stream).await?;
141141+ } else {
142142+ if let Err(err) = db.delete_metadata(&req).await {
143143+ error!("delete failed. db: {err}");
144144+ RpcMessage::Fail(rpc::RpcFail {
145145+ code: 3,
146146+ message: &format!("{server_name}: db error, please try again later.")
147147+ }).async_write(&mut stream).await?;
148148+ return Ok(());
149149+ }
150150+ RpcMessage::DelHistoryResult(rpc::DelHistoryResult {
151151+ deleted_mds: req.funcs.len() as u32,
152152+ }).async_write(&mut stream).await?;
153153+ }
154154+ },
134155 _ => {
135156 RpcMessage::Fail(rpc::RpcFail{code: 0, message: &format!("{server_name}: invalid data.\n")}).async_write(&mut stream).await?;
136157 }
···157178 // send error
158179 error!("got bad hello message");
159180160160- let resp = rpc::RpcFail{ code: 0, message: &format!("{}: bad sequence.\n", server_name) };
181181+ let resp = rpc::RpcFail{ code: 0, message: &format!("{server_name}: bad sequence.") };
161182 let resp = rpc::RpcMessage::Fail(resp);
162183 resp.async_write(&mut stream).await?;
163184