diff options
author | neksard <neksard@yandex-team.ru> | 2022-02-10 16:45:33 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:33 +0300 |
commit | 1d9c550e7c38e051d7961f576013a482003a70d9 (patch) | |
tree | b2cc84ee7850122e7ccf51d0ea21e4fa7e7a5685 /contrib/libs/c-ares/ares_destroy.c | |
parent | 8f7cf138264e0caa318144bf8a2c950e0b0a8593 (diff) | |
download | ydb-1d9c550e7c38e051d7961f576013a482003a70d9.tar.gz |
Restoring authorship annotation for <neksard@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/c-ares/ares_destroy.c')
-rw-r--r-- | contrib/libs/c-ares/ares_destroy.c | 194 |
1 files changed, 97 insertions, 97 deletions
diff --git a/contrib/libs/c-ares/ares_destroy.c b/contrib/libs/c-ares/ares_destroy.c index 893a63f8a4..fed2009ab3 100644 --- a/contrib/libs/c-ares/ares_destroy.c +++ b/contrib/libs/c-ares/ares_destroy.c @@ -1,113 +1,113 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2004-2011 by Daniel Stenberg - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. - */ - -#include "ares_setup.h" - -#include <assert.h> - -#include "ares.h" -#include "ares_private.h" - -void ares_destroy_options(struct ares_options *options) -{ - int i; - - if(options->servers) + +/* Copyright 1998 by the Massachusetts Institute of Technology. + * Copyright (C) 2004-2011 by Daniel Stenberg + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#include "ares_setup.h" + +#include <assert.h> + +#include "ares.h" +#include "ares_private.h" + +void ares_destroy_options(struct ares_options *options) +{ + int i; + + if(options->servers) ares_free(options->servers); - for (i = 0; i < options->ndomains; i++) + for (i = 0; i < options->ndomains; i++) ares_free(options->domains[i]); - if(options->domains) + if(options->domains) ares_free(options->domains); - if(options->sortlist) + if(options->sortlist) ares_free(options->sortlist); - if(options->lookups) + if(options->lookups) ares_free(options->lookups); if(options->resolvconf_path) ares_free(options->resolvconf_path); -} - -void ares_destroy(ares_channel channel) -{ - int i; - struct query *query; - struct list_node* list_head; - struct list_node* list_node; - - if (!channel) - return; - - list_head = &(channel->all_queries); - for (list_node = list_head->next; list_node != list_head; ) - { - query = list_node->data; - list_node = list_node->next; /* since we're deleting the query */ - query->callback(query->arg, ARES_EDESTRUCTION, 0, NULL, 0); - ares__free_query(query); - } -#ifndef NDEBUG - /* Freeing the query should remove it from all the lists in which it sits, - * so all query lists should be empty now. - */ - assert(ares__is_list_empty(&(channel->all_queries))); - for (i = 0; i < ARES_QID_TABLE_SIZE; i++) - { - assert(ares__is_list_empty(&(channel->queries_by_qid[i]))); - } - for (i = 0; i < ARES_TIMEOUT_TABLE_SIZE; i++) - { - assert(ares__is_list_empty(&(channel->queries_by_timeout[i]))); - } -#endif - - ares__destroy_servers_state(channel); - - if (channel->domains) { - for (i = 0; i < channel->ndomains; i++) +} + +void ares_destroy(ares_channel channel) +{ + int i; + struct query *query; + struct list_node* list_head; + struct list_node* list_node; + + if (!channel) + return; + + list_head = &(channel->all_queries); + for (list_node = list_head->next; list_node != list_head; ) + { + query = list_node->data; + list_node = list_node->next; /* since we're deleting the query */ + query->callback(query->arg, ARES_EDESTRUCTION, 0, NULL, 0); + ares__free_query(query); + } +#ifndef NDEBUG + /* Freeing the query should remove it from all the lists in which it sits, + * so all query lists should be empty now. + */ + assert(ares__is_list_empty(&(channel->all_queries))); + for (i = 0; i < ARES_QID_TABLE_SIZE; i++) + { + assert(ares__is_list_empty(&(channel->queries_by_qid[i]))); + } + for (i = 0; i < ARES_TIMEOUT_TABLE_SIZE; i++) + { + assert(ares__is_list_empty(&(channel->queries_by_timeout[i]))); + } +#endif + + ares__destroy_servers_state(channel); + + if (channel->domains) { + for (i = 0; i < channel->ndomains; i++) ares_free(channel->domains[i]); ares_free(channel->domains); - } - - if(channel->sortlist) + } + + if(channel->sortlist) ares_free(channel->sortlist); - - if (channel->lookups) + + if (channel->lookups) ares_free(channel->lookups); - + if (channel->resolvconf_path) ares_free(channel->resolvconf_path); ares_free(channel); -} - -void ares__destroy_servers_state(ares_channel channel) -{ - struct server_state *server; - int i; - - if (channel->servers) - { - for (i = 0; i < channel->nservers; i++) - { - server = &channel->servers[i]; - ares__close_sockets(channel, server); - assert(ares__is_list_empty(&server->queries_to_server)); - } +} + +void ares__destroy_servers_state(ares_channel channel) +{ + struct server_state *server; + int i; + + if (channel->servers) + { + for (i = 0; i < channel->nservers; i++) + { + server = &channel->servers[i]; + ares__close_sockets(channel, server); + assert(ares__is_list_empty(&server->queries_to_server)); + } ares_free(channel->servers); - channel->servers = NULL; - } - channel->nservers = -1; -} + channel->servers = NULL; + } + channel->nservers = -1; +} |