From 21ca7aedc1bf136d9e3f9a63aacfa77c7e9c6af0 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 8 Mar 2010 21:08:00 +0200 Subject: [PATCH] doveadm: Minor code cleanup. --HG-- branch : HEAD --- src/doveadm/doveadm-who.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/doveadm/doveadm-who.c b/src/doveadm/doveadm-who.c index 5e4bec719e..12ea544e3a 100644 --- a/src/doveadm/doveadm-who.c +++ b/src/doveadm/doveadm-who.c @@ -93,11 +93,21 @@ static void who_parse_line(const char *line, struct who_line *line_r) (void)net_addr2ip(ip_str, &line_r->ip); } +static bool who_user_has_pid(struct who_user *user, pid_t pid) +{ + const pid_t *ex_pid; + + array_foreach(&user->pids, ex_pid) { + if (*ex_pid == pid) + return TRUE; + } + return FALSE; +} + static void who_aggregate_line(struct who_context *ctx, const struct who_line *line) { struct who_user *user, lookup_user; - const pid_t *ex_pid; lookup_user.username = line->username; lookup_user.service = line->service; @@ -116,11 +126,7 @@ static void who_aggregate_line(struct who_context *ctx, if (line->ip.family != 0 && !who_user_has_ip(user, &line->ip)) array_append(&user->ips, &line->ip, 1); - array_foreach(&user->pids, ex_pid) { - if (*ex_pid == line->pid) - break; - } - if (*ex_pid != line->pid) + if (!who_user_has_pid(user, line->pid)) array_append(&user->pids, &line->pid, 1); } -- 2.47.3