X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=client-tags.c;h=5cb873d449402b37cdd9d88b1ff8f0c1d5d21d1e;hp=21d3fcf61b2ea72e47be413e5e562f942227b508;hb=34a6a841e529579e2be4457ea0d4cb1befbc840a;hpb=e6cd35ae9b23649990e7e05d8cc12bbb471cd5d5 diff --git a/client-tags.c b/client-tags.c index 21d3fcf6..5cb873d4 100644 --- a/client-tags.c +++ b/client-tags.c @@ -233,8 +233,8 @@ void get_tag_list_for_client(struct list *tag_list, if (enabled_tags->end_of_life && (enabled_tags->end_of_life < now)) { struct client_specific_tag *next_tag = enabled_tags->next; - log_error(LOG_LEVEL_INFO, - "Tag '%s' for client %s expired %u seconds ago. Deleting it.", + log_error(LOG_LEVEL_TAGGING, + "Tag '%s' for client %s expired %ld seconds ago. Deleting it.", enabled_tags->name, client_address, (now - enabled_tags->end_of_life)); remove_tag_for_client(client_address, enabled_tags->name); @@ -243,6 +243,8 @@ void get_tag_list_for_client(struct list *tag_list, } else { + log_error(LOG_LEVEL_TAGGING, "Enlisting tag '%s' for client %s", + enabled_tags->name, client_address); enlist(tag_list, enabled_tags->name); } enabled_tags = enabled_tags->next; @@ -276,14 +278,15 @@ time_t get_next_tag_timeout_for_client(const char *client_address) enabled_tags = get_tags_for_client(client_address); while (enabled_tags != NULL) { - log_error(LOG_LEVEL_CGI, "Evaluating tag '%s' for client %s. End of life %d", + log_error(LOG_LEVEL_TAGGING, + "Evaluating tag '%s' for client %s. End of life %ld", enabled_tags->name, client_address, enabled_tags->end_of_life); if (enabled_tags->end_of_life) { time_t time_left = enabled_tags->end_of_life - now; /* Add a second to make sure the tag will have expired */ time_left++; - log_error(LOG_LEVEL_CGI, "%d > %d?", next_timeout, time_left); + log_error(LOG_LEVEL_CGI, "%ld > %ld?", next_timeout, time_left); if (next_timeout == 0 || next_timeout > time_left) { next_timeout = time_left; @@ -294,7 +297,7 @@ time_t get_next_tag_timeout_for_client(const char *client_address) privoxy_mutex_unlock(&client_tags_mutex); - log_error(LOG_LEVEL_CGI, "Next timeout in %d seconds", next_timeout); + log_error(LOG_LEVEL_CGI, "Next timeout in %ld seconds", next_timeout); return next_timeout; @@ -473,17 +476,16 @@ static void remove_tag_for_client(const char *client_address, const char *tag) /* Client has preceding client */ clients_with_tags->prev->next = clients_with_tags->next; } - freez(clients_with_tags->client); if (clients_with_tags == requested_tags) { - /* Removing last tag */ - freez(requested_tags); - clients_with_tags = requested_tags; - } - else - { - freez(clients_with_tags); + /* + * We're in the process of removing the last tag, + * mark the global list as empty. + */ + requested_tags = NULL; } + freez(clients_with_tags->client); + freez(clients_with_tags); } freez(enabled_tags->name); freez(enabled_tags); @@ -562,14 +564,14 @@ jb_err enable_client_specific_tag(struct client_state *csp, if (client_has_requested_tag(csp->client_address, tag_name)) { - log_error(LOG_LEVEL_ERROR, + log_error(LOG_LEVEL_TAGGING, "Tag '%s' already enabled for client '%s'", tag->name, csp->client_address); } else { add_tag_for_client(csp->client_address, tag_name, time_to_live); - log_error(LOG_LEVEL_INFO, - "Tag '%s' enabled for client '%s'. TTL: %d.", + log_error(LOG_LEVEL_TAGGING, + "Tag '%s' enabled for client '%s'. TTL: %ld.", tag->name, csp->client_address, time_to_live); } @@ -608,12 +610,12 @@ jb_err disable_client_specific_tag(struct client_state *csp, const char *tag_nam if (client_has_requested_tag(csp->client_address, tag_name)) { remove_tag_for_client(csp->client_address, tag_name); - log_error(LOG_LEVEL_INFO, + log_error(LOG_LEVEL_TAGGING, "Tag '%s' disabled for client '%s'", tag->name, csp->client_address); } else { - log_error(LOG_LEVEL_ERROR, + log_error(LOG_LEVEL_TAGGING, "Tag '%s' currently not set for client '%s'", tag->name, csp->client_address); } @@ -657,6 +659,7 @@ int client_tag_match(const struct pattern_spec *pattern, { if (0 == regexec(pattern->pattern.tag_regex, tag->str, 0, NULL, 0)) { + log_error(LOG_LEVEL_TAGGING, "Client tag '%s' matches", tag->str); return 1; } }