mirror of
https://github.com/kanidm/kanidm.git
synced 2025-02-23 20:47:01 +01:00
deploy: d8b73c7bea
This commit is contained in:
parent
24363d4ad5
commit
3d494d3956
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_web_ui/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_web_ui/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_web_ui" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_client/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_client/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_client" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#367-745">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#368-751">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main() -> <a class="struct" href="https://doc.rust-lang.org/1.68.0/std/process/struct.ExitCode.html" title="struct std::process::ExitCode">ExitCode</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1,2 +1,2 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#124-136">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#125-137">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
||||||
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#46">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -8,9 +8,9 @@ the auth as the password of B was incorrect. Additionally, while A only needs th
|
||||||
B requires both the password and otp to be valid.</p>
|
B requires both the password and otp to be valid.</p>
|
||||||
<p>In this way, each Credential provides it’s own password requirements and policy, and requires
|
<p>In this way, each Credential provides it’s own password requirements and policy, and requires
|
||||||
some metadata to support this such as it’s source and strength etc.</p>
|
some metadata to support this such as it’s source and strength etc.</p>
|
||||||
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Credential" class="impl has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#371-895">source</a><a href="#impl-Credential" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Credential.html" title="struct kanidmd_lib::credential::Credential">Credential</a></h3></section></summary><div class="impl-items"><section id="method.try_from_repl_v1" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#372-449">source</a><h4 class="code-header">pub fn <a href="#method.try_from_repl_v1" class="fn">try_from_repl_v1</a>(rc: &ReplCredV1) -> <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, Self), <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>></h4></section><details class="toggle method-toggle" open><summary><section id="method.new_password_only" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#452-457">source</a><h4 class="code-header">pub fn <a href="#method.new_password_only" class="fn">new_password_only</a>(<br> policy: &<a class="struct" href="../../kanidm_lib_crypto/struct.CryptoPolicy.html" title="struct kanidm_lib_crypto::CryptoPolicy">CryptoPolicy</a>,<br> cleartext: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>></h4></section></summary><div class="docblock"><p>Create a new credential that contains a CredentialType::Password</p>
|
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Credential" class="impl has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#371-895">source</a><a href="#impl-Credential" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Credential.html" title="struct kanidmd_lib::credential::Credential">Credential</a></h3></section></summary><div class="impl-items"><section id="method.try_from_repl_v1" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#372-449">source</a><h4 class="code-header">pub fn <a href="#method.try_from_repl_v1" class="fn">try_from_repl_v1</a>(rc: &ReplCredV1) -> <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, Self), <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>></h4></section><details class="toggle method-toggle" open><summary><section id="method.new_password_only" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#452-457">source</a><h4 class="code-header">pub fn <a href="#method.new_password_only" class="fn">new_password_only</a>(<br> policy: &CryptoPolicy,<br> cleartext: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>></h4></section></summary><div class="docblock"><p>Create a new credential that contains a CredentialType::Password</p>
|
||||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.new_generatedpassword_only" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#460-465">source</a><h4 class="code-header">pub fn <a href="#method.new_generatedpassword_only" class="fn">new_generatedpassword_only</a>(<br> policy: &<a class="struct" href="../../kanidm_lib_crypto/struct.CryptoPolicy.html" title="struct kanidm_lib_crypto::CryptoPolicy">CryptoPolicy</a>,<br> cleartext: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>></h4></section></summary><div class="docblock"><p>Create a new credential that contains a CredentialType::GeneratedPassword</p>
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.new_generatedpassword_only" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#460-465">source</a><h4 class="code-header">pub fn <a href="#method.new_generatedpassword_only" class="fn">new_generatedpassword_only</a>(<br> policy: &CryptoPolicy,<br> cleartext: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>></h4></section></summary><div class="docblock"><p>Create a new credential that contains a CredentialType::GeneratedPassword</p>
|
||||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_password" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#469-475">source</a><h4 class="code-header">pub fn <a href="#method.set_password" class="fn">set_password</a>(<br> &self,<br> policy: &<a class="struct" href="../../kanidm_lib_crypto/struct.CryptoPolicy.html" title="struct kanidm_lib_crypto::CryptoPolicy">CryptoPolicy</a>,<br> cleartext: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>></h4></section></summary><div class="docblock"><p>Update the state of the Password on this credential, if a password is present. If possible
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_password" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#469-475">source</a><h4 class="code-header">pub fn <a href="#method.set_password" class="fn">set_password</a>(<br> &self,<br> policy: &CryptoPolicy,<br> cleartext: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>></h4></section></summary><div class="docblock"><p>Update the state of the Password on this credential, if a password is present. If possible
|
||||||
this will convert the credential to a PasswordMFA in some cases, or fail in others.</p>
|
this will convert the credential to a PasswordMFA in some cases, or fail in others.</p>
|
||||||
</div></details><details class="toggle method-toggle" open><summary><section id="method.append_securitykey" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#480-510">source</a><h4 class="code-header">pub fn <a href="#method.append_securitykey" class="fn">append_securitykey</a>(<br> &self,<br> label: <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,<br> cred: SecurityKey<br>) -> <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>></h4></section></summary><div class="docblock"><p>Extend this credential with another alternate webauthn credential. This is especially
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.append_securitykey" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#480-510">source</a><h4 class="code-header">pub fn <a href="#method.append_securitykey" class="fn">append_securitykey</a>(<br> &self,<br> label: <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,<br> cred: SecurityKey<br>) -> <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>></h4></section></summary><div class="docblock"><p>Extend this credential with another alternate webauthn credential. This is especially
|
||||||
useful for <code>PasswordMfa</code> where you can have many webauthn credentials and a password
|
useful for <code>PasswordMfa</code> where you can have many webauthn credentials and a password
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_web_ui/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_web_ui/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-08ddfdda51b8ee2e.css"><script defer src="./static.files/settings-c3c521c753752a1a.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_web_ui" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_client/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_client/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-08ddfdda51b8ee2e.css"><script defer src="./static.files/settings-c3c521c753752a1a.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_client" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -743,6 +743,12 @@
|
||||||
<a href="#743" id="743">743</a>
|
<a href="#743" id="743">743</a>
|
||||||
<a href="#744" id="744">744</a>
|
<a href="#744" id="744">744</a>
|
||||||
<a href="#745" id="745">745</a>
|
<a href="#745" id="745">745</a>
|
||||||
|
<a href="#746" id="746">746</a>
|
||||||
|
<a href="#747" id="747">747</a>
|
||||||
|
<a href="#748" id="748">748</a>
|
||||||
|
<a href="#749" id="749">749</a>
|
||||||
|
<a href="#750" id="750">750</a>
|
||||||
|
<a href="#751" id="751">751</a>
|
||||||
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
||||||
#![warn(unused_extern_crates)]
|
#![warn(unused_extern_crates)]
|
||||||
#![deny(clippy::todo)]
|
#![deny(clippy::todo)]
|
||||||
|
@ -761,6 +767,7 @@
|
||||||
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
||||||
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
||||||
<span class="kw">use </span>std::path::{Path, PathBuf};
|
<span class="kw">use </span>std::path::{Path, PathBuf};
|
||||||
|
<span class="kw">use </span>std::process::ExitCode;
|
||||||
<span class="kw">use </span>std::sync::Arc;
|
<span class="kw">use </span>std::sync::Arc;
|
||||||
<span class="kw">use </span>std::time::Duration;
|
<span class="kw">use </span>std::time::Duration;
|
||||||
|
|
||||||
|
@ -1108,8 +1115,8 @@
|
||||||
<span class="prelude-val">Ok</span>(())
|
<span class="prelude-val">Ok</span>(())
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[tokio::main]
|
<span class="attr">#[tokio::main(flavor = <span class="string">"current_thread"</span>)]
|
||||||
</span><span class="kw">async fn </span>main() {
|
</span><span class="kw">async fn </span>main() -> ExitCode {
|
||||||
<span class="kw">let </span>cuid = get_current_uid();
|
<span class="kw">let </span>cuid = get_current_uid();
|
||||||
<span class="kw">let </span>ceuid = get_effective_uid();
|
<span class="kw">let </span>ceuid = get_effective_uid();
|
||||||
<span class="kw">let </span>cgid = get_current_gid();
|
<span class="kw">let </span>cgid = get_current_gid();
|
||||||
|
@ -1161,13 +1168,6 @@
|
||||||
)
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
|
||||||
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
|
||||||
<span class="comment">// TODO: this wording is not great m'kay.
|
|
||||||
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
|
||||||
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
|
||||||
<span class="kw">return</span>;
|
|
||||||
};
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
||||||
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
||||||
}
|
}
|
||||||
|
@ -1183,12 +1183,21 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.on(<span class="kw">async </span>{
|
.on(<span class="kw">async </span>{
|
||||||
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
||||||
|
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
||||||
|
<span class="comment">// TODO: this wording is not great m'kay.
|
||||||
|
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
||||||
|
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
||||||
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
||||||
|
|
||||||
|
<span class="kw">let </span><span class="prelude-val">Some</span>(cfg_path_str) = clap_args.get_one::<String>(<span class="string">"client-config"</span>) <span class="kw">else </span>{
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the client config path"</span>);
|
||||||
</span><span class="kw">let </span>cfg_path_str = clap_args.get_one::<String>(<span class="string">"client-config"</span>).expect(<span class="string">"Failed to pull the client config path"</span>);
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!cfg_path.exists() {
|
<span class="kw">if </span>!cfg_path.exists() {
|
||||||
|
@ -1197,14 +1206,14 @@
|
||||||
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
||||||
cfg_path_str
|
cfg_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1219,8 +1228,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="kw">let </span><span class="prelude-val">Some</span>(unixd_path_str) = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>) <span class="kw">else </span>{
|
||||||
</span><span class="kw">let </span>unixd_path_str = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>).expect(<span class="string">"Failed to pull the unixd config path"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the unixd config path"</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!unixd_path.exists() {
|
<span class="kw">if </span>!unixd_path.exists() {
|
||||||
|
@ -1229,14 +1240,14 @@
|
||||||
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
||||||
unixd_path_str
|
unixd_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1255,16 +1266,16 @@
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
||||||
|
@ -1275,7 +1286,7 @@
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
||||||
<span class="kw">return</span>;
|
<span class="kw">return </span>ExitCode::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
||||||
|
@ -1296,8 +1307,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
|
|
||||||
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
||||||
|
|
||||||
|
@ -1311,8 +1322,8 @@
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>!i_meta.is_dir() {
|
<span class="kw">if </span>!i_meta.is_dir() {
|
||||||
|
@ -1322,8 +1333,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
|
@ -1344,8 +1355,8 @@
|
||||||
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>};
|
};
|
||||||
|
|
||||||
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
|
@ -1355,8 +1366,8 @@
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
||||||
</span>};
|
</span>};
|
||||||
|
@ -1368,8 +1379,8 @@
|
||||||
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1390,8 +1401,8 @@
|
||||||
<span class="prelude-val">Ok</span>(c) => c,
|
<span class="prelude-val">Ok</span>(c) => c,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
||||||
|
@ -1402,8 +1413,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// Setup the root-only socket. Take away all others.
|
<span class="comment">// Setup the root-only socket. Take away all others.
|
||||||
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
||||||
|
@ -1411,8 +1422,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="comment">// Undo it.
|
<span class="comment">// Undo it.
|
||||||
|
@ -1484,9 +1495,10 @@
|
||||||
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
||||||
|
|
||||||
server.<span class="kw">await</span>;
|
server.<span class="kw">await</span>;
|
||||||
|
ExitCode::SUCCESS
|
||||||
})
|
})
|
||||||
.<span class="kw">await</span>;
|
.<span class="kw">await
|
||||||
<span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
</span><span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
||||||
</span>}
|
</span>}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -2,27 +2,27 @@
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-13</lastmod>
|
<lastmod>2023-03-20</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-13</lastmod>
|
<lastmod>2023-03-20</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-13</lastmod>
|
<lastmod>2023-03-20</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-13</lastmod>
|
<lastmod>2023-03-20</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-13</lastmod>
|
<lastmod>2023-03-20</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
</urlset>
|
</urlset>
|
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#367-745">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#368-751">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main() -> <a class="struct" href="https://doc.rust-lang.org/1.68.0/std/process/struct.ExitCode.html" title="struct std::process::ExitCode">ExitCode</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1,2 +1,2 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#124-136">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#125-137">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
||||||
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#46">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -743,6 +743,12 @@
|
||||||
<a href="#743" id="743">743</a>
|
<a href="#743" id="743">743</a>
|
||||||
<a href="#744" id="744">744</a>
|
<a href="#744" id="744">744</a>
|
||||||
<a href="#745" id="745">745</a>
|
<a href="#745" id="745">745</a>
|
||||||
|
<a href="#746" id="746">746</a>
|
||||||
|
<a href="#747" id="747">747</a>
|
||||||
|
<a href="#748" id="748">748</a>
|
||||||
|
<a href="#749" id="749">749</a>
|
||||||
|
<a href="#750" id="750">750</a>
|
||||||
|
<a href="#751" id="751">751</a>
|
||||||
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
||||||
#![warn(unused_extern_crates)]
|
#![warn(unused_extern_crates)]
|
||||||
#![deny(clippy::todo)]
|
#![deny(clippy::todo)]
|
||||||
|
@ -761,6 +767,7 @@
|
||||||
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
||||||
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
||||||
<span class="kw">use </span>std::path::{Path, PathBuf};
|
<span class="kw">use </span>std::path::{Path, PathBuf};
|
||||||
|
<span class="kw">use </span>std::process::ExitCode;
|
||||||
<span class="kw">use </span>std::sync::Arc;
|
<span class="kw">use </span>std::sync::Arc;
|
||||||
<span class="kw">use </span>std::time::Duration;
|
<span class="kw">use </span>std::time::Duration;
|
||||||
|
|
||||||
|
@ -1108,8 +1115,8 @@
|
||||||
<span class="prelude-val">Ok</span>(())
|
<span class="prelude-val">Ok</span>(())
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[tokio::main]
|
<span class="attr">#[tokio::main(flavor = <span class="string">"current_thread"</span>)]
|
||||||
</span><span class="kw">async fn </span>main() {
|
</span><span class="kw">async fn </span>main() -> ExitCode {
|
||||||
<span class="kw">let </span>cuid = get_current_uid();
|
<span class="kw">let </span>cuid = get_current_uid();
|
||||||
<span class="kw">let </span>ceuid = get_effective_uid();
|
<span class="kw">let </span>ceuid = get_effective_uid();
|
||||||
<span class="kw">let </span>cgid = get_current_gid();
|
<span class="kw">let </span>cgid = get_current_gid();
|
||||||
|
@ -1161,13 +1168,6 @@
|
||||||
)
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
|
||||||
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
|
||||||
<span class="comment">// TODO: this wording is not great m'kay.
|
|
||||||
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
|
||||||
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
|
||||||
<span class="kw">return</span>;
|
|
||||||
};
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
||||||
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
||||||
}
|
}
|
||||||
|
@ -1183,12 +1183,21 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.on(<span class="kw">async </span>{
|
.on(<span class="kw">async </span>{
|
||||||
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
||||||
|
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
||||||
|
<span class="comment">// TODO: this wording is not great m'kay.
|
||||||
|
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
||||||
|
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
||||||
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
||||||
|
|
||||||
|
<span class="kw">let </span><span class="prelude-val">Some</span>(cfg_path_str) = clap_args.get_one::<String>(<span class="string">"client-config"</span>) <span class="kw">else </span>{
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the client config path"</span>);
|
||||||
</span><span class="kw">let </span>cfg_path_str = clap_args.get_one::<String>(<span class="string">"client-config"</span>).expect(<span class="string">"Failed to pull the client config path"</span>);
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!cfg_path.exists() {
|
<span class="kw">if </span>!cfg_path.exists() {
|
||||||
|
@ -1197,14 +1206,14 @@
|
||||||
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
||||||
cfg_path_str
|
cfg_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1219,8 +1228,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="kw">let </span><span class="prelude-val">Some</span>(unixd_path_str) = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>) <span class="kw">else </span>{
|
||||||
</span><span class="kw">let </span>unixd_path_str = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>).expect(<span class="string">"Failed to pull the unixd config path"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the unixd config path"</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!unixd_path.exists() {
|
<span class="kw">if </span>!unixd_path.exists() {
|
||||||
|
@ -1229,14 +1240,14 @@
|
||||||
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
||||||
unixd_path_str
|
unixd_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1255,16 +1266,16 @@
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
||||||
|
@ -1275,7 +1286,7 @@
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
||||||
<span class="kw">return</span>;
|
<span class="kw">return </span>ExitCode::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
||||||
|
@ -1296,8 +1307,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
|
|
||||||
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
||||||
|
|
||||||
|
@ -1311,8 +1322,8 @@
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>!i_meta.is_dir() {
|
<span class="kw">if </span>!i_meta.is_dir() {
|
||||||
|
@ -1322,8 +1333,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
|
@ -1344,8 +1355,8 @@
|
||||||
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>};
|
};
|
||||||
|
|
||||||
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
|
@ -1355,8 +1366,8 @@
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
||||||
</span>};
|
</span>};
|
||||||
|
@ -1368,8 +1379,8 @@
|
||||||
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1390,8 +1401,8 @@
|
||||||
<span class="prelude-val">Ok</span>(c) => c,
|
<span class="prelude-val">Ok</span>(c) => c,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
||||||
|
@ -1402,8 +1413,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// Setup the root-only socket. Take away all others.
|
<span class="comment">// Setup the root-only socket. Take away all others.
|
||||||
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
||||||
|
@ -1411,8 +1422,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="comment">// Undo it.
|
<span class="comment">// Undo it.
|
||||||
|
@ -1484,9 +1495,10 @@
|
||||||
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
||||||
|
|
||||||
server.<span class="kw">await</span>;
|
server.<span class="kw">await</span>;
|
||||||
|
ExitCode::SUCCESS
|
||||||
})
|
})
|
||||||
.<span class="kw">await</span>;
|
.<span class="kw">await
|
||||||
<span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
</span><span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
||||||
</span>}
|
</span>}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#367-745">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#368-751">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main() -> <a class="struct" href="https://doc.rust-lang.org/1.68.0/std/process/struct.ExitCode.html" title="struct std::process::ExitCode">ExitCode</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1,2 +1,2 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#124-136">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#125-137">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
||||||
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#46">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -743,6 +743,12 @@
|
||||||
<a href="#743" id="743">743</a>
|
<a href="#743" id="743">743</a>
|
||||||
<a href="#744" id="744">744</a>
|
<a href="#744" id="744">744</a>
|
||||||
<a href="#745" id="745">745</a>
|
<a href="#745" id="745">745</a>
|
||||||
|
<a href="#746" id="746">746</a>
|
||||||
|
<a href="#747" id="747">747</a>
|
||||||
|
<a href="#748" id="748">748</a>
|
||||||
|
<a href="#749" id="749">749</a>
|
||||||
|
<a href="#750" id="750">750</a>
|
||||||
|
<a href="#751" id="751">751</a>
|
||||||
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
||||||
#![warn(unused_extern_crates)]
|
#![warn(unused_extern_crates)]
|
||||||
#![deny(clippy::todo)]
|
#![deny(clippy::todo)]
|
||||||
|
@ -761,6 +767,7 @@
|
||||||
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
||||||
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
||||||
<span class="kw">use </span>std::path::{Path, PathBuf};
|
<span class="kw">use </span>std::path::{Path, PathBuf};
|
||||||
|
<span class="kw">use </span>std::process::ExitCode;
|
||||||
<span class="kw">use </span>std::sync::Arc;
|
<span class="kw">use </span>std::sync::Arc;
|
||||||
<span class="kw">use </span>std::time::Duration;
|
<span class="kw">use </span>std::time::Duration;
|
||||||
|
|
||||||
|
@ -1108,8 +1115,8 @@
|
||||||
<span class="prelude-val">Ok</span>(())
|
<span class="prelude-val">Ok</span>(())
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[tokio::main]
|
<span class="attr">#[tokio::main(flavor = <span class="string">"current_thread"</span>)]
|
||||||
</span><span class="kw">async fn </span>main() {
|
</span><span class="kw">async fn </span>main() -> ExitCode {
|
||||||
<span class="kw">let </span>cuid = get_current_uid();
|
<span class="kw">let </span>cuid = get_current_uid();
|
||||||
<span class="kw">let </span>ceuid = get_effective_uid();
|
<span class="kw">let </span>ceuid = get_effective_uid();
|
||||||
<span class="kw">let </span>cgid = get_current_gid();
|
<span class="kw">let </span>cgid = get_current_gid();
|
||||||
|
@ -1161,13 +1168,6 @@
|
||||||
)
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
|
||||||
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
|
||||||
<span class="comment">// TODO: this wording is not great m'kay.
|
|
||||||
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
|
||||||
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
|
||||||
<span class="kw">return</span>;
|
|
||||||
};
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
||||||
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
||||||
}
|
}
|
||||||
|
@ -1183,12 +1183,21 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.on(<span class="kw">async </span>{
|
.on(<span class="kw">async </span>{
|
||||||
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
||||||
|
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
||||||
|
<span class="comment">// TODO: this wording is not great m'kay.
|
||||||
|
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
||||||
|
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
||||||
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
||||||
|
|
||||||
|
<span class="kw">let </span><span class="prelude-val">Some</span>(cfg_path_str) = clap_args.get_one::<String>(<span class="string">"client-config"</span>) <span class="kw">else </span>{
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the client config path"</span>);
|
||||||
</span><span class="kw">let </span>cfg_path_str = clap_args.get_one::<String>(<span class="string">"client-config"</span>).expect(<span class="string">"Failed to pull the client config path"</span>);
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!cfg_path.exists() {
|
<span class="kw">if </span>!cfg_path.exists() {
|
||||||
|
@ -1197,14 +1206,14 @@
|
||||||
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
||||||
cfg_path_str
|
cfg_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1219,8 +1228,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="kw">let </span><span class="prelude-val">Some</span>(unixd_path_str) = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>) <span class="kw">else </span>{
|
||||||
</span><span class="kw">let </span>unixd_path_str = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>).expect(<span class="string">"Failed to pull the unixd config path"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the unixd config path"</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!unixd_path.exists() {
|
<span class="kw">if </span>!unixd_path.exists() {
|
||||||
|
@ -1229,14 +1240,14 @@
|
||||||
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
||||||
unixd_path_str
|
unixd_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1255,16 +1266,16 @@
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
||||||
|
@ -1275,7 +1286,7 @@
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
||||||
<span class="kw">return</span>;
|
<span class="kw">return </span>ExitCode::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
||||||
|
@ -1296,8 +1307,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
|
|
||||||
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
||||||
|
|
||||||
|
@ -1311,8 +1322,8 @@
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>!i_meta.is_dir() {
|
<span class="kw">if </span>!i_meta.is_dir() {
|
||||||
|
@ -1322,8 +1333,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
|
@ -1344,8 +1355,8 @@
|
||||||
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>};
|
};
|
||||||
|
|
||||||
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
|
@ -1355,8 +1366,8 @@
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
||||||
</span>};
|
</span>};
|
||||||
|
@ -1368,8 +1379,8 @@
|
||||||
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1390,8 +1401,8 @@
|
||||||
<span class="prelude-val">Ok</span>(c) => c,
|
<span class="prelude-val">Ok</span>(c) => c,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
||||||
|
@ -1402,8 +1413,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// Setup the root-only socket. Take away all others.
|
<span class="comment">// Setup the root-only socket. Take away all others.
|
||||||
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
||||||
|
@ -1411,8 +1422,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="comment">// Undo it.
|
<span class="comment">// Undo it.
|
||||||
|
@ -1484,9 +1495,10 @@
|
||||||
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
||||||
|
|
||||||
server.<span class="kw">await</span>;
|
server.<span class="kw">await</span>;
|
||||||
|
ExitCode::SUCCESS
|
||||||
})
|
})
|
||||||
.<span class="kw">await</span>;
|
.<span class="kw">await
|
||||||
<span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
</span><span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
||||||
</span>}
|
</span>}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#367-745">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#368-751">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main() -> <a class="struct" href="https://doc.rust-lang.org/1.68.0/std/process/struct.ExitCode.html" title="struct std::process::ExitCode">ExitCode</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1,2 +1,2 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#124-136">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#125-137">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
||||||
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#46">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-08ddfdda51b8ee2e.css"><script defer src="./static.files/settings-c3c521c753752a1a.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-08ddfdda51b8ee2e.css"><script defer src="./static.files/settings-c3c521c753752a1a.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -743,6 +743,12 @@
|
||||||
<a href="#743" id="743">743</a>
|
<a href="#743" id="743">743</a>
|
||||||
<a href="#744" id="744">744</a>
|
<a href="#744" id="744">744</a>
|
||||||
<a href="#745" id="745">745</a>
|
<a href="#745" id="745">745</a>
|
||||||
|
<a href="#746" id="746">746</a>
|
||||||
|
<a href="#747" id="747">747</a>
|
||||||
|
<a href="#748" id="748">748</a>
|
||||||
|
<a href="#749" id="749">749</a>
|
||||||
|
<a href="#750" id="750">750</a>
|
||||||
|
<a href="#751" id="751">751</a>
|
||||||
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
||||||
#![warn(unused_extern_crates)]
|
#![warn(unused_extern_crates)]
|
||||||
#![deny(clippy::todo)]
|
#![deny(clippy::todo)]
|
||||||
|
@ -761,6 +767,7 @@
|
||||||
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
||||||
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
||||||
<span class="kw">use </span>std::path::{Path, PathBuf};
|
<span class="kw">use </span>std::path::{Path, PathBuf};
|
||||||
|
<span class="kw">use </span>std::process::ExitCode;
|
||||||
<span class="kw">use </span>std::sync::Arc;
|
<span class="kw">use </span>std::sync::Arc;
|
||||||
<span class="kw">use </span>std::time::Duration;
|
<span class="kw">use </span>std::time::Duration;
|
||||||
|
|
||||||
|
@ -1108,8 +1115,8 @@
|
||||||
<span class="prelude-val">Ok</span>(())
|
<span class="prelude-val">Ok</span>(())
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[tokio::main]
|
<span class="attr">#[tokio::main(flavor = <span class="string">"current_thread"</span>)]
|
||||||
</span><span class="kw">async fn </span>main() {
|
</span><span class="kw">async fn </span>main() -> ExitCode {
|
||||||
<span class="kw">let </span>cuid = get_current_uid();
|
<span class="kw">let </span>cuid = get_current_uid();
|
||||||
<span class="kw">let </span>ceuid = get_effective_uid();
|
<span class="kw">let </span>ceuid = get_effective_uid();
|
||||||
<span class="kw">let </span>cgid = get_current_gid();
|
<span class="kw">let </span>cgid = get_current_gid();
|
||||||
|
@ -1161,13 +1168,6 @@
|
||||||
)
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
|
||||||
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
|
||||||
<span class="comment">// TODO: this wording is not great m'kay.
|
|
||||||
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
|
||||||
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
|
||||||
<span class="kw">return</span>;
|
|
||||||
};
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
||||||
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
||||||
}
|
}
|
||||||
|
@ -1183,12 +1183,21 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.on(<span class="kw">async </span>{
|
.on(<span class="kw">async </span>{
|
||||||
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
||||||
|
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
||||||
|
<span class="comment">// TODO: this wording is not great m'kay.
|
||||||
|
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
||||||
|
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
||||||
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
||||||
|
|
||||||
|
<span class="kw">let </span><span class="prelude-val">Some</span>(cfg_path_str) = clap_args.get_one::<String>(<span class="string">"client-config"</span>) <span class="kw">else </span>{
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the client config path"</span>);
|
||||||
</span><span class="kw">let </span>cfg_path_str = clap_args.get_one::<String>(<span class="string">"client-config"</span>).expect(<span class="string">"Failed to pull the client config path"</span>);
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!cfg_path.exists() {
|
<span class="kw">if </span>!cfg_path.exists() {
|
||||||
|
@ -1197,14 +1206,14 @@
|
||||||
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
||||||
cfg_path_str
|
cfg_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1219,8 +1228,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="kw">let </span><span class="prelude-val">Some</span>(unixd_path_str) = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>) <span class="kw">else </span>{
|
||||||
</span><span class="kw">let </span>unixd_path_str = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>).expect(<span class="string">"Failed to pull the unixd config path"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the unixd config path"</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!unixd_path.exists() {
|
<span class="kw">if </span>!unixd_path.exists() {
|
||||||
|
@ -1229,14 +1240,14 @@
|
||||||
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
||||||
unixd_path_str
|
unixd_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1255,16 +1266,16 @@
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
||||||
|
@ -1275,7 +1286,7 @@
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
||||||
<span class="kw">return</span>;
|
<span class="kw">return </span>ExitCode::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
||||||
|
@ -1296,8 +1307,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
|
|
||||||
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
||||||
|
|
||||||
|
@ -1311,8 +1322,8 @@
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>!i_meta.is_dir() {
|
<span class="kw">if </span>!i_meta.is_dir() {
|
||||||
|
@ -1322,8 +1333,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
|
@ -1344,8 +1355,8 @@
|
||||||
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>};
|
};
|
||||||
|
|
||||||
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
|
@ -1355,8 +1366,8 @@
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
||||||
</span>};
|
</span>};
|
||||||
|
@ -1368,8 +1379,8 @@
|
||||||
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1390,8 +1401,8 @@
|
||||||
<span class="prelude-val">Ok</span>(c) => c,
|
<span class="prelude-val">Ok</span>(c) => c,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
||||||
|
@ -1402,8 +1413,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// Setup the root-only socket. Take away all others.
|
<span class="comment">// Setup the root-only socket. Take away all others.
|
||||||
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
||||||
|
@ -1411,8 +1422,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="comment">// Undo it.
|
<span class="comment">// Undo it.
|
||||||
|
@ -1484,9 +1495,10 @@
|
||||||
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
||||||
|
|
||||||
server.<span class="kw">await</span>;
|
server.<span class="kw">await</span>;
|
||||||
|
ExitCode::SUCCESS
|
||||||
})
|
})
|
||||||
.<span class="kw">await</span>;
|
.<span class="kw">await
|
||||||
<span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
</span><span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
||||||
</span>}
|
</span>}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#367-745">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#368-751">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main() -> <a class="struct" href="https://doc.rust-lang.org/1.68.0/std/process/struct.ExitCode.html" title="struct std::process::ExitCode">ExitCode</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1,2 +1,2 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#124-136">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#125-137">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
||||||
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#46">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-08ddfdda51b8ee2e.css"><script defer src="./static.files/settings-c3c521c753752a1a.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-08ddfdda51b8ee2e.css"><script defer src="./static.files/settings-c3c521c753752a1a.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -743,6 +743,12 @@
|
||||||
<a href="#743" id="743">743</a>
|
<a href="#743" id="743">743</a>
|
||||||
<a href="#744" id="744">744</a>
|
<a href="#744" id="744">744</a>
|
||||||
<a href="#745" id="745">745</a>
|
<a href="#745" id="745">745</a>
|
||||||
|
<a href="#746" id="746">746</a>
|
||||||
|
<a href="#747" id="747">747</a>
|
||||||
|
<a href="#748" id="748">748</a>
|
||||||
|
<a href="#749" id="749">749</a>
|
||||||
|
<a href="#750" id="750">750</a>
|
||||||
|
<a href="#751" id="751">751</a>
|
||||||
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
||||||
#![warn(unused_extern_crates)]
|
#![warn(unused_extern_crates)]
|
||||||
#![deny(clippy::todo)]
|
#![deny(clippy::todo)]
|
||||||
|
@ -761,6 +767,7 @@
|
||||||
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
||||||
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
||||||
<span class="kw">use </span>std::path::{Path, PathBuf};
|
<span class="kw">use </span>std::path::{Path, PathBuf};
|
||||||
|
<span class="kw">use </span>std::process::ExitCode;
|
||||||
<span class="kw">use </span>std::sync::Arc;
|
<span class="kw">use </span>std::sync::Arc;
|
||||||
<span class="kw">use </span>std::time::Duration;
|
<span class="kw">use </span>std::time::Duration;
|
||||||
|
|
||||||
|
@ -1108,8 +1115,8 @@
|
||||||
<span class="prelude-val">Ok</span>(())
|
<span class="prelude-val">Ok</span>(())
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[tokio::main]
|
<span class="attr">#[tokio::main(flavor = <span class="string">"current_thread"</span>)]
|
||||||
</span><span class="kw">async fn </span>main() {
|
</span><span class="kw">async fn </span>main() -> ExitCode {
|
||||||
<span class="kw">let </span>cuid = get_current_uid();
|
<span class="kw">let </span>cuid = get_current_uid();
|
||||||
<span class="kw">let </span>ceuid = get_effective_uid();
|
<span class="kw">let </span>ceuid = get_effective_uid();
|
||||||
<span class="kw">let </span>cgid = get_current_gid();
|
<span class="kw">let </span>cgid = get_current_gid();
|
||||||
|
@ -1161,13 +1168,6 @@
|
||||||
)
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
|
||||||
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
|
||||||
<span class="comment">// TODO: this wording is not great m'kay.
|
|
||||||
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
|
||||||
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
|
||||||
<span class="kw">return</span>;
|
|
||||||
};
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
||||||
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
||||||
}
|
}
|
||||||
|
@ -1183,12 +1183,21 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.on(<span class="kw">async </span>{
|
.on(<span class="kw">async </span>{
|
||||||
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
||||||
|
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
||||||
|
<span class="comment">// TODO: this wording is not great m'kay.
|
||||||
|
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
||||||
|
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
||||||
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
||||||
|
|
||||||
|
<span class="kw">let </span><span class="prelude-val">Some</span>(cfg_path_str) = clap_args.get_one::<String>(<span class="string">"client-config"</span>) <span class="kw">else </span>{
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the client config path"</span>);
|
||||||
</span><span class="kw">let </span>cfg_path_str = clap_args.get_one::<String>(<span class="string">"client-config"</span>).expect(<span class="string">"Failed to pull the client config path"</span>);
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!cfg_path.exists() {
|
<span class="kw">if </span>!cfg_path.exists() {
|
||||||
|
@ -1197,14 +1206,14 @@
|
||||||
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
||||||
cfg_path_str
|
cfg_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1219,8 +1228,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="kw">let </span><span class="prelude-val">Some</span>(unixd_path_str) = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>) <span class="kw">else </span>{
|
||||||
</span><span class="kw">let </span>unixd_path_str = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>).expect(<span class="string">"Failed to pull the unixd config path"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the unixd config path"</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!unixd_path.exists() {
|
<span class="kw">if </span>!unixd_path.exists() {
|
||||||
|
@ -1229,14 +1240,14 @@
|
||||||
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
||||||
unixd_path_str
|
unixd_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1255,16 +1266,16 @@
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
||||||
|
@ -1275,7 +1286,7 @@
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
||||||
<span class="kw">return</span>;
|
<span class="kw">return </span>ExitCode::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
||||||
|
@ -1296,8 +1307,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
|
|
||||||
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
||||||
|
|
||||||
|
@ -1311,8 +1322,8 @@
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>!i_meta.is_dir() {
|
<span class="kw">if </span>!i_meta.is_dir() {
|
||||||
|
@ -1322,8 +1333,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
|
@ -1344,8 +1355,8 @@
|
||||||
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>};
|
};
|
||||||
|
|
||||||
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
|
@ -1355,8 +1366,8 @@
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
||||||
</span>};
|
</span>};
|
||||||
|
@ -1368,8 +1379,8 @@
|
||||||
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1390,8 +1401,8 @@
|
||||||
<span class="prelude-val">Ok</span>(c) => c,
|
<span class="prelude-val">Ok</span>(c) => c,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
||||||
|
@ -1402,8 +1413,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// Setup the root-only socket. Take away all others.
|
<span class="comment">// Setup the root-only socket. Take away all others.
|
||||||
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
||||||
|
@ -1411,8 +1422,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="comment">// Undo it.
|
<span class="comment">// Undo it.
|
||||||
|
@ -1484,9 +1495,10 @@
|
||||||
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
||||||
|
|
||||||
server.<span class="kw">await</span>;
|
server.<span class="kw">await</span>;
|
||||||
|
ExitCode::SUCCESS
|
||||||
})
|
})
|
||||||
.<span class="kw">await</span>;
|
.<span class="kw">await
|
||||||
<span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
</span><span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
||||||
</span>}
|
</span>}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#367-745">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#368-751">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main() -> <a class="struct" href="https://doc.rust-lang.org/1.68.0/std/process/struct.ExitCode.html" title="struct std::process::ExitCode">ExitCode</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1,2 +1,2 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#124-136">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#125-137">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
||||||
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#46">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -743,6 +743,12 @@
|
||||||
<a href="#743" id="743">743</a>
|
<a href="#743" id="743">743</a>
|
||||||
<a href="#744" id="744">744</a>
|
<a href="#744" id="744">744</a>
|
||||||
<a href="#745" id="745">745</a>
|
<a href="#745" id="745">745</a>
|
||||||
|
<a href="#746" id="746">746</a>
|
||||||
|
<a href="#747" id="747">747</a>
|
||||||
|
<a href="#748" id="748">748</a>
|
||||||
|
<a href="#749" id="749">749</a>
|
||||||
|
<a href="#750" id="750">750</a>
|
||||||
|
<a href="#751" id="751">751</a>
|
||||||
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
||||||
#![warn(unused_extern_crates)]
|
#![warn(unused_extern_crates)]
|
||||||
#![deny(clippy::todo)]
|
#![deny(clippy::todo)]
|
||||||
|
@ -761,6 +767,7 @@
|
||||||
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
||||||
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
||||||
<span class="kw">use </span>std::path::{Path, PathBuf};
|
<span class="kw">use </span>std::path::{Path, PathBuf};
|
||||||
|
<span class="kw">use </span>std::process::ExitCode;
|
||||||
<span class="kw">use </span>std::sync::Arc;
|
<span class="kw">use </span>std::sync::Arc;
|
||||||
<span class="kw">use </span>std::time::Duration;
|
<span class="kw">use </span>std::time::Duration;
|
||||||
|
|
||||||
|
@ -1108,8 +1115,8 @@
|
||||||
<span class="prelude-val">Ok</span>(())
|
<span class="prelude-val">Ok</span>(())
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[tokio::main]
|
<span class="attr">#[tokio::main(flavor = <span class="string">"current_thread"</span>)]
|
||||||
</span><span class="kw">async fn </span>main() {
|
</span><span class="kw">async fn </span>main() -> ExitCode {
|
||||||
<span class="kw">let </span>cuid = get_current_uid();
|
<span class="kw">let </span>cuid = get_current_uid();
|
||||||
<span class="kw">let </span>ceuid = get_effective_uid();
|
<span class="kw">let </span>ceuid = get_effective_uid();
|
||||||
<span class="kw">let </span>cgid = get_current_gid();
|
<span class="kw">let </span>cgid = get_current_gid();
|
||||||
|
@ -1161,13 +1168,6 @@
|
||||||
)
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
|
||||||
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
|
||||||
<span class="comment">// TODO: this wording is not great m'kay.
|
|
||||||
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
|
||||||
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
|
||||||
<span class="kw">return</span>;
|
|
||||||
};
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
||||||
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
||||||
}
|
}
|
||||||
|
@ -1183,12 +1183,21 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.on(<span class="kw">async </span>{
|
.on(<span class="kw">async </span>{
|
||||||
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
||||||
|
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
||||||
|
<span class="comment">// TODO: this wording is not great m'kay.
|
||||||
|
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
||||||
|
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
||||||
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
||||||
|
|
||||||
|
<span class="kw">let </span><span class="prelude-val">Some</span>(cfg_path_str) = clap_args.get_one::<String>(<span class="string">"client-config"</span>) <span class="kw">else </span>{
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the client config path"</span>);
|
||||||
</span><span class="kw">let </span>cfg_path_str = clap_args.get_one::<String>(<span class="string">"client-config"</span>).expect(<span class="string">"Failed to pull the client config path"</span>);
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!cfg_path.exists() {
|
<span class="kw">if </span>!cfg_path.exists() {
|
||||||
|
@ -1197,14 +1206,14 @@
|
||||||
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
||||||
cfg_path_str
|
cfg_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1219,8 +1228,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="kw">let </span><span class="prelude-val">Some</span>(unixd_path_str) = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>) <span class="kw">else </span>{
|
||||||
</span><span class="kw">let </span>unixd_path_str = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>).expect(<span class="string">"Failed to pull the unixd config path"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the unixd config path"</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!unixd_path.exists() {
|
<span class="kw">if </span>!unixd_path.exists() {
|
||||||
|
@ -1229,14 +1240,14 @@
|
||||||
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
||||||
unixd_path_str
|
unixd_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1255,16 +1266,16 @@
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
||||||
|
@ -1275,7 +1286,7 @@
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
||||||
<span class="kw">return</span>;
|
<span class="kw">return </span>ExitCode::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
||||||
|
@ -1296,8 +1307,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
|
|
||||||
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
||||||
|
|
||||||
|
@ -1311,8 +1322,8 @@
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>!i_meta.is_dir() {
|
<span class="kw">if </span>!i_meta.is_dir() {
|
||||||
|
@ -1322,8 +1333,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
|
@ -1344,8 +1355,8 @@
|
||||||
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>};
|
};
|
||||||
|
|
||||||
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
|
@ -1355,8 +1366,8 @@
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
||||||
</span>};
|
</span>};
|
||||||
|
@ -1368,8 +1379,8 @@
|
||||||
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1390,8 +1401,8 @@
|
||||||
<span class="prelude-val">Ok</span>(c) => c,
|
<span class="prelude-val">Ok</span>(c) => c,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
||||||
|
@ -1402,8 +1413,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// Setup the root-only socket. Take away all others.
|
<span class="comment">// Setup the root-only socket. Take away all others.
|
||||||
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
||||||
|
@ -1411,8 +1422,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="comment">// Undo it.
|
<span class="comment">// Undo it.
|
||||||
|
@ -1484,9 +1495,10 @@
|
||||||
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
||||||
|
|
||||||
server.<span class="kw">await</span>;
|
server.<span class="kw">await</span>;
|
||||||
|
ExitCode::SUCCESS
|
||||||
})
|
})
|
||||||
.<span class="kw">await</span>;
|
.<span class="kw">await
|
||||||
<span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
</span><span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
||||||
</span>}
|
</span>}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#367-745">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#368-751">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main() -> <a class="struct" href="https://doc.rust-lang.org/1.68.0/std/process/struct.ExitCode.html" title="struct std::process::ExitCode">ExitCode</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1,2 +1,2 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#124-136">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#125-137">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
||||||
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#46">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-08ddfdda51b8ee2e.css"><script defer src="./static.files/settings-c3c521c753752a1a.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-08ddfdda51b8ee2e.css"><script defer src="./static.files/settings-c3c521c753752a1a.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -743,6 +743,12 @@
|
||||||
<a href="#743" id="743">743</a>
|
<a href="#743" id="743">743</a>
|
||||||
<a href="#744" id="744">744</a>
|
<a href="#744" id="744">744</a>
|
||||||
<a href="#745" id="745">745</a>
|
<a href="#745" id="745">745</a>
|
||||||
|
<a href="#746" id="746">746</a>
|
||||||
|
<a href="#747" id="747">747</a>
|
||||||
|
<a href="#748" id="748">748</a>
|
||||||
|
<a href="#749" id="749">749</a>
|
||||||
|
<a href="#750" id="750">750</a>
|
||||||
|
<a href="#751" id="751">751</a>
|
||||||
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
||||||
#![warn(unused_extern_crates)]
|
#![warn(unused_extern_crates)]
|
||||||
#![deny(clippy::todo)]
|
#![deny(clippy::todo)]
|
||||||
|
@ -761,6 +767,7 @@
|
||||||
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
||||||
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
||||||
<span class="kw">use </span>std::path::{Path, PathBuf};
|
<span class="kw">use </span>std::path::{Path, PathBuf};
|
||||||
|
<span class="kw">use </span>std::process::ExitCode;
|
||||||
<span class="kw">use </span>std::sync::Arc;
|
<span class="kw">use </span>std::sync::Arc;
|
||||||
<span class="kw">use </span>std::time::Duration;
|
<span class="kw">use </span>std::time::Duration;
|
||||||
|
|
||||||
|
@ -1108,8 +1115,8 @@
|
||||||
<span class="prelude-val">Ok</span>(())
|
<span class="prelude-val">Ok</span>(())
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[tokio::main]
|
<span class="attr">#[tokio::main(flavor = <span class="string">"current_thread"</span>)]
|
||||||
</span><span class="kw">async fn </span>main() {
|
</span><span class="kw">async fn </span>main() -> ExitCode {
|
||||||
<span class="kw">let </span>cuid = get_current_uid();
|
<span class="kw">let </span>cuid = get_current_uid();
|
||||||
<span class="kw">let </span>ceuid = get_effective_uid();
|
<span class="kw">let </span>ceuid = get_effective_uid();
|
||||||
<span class="kw">let </span>cgid = get_current_gid();
|
<span class="kw">let </span>cgid = get_current_gid();
|
||||||
|
@ -1161,13 +1168,6 @@
|
||||||
)
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
|
||||||
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
|
||||||
<span class="comment">// TODO: this wording is not great m'kay.
|
|
||||||
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
|
||||||
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
|
||||||
<span class="kw">return</span>;
|
|
||||||
};
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
||||||
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
||||||
}
|
}
|
||||||
|
@ -1183,12 +1183,21 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.on(<span class="kw">async </span>{
|
.on(<span class="kw">async </span>{
|
||||||
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
||||||
|
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
||||||
|
<span class="comment">// TODO: this wording is not great m'kay.
|
||||||
|
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
||||||
|
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
||||||
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
||||||
|
|
||||||
|
<span class="kw">let </span><span class="prelude-val">Some</span>(cfg_path_str) = clap_args.get_one::<String>(<span class="string">"client-config"</span>) <span class="kw">else </span>{
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the client config path"</span>);
|
||||||
</span><span class="kw">let </span>cfg_path_str = clap_args.get_one::<String>(<span class="string">"client-config"</span>).expect(<span class="string">"Failed to pull the client config path"</span>);
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!cfg_path.exists() {
|
<span class="kw">if </span>!cfg_path.exists() {
|
||||||
|
@ -1197,14 +1206,14 @@
|
||||||
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
||||||
cfg_path_str
|
cfg_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1219,8 +1228,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="kw">let </span><span class="prelude-val">Some</span>(unixd_path_str) = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>) <span class="kw">else </span>{
|
||||||
</span><span class="kw">let </span>unixd_path_str = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>).expect(<span class="string">"Failed to pull the unixd config path"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the unixd config path"</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!unixd_path.exists() {
|
<span class="kw">if </span>!unixd_path.exists() {
|
||||||
|
@ -1229,14 +1240,14 @@
|
||||||
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
||||||
unixd_path_str
|
unixd_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1255,16 +1266,16 @@
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
||||||
|
@ -1275,7 +1286,7 @@
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
||||||
<span class="kw">return</span>;
|
<span class="kw">return </span>ExitCode::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
||||||
|
@ -1296,8 +1307,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
|
|
||||||
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
||||||
|
|
||||||
|
@ -1311,8 +1322,8 @@
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>!i_meta.is_dir() {
|
<span class="kw">if </span>!i_meta.is_dir() {
|
||||||
|
@ -1322,8 +1333,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
|
@ -1344,8 +1355,8 @@
|
||||||
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>};
|
};
|
||||||
|
|
||||||
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
|
@ -1355,8 +1366,8 @@
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
||||||
</span>};
|
</span>};
|
||||||
|
@ -1368,8 +1379,8 @@
|
||||||
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1390,8 +1401,8 @@
|
||||||
<span class="prelude-val">Ok</span>(c) => c,
|
<span class="prelude-val">Ok</span>(c) => c,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
||||||
|
@ -1402,8 +1413,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// Setup the root-only socket. Take away all others.
|
<span class="comment">// Setup the root-only socket. Take away all others.
|
||||||
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
||||||
|
@ -1411,8 +1422,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="comment">// Undo it.
|
<span class="comment">// Undo it.
|
||||||
|
@ -1484,9 +1495,10 @@
|
||||||
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
||||||
|
|
||||||
server.<span class="kw">await</span>;
|
server.<span class="kw">await</span>;
|
||||||
|
ExitCode::SUCCESS
|
||||||
})
|
})
|
||||||
.<span class="kw">await</span>;
|
.<span class="kw">await
|
||||||
<span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
</span><span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
||||||
</span>}
|
</span>}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#367-745">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#368-751">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main() -> <a class="struct" href="https://doc.rust-lang.org/1.68.0/std/process/struct.ExitCode.html" title="struct std::process::ExitCode">ExitCode</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1,2 +1,2 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#124-136">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#125-137">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
||||||
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncTaskRequest` type in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncTaskRequest"><title>AsyncTaskRequest in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">AsyncTaskRequest</a></h2><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Type Definition <a href="index.html">kanidm_unixd</a>::<wbr><a class="type" href="#">AsyncTaskRequest</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#46">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) type AsyncTaskRequest = (<a class="enum" href="../kanidm_unix_common/unix_proto/enum.TaskRequest.html" title="enum kanidm_unix_common::unix_proto::TaskRequest">TaskRequest</a>, Sender<<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.unit.html">()</a>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-08ddfdda51b8ee2e.css"><script defer src="./static.files/settings-c3c521c753752a1a.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-08ddfdda51b8ee2e.css"><script defer src="./static.files/settings-c3c521c753752a1a.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -743,6 +743,12 @@
|
||||||
<a href="#743" id="743">743</a>
|
<a href="#743" id="743">743</a>
|
||||||
<a href="#744" id="744">744</a>
|
<a href="#744" id="744">744</a>
|
||||||
<a href="#745" id="745">745</a>
|
<a href="#745" id="745">745</a>
|
||||||
|
<a href="#746" id="746">746</a>
|
||||||
|
<a href="#747" id="747">747</a>
|
||||||
|
<a href="#748" id="748">748</a>
|
||||||
|
<a href="#749" id="749">749</a>
|
||||||
|
<a href="#750" id="750">750</a>
|
||||||
|
<a href="#751" id="751">751</a>
|
||||||
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
</pre><pre class="rust"><code><span class="attr">#![deny(warnings)]
|
||||||
#![warn(unused_extern_crates)]
|
#![warn(unused_extern_crates)]
|
||||||
#![deny(clippy::todo)]
|
#![deny(clippy::todo)]
|
||||||
|
@ -761,6 +767,7 @@
|
||||||
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
<span class="kw">use </span>std::io::{Error <span class="kw">as </span>IoError, ErrorKind};
|
||||||
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
|
||||||
<span class="kw">use </span>std::path::{Path, PathBuf};
|
<span class="kw">use </span>std::path::{Path, PathBuf};
|
||||||
|
<span class="kw">use </span>std::process::ExitCode;
|
||||||
<span class="kw">use </span>std::sync::Arc;
|
<span class="kw">use </span>std::sync::Arc;
|
||||||
<span class="kw">use </span>std::time::Duration;
|
<span class="kw">use </span>std::time::Duration;
|
||||||
|
|
||||||
|
@ -1108,8 +1115,8 @@
|
||||||
<span class="prelude-val">Ok</span>(())
|
<span class="prelude-val">Ok</span>(())
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[tokio::main]
|
<span class="attr">#[tokio::main(flavor = <span class="string">"current_thread"</span>)]
|
||||||
</span><span class="kw">async fn </span>main() {
|
</span><span class="kw">async fn </span>main() -> ExitCode {
|
||||||
<span class="kw">let </span>cuid = get_current_uid();
|
<span class="kw">let </span>cuid = get_current_uid();
|
||||||
<span class="kw">let </span>ceuid = get_effective_uid();
|
<span class="kw">let </span>ceuid = get_effective_uid();
|
||||||
<span class="kw">let </span>cgid = get_current_gid();
|
<span class="kw">let </span>cgid = get_current_gid();
|
||||||
|
@ -1161,13 +1168,6 @@
|
||||||
)
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
|
||||||
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
|
||||||
<span class="comment">// TODO: this wording is not great m'kay.
|
|
||||||
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
|
||||||
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
|
||||||
<span class="kw">return</span>;
|
|
||||||
};
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"debug"</span>) {
|
||||||
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
std::env::set_var(<span class="string">"RUST_LOG"</span>, <span class="string">"debug"</span>);
|
||||||
}
|
}
|
||||||
|
@ -1183,12 +1183,21 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.on(<span class="kw">async </span>{
|
.on(<span class="kw">async </span>{
|
||||||
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"skip-root-check"</span>) {
|
||||||
|
<span class="macro">warn!</span>(<span class="string">"Skipping root user check, if you're running this for testing, ensure you clean up temporary files."</span>)
|
||||||
|
<span class="comment">// TODO: this wording is not great m'kay.
|
||||||
|
</span>} <span class="kw">else if </span>cuid == <span class="number">0 </span>|| ceuid == <span class="number">0 </span>|| cgid == <span class="number">0 </span>|| cegid == <span class="number">0 </span>{
|
||||||
|
<span class="macro">error!</span>(<span class="string">"Refusing to run - this process must not operate as root."</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
<span class="macro">debug!</span>(<span class="string">"Profile -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_PROFILE_NAME"</span>));
|
||||||
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
<span class="macro">debug!</span>(<span class="string">"CPU Flags -> {}"</span>, <span class="macro">env!</span>(<span class="string">"KANIDM_CPU_FLAGS"</span>));
|
||||||
|
|
||||||
|
<span class="kw">let </span><span class="prelude-val">Some</span>(cfg_path_str) = clap_args.get_one::<String>(<span class="string">"client-config"</span>) <span class="kw">else </span>{
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the client config path"</span>);
|
||||||
</span><span class="kw">let </span>cfg_path_str = clap_args.get_one::<String>(<span class="string">"client-config"</span>).expect(<span class="string">"Failed to pull the client config path"</span>);
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
<span class="kw">let </span>cfg_path: PathBuf = PathBuf::from(cfg_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!cfg_path.exists() {
|
<span class="kw">if </span>!cfg_path.exists() {
|
||||||
|
@ -1197,14 +1206,14 @@
|
||||||
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"Client config missing from {} - cannot start up. Quitting."</span>,
|
||||||
cfg_path_str
|
cfg_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
<span class="kw">let </span>cfg_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>cfg_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, cfg_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>cfg_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1219,8 +1228,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="attr">#[allow(clippy::expect_used)]
|
<span class="kw">let </span><span class="prelude-val">Some</span>(unixd_path_str) = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>) <span class="kw">else </span>{
|
||||||
</span><span class="kw">let </span>unixd_path_str = clap_args.get_one::<String>(<span class="string">"unixd-config"</span>).expect(<span class="string">"Failed to pull the unixd config path"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to pull the unixd config path"</span>);
|
||||||
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
|
};
|
||||||
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
<span class="kw">let </span>unixd_path = PathBuf::from(unixd_path_str);
|
||||||
|
|
||||||
<span class="kw">if </span>!unixd_path.exists() {
|
<span class="kw">if </span>!unixd_path.exists() {
|
||||||
|
@ -1229,14 +1240,14 @@
|
||||||
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
<span class="string">"unixd config missing from {} - cannot start up. Quitting."</span>,
|
||||||
unixd_path_str
|
unixd_path_str
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>} <span class="kw">else </span>{
|
} <span class="kw">else </span>{
|
||||||
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>unixd_meta = <span class="kw">match </span>metadata(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(e) => {
|
<span class="prelude-val">Err</span>(e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
<span class="macro">error!</span>(<span class="string">"Unable to read metadata for {} - {:?}"</span>, unixd_path_str, e);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>unixd_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
<span class="macro">warn!</span>(<span class="string">"permissions on {} may not be secure. Should be readonly to running uid. This could be a security risk ..."</span>,
|
||||||
|
@ -1255,16 +1266,16 @@
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, cfg_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
<span class="kw">let </span>cfg = <span class="kw">match </span>KanidmUnixdConfig::new().read_options_from_optional_config(<span class="kw-2">&</span>unixd_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
<span class="macro">error!</span>(<span class="string">"Failed to parse {}"</span>, unixd_path_str);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
<span class="kw">if </span>clap_args.get_flag(<span class="string">"configtest"</span>) {
|
||||||
|
@ -1275,7 +1286,7 @@
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
<span class="macro">eprintln!</span>(<span class="string">"###################################"</span>);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
<span class="macro">eprintln!</span>(<span class="string">"Client config (from {:#?})"</span>, <span class="kw-2">&</span>cfg_path);
|
||||||
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
<span class="macro">eprintln!</span>(<span class="string">"{}"</span>, cb);
|
||||||
<span class="kw">return</span>;
|
<span class="kw">return </span>ExitCode::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
<span class="macro">debug!</span>(<span class="string">"🧹 Cleaning up sockets from previous invocations"</span>);
|
||||||
|
@ -1296,8 +1307,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_parent_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
|
|
||||||
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
<span class="kw">let </span>db_par_path_buf = db_parent_path.to_path_buf();
|
||||||
|
|
||||||
|
@ -1311,8 +1322,8 @@
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">if </span>!i_meta.is_dir() {
|
<span class="kw">if </span>!i_meta.is_dir() {
|
||||||
|
@ -1322,8 +1333,8 @@
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
<span class="kw">if </span>!kanidm_lib_file_permissions::readonly(<span class="kw-2">&</span>i_meta) {
|
||||||
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
<span class="macro">warn!</span>(<span class="string">"WARNING: DB folder permissions on {} indicate it may not be RW. This could cause the server start up to fail!"</span>, db_par_path_buf.to_str()
|
||||||
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
.unwrap_or(<span class="string">"<db_par_path_buf invalid>"</span>)
|
||||||
|
@ -1344,8 +1355,8 @@
|
||||||
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
<span class="string">"Refusing to run - DB path {} already exists and is not a file."</span>,
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>)
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>};
|
};
|
||||||
|
|
||||||
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
<span class="kw">match </span>metadata(<span class="kw-2">&</span>db_path) {
|
||||||
<span class="prelude-val">Ok</span>(v) => v,
|
<span class="prelude-val">Ok</span>(v) => v,
|
||||||
|
@ -1355,8 +1366,8 @@
|
||||||
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
db_path.to_str().unwrap_or(<span class="string">"<db_path invalid>"</span>),
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
<span class="comment">// TODO: permissions dance to enumerate the user's ability to write to the file? ref #456 - r2d2 will happily keep trying to do things without bailing.
|
||||||
</span>};
|
</span>};
|
||||||
|
@ -1368,8 +1379,8 @@
|
||||||
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
<span class="prelude-val">Ok</span>(rsc) => rsc,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build async client"</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1390,8 +1401,8 @@
|
||||||
<span class="prelude-val">Ok</span>(c) => c,
|
<span class="prelude-val">Ok</span>(c) => c,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
<span class="macro">error!</span>(<span class="string">"Failed to build cache layer."</span>);
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
<span class="kw">let </span>cachelayer = Arc::new(cl_inner);
|
||||||
|
@ -1402,8 +1413,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket at {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
<span class="comment">// Setup the root-only socket. Take away all others.
|
<span class="comment">// Setup the root-only socket. Take away all others.
|
||||||
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
</span><span class="kw">let _ </span>= <span class="kw">unsafe </span>{ umask(<span class="number">0o0077</span>) };
|
||||||
|
@ -1411,8 +1422,8 @@
|
||||||
<span class="prelude-val">Ok</span>(l) => l,
|
<span class="prelude-val">Ok</span>(l) => l,
|
||||||
<span class="prelude-val">Err</span>(_e) => {
|
<span class="prelude-val">Err</span>(_e) => {
|
||||||
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
<span class="macro">error!</span>(<span class="string">"Failed to bind UNIX socket {}"</span>, cfg.sock_path.as_str());
|
||||||
<span class="kw">return
|
<span class="kw">return </span>ExitCode::FAILURE
|
||||||
</span>}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
<span class="comment">// Undo it.
|
<span class="comment">// Undo it.
|
||||||
|
@ -1484,9 +1495,10 @@
|
||||||
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
<span class="macro">info!</span>(<span class="string">"Server started ..."</span>);
|
||||||
|
|
||||||
server.<span class="kw">await</span>;
|
server.<span class="kw">await</span>;
|
||||||
|
ExitCode::SUCCESS
|
||||||
})
|
})
|
||||||
.<span class="kw">await</span>;
|
.<span class="kw">await
|
||||||
<span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
</span><span class="comment">// TODO: can we catch signals to clean up sockets etc, especially handy when running as root
|
||||||
</span>}
|
</span>}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</section></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidmd_lib/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidmd_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="./static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="./static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="./kanidm_proto/index.html"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="kanidm_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#367-745">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `kanidm_unixd`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#368-751">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn main() -> <a class="struct" href="https://doc.rust-lang.org/1.68.0/std/process/struct.ExitCode.html" title="struct std::process::ExitCode">ExitCode</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
|
@ -1,2 +1,2 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#124-136">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Pass this a file path and it’ll look for the file and remove it if it’s there."><meta name="keywords" content="rust, rustlang, rust-lang, rm_if_exist"><title>rm_if_exist in kanidm_unixd - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../kanidm_unixd/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_unixd</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">kanidm_unixd</a>::<wbr><a class="fn" href="#">rm_if_exist</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_unixd/daemon.rs.html#125-137">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust"><code>pub(crate) fn rm_if_exist(p: &<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>)</code></pre></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Pass this a file path and it’ll look for the file and remove it if it’s there.</p>
|
||||||
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_unixd" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue