diff options
Diffstat (limited to '')
-rw-r--r-- | src/doveadm/doveadm-who.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/doveadm/doveadm-who.h b/src/doveadm/doveadm-who.h new file mode 100644 index 0000000..57c663a --- /dev/null +++ b/src/doveadm/doveadm-who.h @@ -0,0 +1,37 @@ +#ifndef DOVEADM_WHO_H +#define DOVEADM_WHO_H + +struct who_line { + const char *username; + const char *service; + struct ip_addr ip; + pid_t pid; + unsigned int refcount; +}; + + +struct who_filter { + const char *username; + struct ip_addr net_ip; + unsigned int net_bits; +}; + +struct who_context { + const char *anvil_path; + struct who_filter filter; + + pool_t pool; + HASH_TABLE(struct who_user *, struct who_user *) users; +}; + +typedef void who_callback_t(struct who_context *ctx, + const struct who_line *line); + +int who_parse_args(struct who_context *ctx, const char *const *masks); + +void who_lookup(struct who_context *ctx, who_callback_t *callback); + +bool who_line_filter_match(const struct who_line *line, + const struct who_filter *filter); + +#endif /* DOVEADM_WHO_H */ |