diff options
author | Jeffrey Hutzelman <jhutz@cmu.edu> | 2013-02-22 21:17:44 -0500 |
---|---|---|
committer | Karl Ramm <kcr@1ts.org> | 2013-02-26 23:01:10 -0500 |
commit | 18e990a4f37a750ff71a2c5c9206afcd95df6208 (patch) | |
tree | 5f3ceffa9c90bbce6c6a4635de487302ae3d32e1 /lib | |
parent | 58a713e13c61dd4ce0b7f9f81685879353c0b911 (diff) |
Allow zctl flush_locs to take a user argument
Provide a new library function, ZFlushUserLocations(), to flush locations
for a specified user. This can be called using zctl flush_locs, which
now takes an optional username parameter.
This is the client side of #102
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ZLocations.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/ZLocations.c b/lib/ZLocations.c index 95e180a..e7537da 100644 --- a/lib/ZLocations.c +++ b/lib/ZLocations.c @@ -61,21 +61,28 @@ ZInitLocationInfo(char *hostname, Code_t ZSetLocation(char *exposure) { - return (Z_SendLocation(LOGIN_CLASS, exposure, ZAUTH, + return (Z_SendLocation(LOGIN_CLASS, exposure, ZGetSender(), ZAUTH, "$sender logged in to $1 on $3 at $2")); } Code_t ZUnsetLocation(void) { - return (Z_SendLocation(LOGIN_CLASS, LOGIN_USER_LOGOUT, ZNOAUTH, - "$sender logged out of $1 on $3 at $2")); + return (Z_SendLocation(LOGIN_CLASS, LOGIN_USER_LOGOUT, ZGetSender(), + ZNOAUTH, "$sender logged out of $1 on $3 at $2")); } Code_t ZFlushMyLocations(void) { - return (Z_SendLocation(LOGIN_CLASS, LOGIN_USER_FLUSH, ZAUTH, "")); + return (Z_SendLocation(LOGIN_CLASS, LOGIN_USER_FLUSH, ZGetSender(), + ZAUTH, "")); +} + +Code_t +ZFlushUserLocations(char *target) +{ + return (Z_SendLocation(LOGIN_CLASS, LOGIN_USER_FLUSH, target, ZAUTH, "")); } char * @@ -108,6 +115,7 @@ wait_for_srvack(ZNotice_t *notice, void *uid) Code_t Z_SendLocation(char *class, char *opcode, + char *target, Z_AuthProc auth, char *format) { @@ -124,7 +132,7 @@ Z_SendLocation(char *class, notice.z_kind = ACKED; notice.z_port = (u_short) ((wg_port == -1) ? 0 : wg_port); notice.z_class = class; - notice.z_class_inst = ZGetSender(); + notice.z_class_inst = target; notice.z_opcode = opcode; notice.z_sender = 0; notice.z_recipient = ""; |