about summary refs log tree commit homepage
path: root/mgmt_parser.rl
diff options
context:
space:
mode:
Diffstat (limited to 'mgmt_parser.rl')
-rw-r--r--mgmt_parser.rl19
1 files changed, 18 insertions, 1 deletions
diff --git a/mgmt_parser.rl b/mgmt_parser.rl
index 075a057..e40e82b 100644
--- a/mgmt_parser.rl
+++ b/mgmt_parser.rl
@@ -62,13 +62,30 @@ static void set_prio_fsck(struct mog_mgmt *mgmt)
                 eor > { mgmt->mark[1] = fpc - buf; }
                 @ { mog_mgmt_fn_aio_threads(mgmt, buf); fbreak; }
         );
+
+        true_val = ('1'|'true'|'yes'|'on');
+        false_val = ('0'|'false'|'no'|'off');
+
+        persist_client = (
+                "set mogstored.persist_client"i ' '?'='(' ')?
+                (
+                        (true_val) @ { mgmt->svc->persist_client = true; }
+                        |
+                        (false_val) @ { mgmt->svc->persist_client = false; }
+                )
+                eor
+                @ {
+                        mog_mgmt_fn_blank(mgmt);
+                        fbreak;
+                }
+        );
         blank = [ \t]* eor @ { mog_mgmt_fn_blank(mgmt); fbreak; };
         shutdown = "shutdown" (" "+"graceful")? eor @ {
                 cmogstored_quit();
                 fbreak;
         };
 
-        command = (digest|size|watch|aio_threads|shutdown|blank);
+        command = (digest|size|watch|aio_threads|persist_client|shutdown|blank);
         main := command $! {
                 p = buf;
                 fhold;