protocol ======== hello: c->s cynagora 1 s->c yes 1 CACHEID invalidate cache: s->c clear CACHEID ### test a permission synopsis: c->s test CLIENT SESSION USER PERMISSION s->c (done|yes|no) [EXPIRE] ### check a permission synopsis: c->s check CLIENT SESSION USER PERMISSION s->c (yes|no) [EXPIRE] ### enter critical (admin) synopsis: c->s enter s->c done ### leave critical (admin) synopsis: c->s leave [commit|rollback] s->c done|error ... ### erase (admin) synopsis: c->s drop CLIENT SESSION USER PERMISSION s->c done|error ... set (admin): c->s set CLIENT SESSION USER PERMISSION VALUE [EXPIRE] s->c done|error ... list permissions (admin): c->s get CLIENT SESSION USER PERMISSION s->c item CLIENT SESSION USER PERMISSION VALUE [EXPIRE] s->c ... s->c done logging set/get (admin) c->s log [on|off] s->c done (on|off) register agent (agent): s->c ask ASKID NAME VALUE CLIENT SESSION USER PERMISSION c->s reply ASKID (yes|no|error) [EXPIRE] ask agent (agent): s->c ask NAME VALUE CLIENT SESSION USER PERMISSION c->s done | ([yes|no] [always|session|one-time|EXPIRE]) ---------------------------------------------------------- c->s c(heck) CLIENT SESSION USER PERMISSION c->s d(rop) CLIENT SESSION USER PERMISSION c->s e(nter) c->s g(et) CLIENT SESSION USER PERMISSION c->s l(eave) [commit|rollback] c->s r(cyn) c->s s(et) CLIENT SESSION USER PERMISSION VALUE EXPIRE c->s t(est) CLIENT SESSION USER PERMISSION s->c clear s->c done s->c done [CLIENT SESSION USER PERMISSION VALUE] s->c done|error ... s->c item CLIENT SESSION USER PERMISSION VALUE EXPIRE s->c done VALUE EXPIRE