aboutsummaryrefslogtreecommitdiff
path: root/src/url.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2009-11-26 21:49:15 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2009-11-26 21:49:15 +0200
commit9de9182e3517c677e2309b0dd58ab4e3af1b3176 (patch)
treea8d2f33ee720591be9212b9cc6a33a5b018f60bd /src/url.c
parentc0802ebe4ebd7e7bb173c6efa2c6e59dd5440cc3 (diff)
downloadpies-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.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/url.c b/src/url.c
index be74974..6bc28ad 100644
--- a/src/url.c
+++ b/src/url.c
@@ -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

Return to:

Send suggestions and report system problems to the System administrator.