diff options
Diffstat (limited to 'mgmt_parser.rl')
-rw-r--r-- | mgmt_parser.rl | 19 |
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; |