]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Thu, 10 Jan 2013 14:23:18 +0000 (14:23 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Thu, 10 Jan 2013 14:23:18 +0000 (14:23 +0000)
MagickCore/cache.c
MagickCore/distribute-cache-private.h
MagickCore/distribute-cache.c

index d8a27b7d5c53e907f1a5d05f1ffe7286f7f4ce48..c41e8b384192e4d0a77d2ac792710d1ced0344e9 100644 (file)
@@ -3843,7 +3843,10 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
     {
       cache_info->distribute_cache_info=AcquireDistributeCacheInfo(exception);
       if (cache_info->distribute_cache_info != (DistributeCacheInfo *) NULL)
-        return(MagickTrue);
+        {
+          cache_info->type=DistributedCache;
+          return(MagickTrue);
+        }
       (void) ThrowMagickException(exception,GetMagickModule(),CacheError,
         "CacheResourcesExhausted","`%s'",image->filename);
       return(MagickFalse);
index 232819e69e9782140dcfe0b670a1d2e534eb9a4a..83bfd50be495080475a22de6b14e59e5f1be9468 100644 (file)
@@ -24,17 +24,14 @@ extern "C" {
 
 #include "MagickCore/exception.h"
 
-#define MaxNumberDistributedCacheClients  32
-
 typedef struct _DistributeCacheInfo
 {
   size_t
-    number_connections,
-    session[MaxNumberDistributedCacheClients];
+    session;
 
 #if defined(MAGICKCORE_HAVE_SOCKET)
   int
-    server[MaxNumberDistributedCacheClients];
+    server;
 #endif
 
   size_t
index e25fcf2de9e88e960b439c7d9e8abf3e798e50b6..52744db2ea6d853ebc1bca035b075de458dff1c7 100644 (file)
@@ -58,7 +58,7 @@
 #include "MagickCore/exception-private.h"
 #include "MagickCore/memory_.h"
 #include "MagickCore/registry.h"
-#if defined(MAGICKCORE_HAVE_SOCKET) && defined(MAGICKCORE_HAVE_PTHREAD)
+#if defined(MAGICKCORE_HAVE_SOCKET)
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
@@ -90,8 +90,12 @@ MagickPrivate DistributeCacheInfo *AcquireDistributeCacheInfo(
   ExceptionInfo *exception)
 {
 #if defined(MAGICKCORE_HAVE_SOCKET) && defined(MAGICKCORE_HAVE_PTHREAD)
+  char
+    *host,
+    **hosts;
+
   const char
-    *hosts;
+    *value;
 
   DistributeCacheInfo
     *distribute_cache_info;
@@ -104,8 +108,17 @@ MagickPrivate DistributeCacheInfo *AcquireDistributeCacheInfo(
   (void) ResetMagickMemory(distribute_cache_info,0,
     sizeof(*distribute_cache_info));
   distribute_cache_info->signature=MagickSignature;
-  hosts=GetImageRegistry(StringRegistryType,"cache:hosts",exception);
-  (void) hosts;
+  value=GetImageRegistry(StringRegistryType,"cache:hosts",exception);
+  if (value == (const char *) NULL)
+    value=(const char *) "127.0.0.1";
+  host=AcquireString(value);
+  if (host == (char *) NULL)
+    ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
+  SubstituteString(&host,",","\n");
+  hosts=StringToList(host);
+  if (hosts == (char **) NULL)
+    ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
+  hosts=DestroyStringList(hosts);
   return(distribute_cache_info);
 #else
   return((DistributeCacheInfo *) NULL);
@@ -141,7 +154,7 @@ MagickPrivate DistributeCacheInfo *DestroyDistributeCacheInfo(
 {
   assert(distribute_cache_info != (DistributeCacheInfo *) NULL);
   assert(distribute_cache_info->signature == MagickSignature);
-#if defined(MAGICKCORE_HAVE_SOCKET) && defined(MAGICKCORE_HAVE_PTHREAD)
+#if defined(MAGICKCORE_HAVE_SOCKET)
 #endif
   distribute_cache_info->signature=(~MagickSignature);
   distribute_cache_info=(DistributeCacheInfo *)