1 /* GNU Mailutils -- a suite of utilities for electronic mail
2    Copyright (C) 2010-2021 Free Software Foundation, Inc.
3 
4    This library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 3 of the License, or (at your option) any later version.
8 
9    This library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General
15    Public License along with this library.  If not, see
16    <http://www.gnu.org/licenses/>. */
17 
18 #ifdef HAVE_CONFIG_H
19 # include <config.h>
20 #endif
21 
22 #include <errno.h>
23 #include <stdlib.h>
24 #include <string.h>
25 #ifdef HAVE_STRINGS_H
26 # include <strings.h>
27 #endif
28 
29 #include <mailutils/types.h>
30 #include <mailutils/argcv.h>
31 #include <mailutils/secret.h>
32 #include <mailutils/errno.h>
33 #include <mailutils/sys/url.h>
34 
35 void
mu_url_destroy(mu_url_t * purl)36 mu_url_destroy (mu_url_t * purl)
37 {
38   if (purl && *purl)
39     {
40       mu_url_t url = (*purl);
41 
42       if (url->_destroy)
43 	url->_destroy (url);
44 
45       free (url->name);
46       free (url->scheme);
47       free (url->user);
48 
49       mu_secret_destroy (&url->secret);
50 
51       free (url->auth);
52       free (url->host);
53       free (url->portstr);
54       free (url->path);
55 
56       if (url->fvcount)
57 	mu_argcv_free (url->fvcount, url->fvpairs);
58 
59       mu_argcv_free (url->qargc, url->qargv);
60 
61       free (url);
62 
63       *purl = NULL;
64     }
65 }
66