diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-11-26 21:49:15 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-11-26 21:49:15 +0200 |
commit | 9de9182e3517c677e2309b0dd58ab4e3af1b3176 (patch) | |
tree | a8d2f33ee720591be9212b9cc6a33a5b018f60bd /src/url.c | |
parent | c0802ebe4ebd7e7bb173c6efa2c6e59dd5440cc3 (diff) | |
download | pies-9de9182e3517c677e2309b0dd58ab4e3af1b3176.tar.gz pies-9de9182e3517c677e2309b0dd58ab4e3af1b3176.tar.bz2 |
Implement internal inetd services in the pies config.
* src/pies.h (CF_INTERNAL): New flag.
(ISCF_TCPMUX): New macro.
(struct component): Reorder fields.
New field: tcpmux.
(progman_lookup_service): Remove proto.
(progman_lookup_tcpmux): New proto.
(struct inetd_builtin.foo): Change signature. All uses updated.
* src/progman.c (progman_lookup_service): Remove.
(progman_lookup_tcpmux): New function.
(progman_create_sockets): Skip tcpmux subservices.
(progman_start): Skip disabled inetd components.
* src/inetd-bi.c (tcpmux): Use progman_lookup_tcpmux.
* src/inetd.c (tcpmux_service, mktag): New functions.
(inetd_conf_file): Minor changes.
* src/pies.c (_cb_bitmask, _cb_precious)
(_cb_disabled, _cb_wait): Remove.
(str_to_cf, _cb_flags): New functions.
(component_keywords): Remove keywords:
disable, precious, wait.
Add keywords: flags, service, tcpmux-master.
(component_verify): Improve.
* src/url.c (pies_url_destroy): Fix coredump on NULL argument.
Diffstat (limited to 'src/url.c')
-rw-r--r-- | src/url.c | 31 |
1 files changed, 17 insertions, 14 deletions
@@ -205,21 +205,24 @@ void pies_url_destroy (struct pies_url **purl) { int i; - struct pies_url *url = *purl; + if (purl && *purl) + { + struct pies_url *url = *purl; - free (url->string); - free (url->scheme); - free (url->host); - free (url->port_s); - free (url->proto_s); - free (url->path); - free (url->user); - free (url->passwd); - for (i = 0; i < url->argc; i++) - free (url->argv[i]); - free (url->argv); - free (url); - *purl = NULL; + free (url->string); + free (url->scheme); + free (url->host); + free (url->port_s); + free (url->proto_s); + free (url->path); + free (url->user); + free (url->passwd); + for (i = 0; i < url->argc; i++) + free (url->argv[i]); + free (url->argv); + free (url); + *purl = NULL; + } } int |