projects
/
pazpar2-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Version 1.8.8
[pazpar2-moved-to-github.git]
/
src
/
host.c
diff --git
a/src/host.c
b/src/host.c
index
6978dd8
..
5c7c15f
100644
(file)
--- a/
src/host.c
+++ b/
src/host.c
@@
-1,5
+1,5
@@
/* This file is part of Pazpar2.
/* This file is part of Pazpar2.
- Copyright (C) 2006-2013 Index Data
+ Copyright (C) Index Data
Pazpar2 is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Pazpar2 is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
@@
-59,6
+59,7
@@
static struct host *create_host(const char *proxy,
host->connections = 0;
host->ipport = 0;
host->mutex = 0;
host->connections = 0;
host->ipport = 0;
host->mutex = 0;
+ host->error = 0;
if (host_getaddrinfo(host, iochan_man))
{
if (host_getaddrinfo(host, iochan_man))
{
@@
-88,7
+89,13
@@
struct host *find_host(database_hosts_t hosts, const char *url,
tproxy = xmalloc (strlen(url) + 10); /* so we can add :port */
strcpy(tproxy, url);
tproxy = xmalloc (strlen(url) + 10); /* so we can add :port */
strcpy(tproxy, url);
- for (cp = tproxy; *cp; cp++)
+ if (!strncmp(tproxy, "http://", 7))
+ cp = tproxy + 7;
+ else if (!strncmp(tproxy, "https://", 8))
+ cp = tproxy + 8;
+ else
+ cp = tproxy;
+ for (; *cp; cp++)
if (strchr("/?#~", *cp))
{
*cp = '\0';
if (strchr("/?#~", *cp))
{
*cp = '\0';
@@
-115,6
+122,8
@@
struct host *find_host(database_hosts_t hosts, const char *url,
hosts->hosts = p;
}
}
hosts->hosts = p;
}
}
+ if (p && p->error) /* already resolved error */
+ p = 0;
yaz_mutex_leave(hosts->mutex);
xfree(tproxy);
return p;
yaz_mutex_leave(hosts->mutex);
xfree(tproxy);
return p;