summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsr2012-12-20 14:57:13 +0100
committersr2012-12-20 14:57:13 +0100
commitc443aed700ee5c395a67f69201236501eb187d1f (patch)
tree20e1fae43f61e8f5908d07a01752126f98af2855
parent[SERVER] Refactor code (diff)
downloaddnbd3-c443aed700ee5c395a67f69201236501eb187d1f.tar.gz
dnbd3-c443aed700ee5c395a67f69201236501eb187d1f.tar.xz
dnbd3-c443aed700ee5c395a67f69201236501eb187d1f.zip
[SERVER] Remove unused default-namespace code
-rw-r--r--src/server/helper.c2
-rw-r--r--src/server/job.c31
-rw-r--r--src/server/rpc.c2
3 files changed, 6 insertions, 29 deletions
diff --git a/src/server/helper.c b/src/server/helper.c
index e5f520a..747dafe 100644
--- a/src/server/helper.c
+++ b/src/server/helper.c
@@ -116,7 +116,7 @@ char host_to_string(const dnbd3_host_t *host, char *target, size_t targetlen)
char is_valid_namespace(char *namespace)
{
- if (*namespace == '\0' || *namespace == '/')
+ if (namespace == NULL || *namespace == '\0' || *namespace == '/')
return 0; // Invalid: Length = 0 or starting with a slash
while (*namespace)
{
diff --git a/src/server/job.c b/src/server/job.c
index 71e09da..8b302c5 100644
--- a/src/server/job.c
+++ b/src/server/job.c
@@ -453,22 +453,6 @@ static void query_servers()
goto communication_error;
}
// Data seems ok
- char *ns = getTextFromPath(doc, "/data/defaultns");
- if (ns && *ns == '\0')
- {
- xmlFree(ns);
- ns = NULL;
- }
- else
- {
- printf("[DEBUG] Other server's default namespace is '%s'\n", ns);
- if (!is_valid_namespace(ns))
- {
- printf("[DEBUG] Ignoring invalid namespace from other server.\n");
- xmlFree(ns);
- ns = NULL;
- }
- }
xmlNodePtr cur;
FOR_EACH_NODE(doc, "/data/images/image", cur)
@@ -491,14 +475,8 @@ static void query_servers()
char *slash = strrchr(image, '/');
if (slash == NULL)
{
- if (!ns)
- goto free_current_image;
- if (!is_valid_imagename(image))
- {
- printf("[DEBUG] Invalid image name: '%s'\n", image);
- goto free_current_image;
- }
- snprintf(xmlbuffer, MAX_RPC_PAYLOAD, "%s/%s", ns, image);
+ printf("[DEBUG] Ignoring remote image with no '/' in name...\n");
+ goto free_current_image;
}
else
{
@@ -518,10 +496,7 @@ static void query_servers()
// Image seems legit, check if there's a local copy
dnbd3_namespace_t *trust;
pthread_spin_lock(&_spinlock);
- if (slash == NULL)
- trust = dnbd3_get_trust_level(&host, ns);
- else
- trust = dnbd3_get_trust_level(&host, image);
+ trust = dnbd3_get_trust_level(&host, image);
if (trust == NULL)
{ // Namespace of image is not trusted
pthread_spin_unlock(&_spinlock);
diff --git a/src/server/rpc.c b/src/server/rpc.c
index 152bf7c..163b345 100644
--- a/src/server/rpc.c
+++ b/src/server/rpc.c
@@ -339,12 +339,14 @@ static int rpc_receive(int client_sock)
complete += 100;
xmlAddDecimalProp(complete / size, tmp_node, "cachefill");
}
+ // Build space separated list of alt servers
int i;
char serverstr[1000] = {0}, target[100];
for (i = 0; i < NUMBER_SERVERS; ++i)
{
if (image->servers[i].host.type == 0) continue;
if (!host_to_string(&(image->servers[i].host), target, 100)) continue;
+ if (*serverstr) strcat(serverstr, " ");
strcat(serverstr, target);
}
xmlNewProp(tmp_node, BAD_CAST "servers", BAD_CAST serverstr); // TODO