gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r254 - in GNUnet/src: applications/fs/ecrs applications/fs/


From: grothoff
Subject: [GNUnet-SVN] r254 - in GNUnet/src: applications/fs/ecrs applications/fs/lib applications/fs/tools include
Date: Sat, 12 Feb 2005 23:33:54 -0800 (PST)

Author: grothoff
Date: 2005-02-12 23:33:54 -0800 (Sat, 12 Feb 2005)
New Revision: 254

Modified:
   GNUnet/src/applications/fs/ecrs/download.c
   GNUnet/src/applications/fs/ecrs/search.c
   GNUnet/src/applications/fs/lib/fslib.c
   GNUnet/src/applications/fs/tools/gnunet-download.c
   GNUnet/src/include/gnunet_fs_lib.h
Log:
bugfixes

Modified: GNUnet/src/applications/fs/ecrs/download.c
===================================================================
--- GNUnet/src/applications/fs/ecrs/download.c  2005-02-13 06:09:48 UTC (rev 
253)
+++ GNUnet/src/applications/fs/ecrs/download.c  2005-02-13 07:33:54 UTC (rev 
254)
@@ -401,12 +401,12 @@
   RequestManager * rm;
 
   rm = MALLOC(sizeof(RequestManager));
-  rm->sctx = FS_SEARCH_makeContext();
   rm->abortFlag
     = NO;
   rm->lastDET 
     = 0;
   MUTEX_CREATE_RECURSIVE(&rm->lock);
+  rm->sctx = FS_SEARCH_makeContext(&rm->lock);
   rm->requestListIndex 
     = 0;
   rm->requestListSize  
@@ -828,7 +828,7 @@
             node);
   size -= sizeof(DBlock);
   data = MALLOC(size);
-  if (SYSERR == decryptContent((char*)&reply[1],
+  if (SYSERR == decryptContent((char*)&((DBlock*)&reply[1])[1],
                               size,
                               &node->chk.key,
                               data))
@@ -874,7 +874,6 @@
       requestManagerEndgame(node->ctx->rm);
     }
   }
-  FREE(node);
   FREE(data);
   return OK;
 }

Modified: GNUnet/src/applications/fs/ecrs/search.c
===================================================================
--- GNUnet/src/applications/fs/ecrs/search.c    2005-02-13 06:09:48 UTC (rev 
253)
+++ GNUnet/src/applications/fs/ecrs/search.c    2005-02-13 07:33:54 UTC (rev 
254)
@@ -483,14 +483,14 @@
   cron_t new_ttl;
   unsigned int new_priority;
 
-  ctx.sctx = FS_SEARCH_makeContext();
   cronTime(&ctx.start);
   ctx.timeout = timeout;
   ctx.queryCount = 0;
   ctx.queries = NULL;
   ctx.spcb = spcb;
   ctx.spcbClosure = spcbClosure;
-  MUTEX_CREATE(&ctx.lock);
+  MUTEX_CREATE_RECURSIVE(&ctx.lock);
+  ctx.sctx = FS_SEARCH_makeContext(&ctx.lock);
   addQueryForURI(uri,
                 &ctx);
   cronTime(&now);

Modified: GNUnet/src/applications/fs/lib/fslib.c
===================================================================
--- GNUnet/src/applications/fs/lib/fslib.c      2005-02-13 06:09:48 UTC (rev 
253)
+++ GNUnet/src/applications/fs/lib/fslib.c      2005-02-13 07:33:54 UTC (rev 
254)
@@ -38,7 +38,7 @@
 typedef struct FS_SEARCH_CONTEXT {
   GNUNET_TCP_SOCKET * sock;
   PTHREAD_T thread;
-  Mutex lock;  
+  Mutex * lock;  
   SEARCH_HANDLE ** handles;
   unsigned int handleCount;
   unsigned int handleSize;
@@ -81,7 +81,7 @@
        FREE(hdr);
        continue;
       }      
-      MUTEX_LOCK(&ctx->lock);
+      MUTEX_LOCK(ctx->lock);
       for (i=ctx->handleCount-1;i>=0;i--) {
        if (equalsHashCode160(&query,
                              &ctx->handles[i]->req->query[0])) {
@@ -103,7 +103,7 @@
          FREE(value);
        }
       }
-      MUTEX_UNLOCK(&ctx->lock);      
+      MUTEX_UNLOCK(ctx->lock);      
     } else {
       gnunet_util_sleep(delay);
       delay *= 2;
@@ -115,10 +115,10 @@
   return NULL;
 }
 
-SEARCH_CONTEXT * FS_SEARCH_makeContext() {
+SEARCH_CONTEXT * FS_SEARCH_makeContext(Mutex * lock) {
   SEARCH_CONTEXT * ret;
   ret = MALLOC(sizeof(SEARCH_CONTEXT));
-  MUTEX_CREATE_RECURSIVE(&ret->lock);
+  ret->lock = lock;
   ret->sock = getClientSocket();
   ret->handles = NULL;
   ret->handleCount = 0;
@@ -140,7 +140,7 @@
   closeSocketTemporarily(ctx->sock);
   PTHREAD_JOIN(&ctx->thread,
               &unused);
-  MUTEX_DESTROY(&ctx->lock);
+  ctx->lock = NULL;
   releaseClientSocket(ctx->sock);
   GROW(ctx->handles,
        ctx->handleSize,
@@ -185,14 +185,14 @@
   ret->req = req;
   ret->callback = callback;
   ret->closure = closure;
-  MUTEX_LOCK(&ctx->lock);
+  MUTEX_LOCK(ctx->lock);
   if (ctx->handleCount == ctx->handleSize) {
     GROW(ctx->handles,
         ctx->handleSize,
         ctx->handleSize * 2 + 4);    
   }
   ctx->handles[ctx->handleCount++] = ret;
-  MUTEX_UNLOCK(&ctx->lock);
+  MUTEX_UNLOCK(ctx->lock);
   IFLOG(LOG_DEBUG,
        hash2enc(&req->query[0],
                 &enc));
@@ -219,13 +219,13 @@
   handle->req->header.type = htons(AFS_CS_PROTO_QUERY_STOP);
   writeToSocket(ctx->sock,
                &handle->req->header);  
-  MUTEX_LOCK(&ctx->lock);
+  MUTEX_LOCK(ctx->lock);
   for (i=ctx->handleCount-1;i>=0;i--)
     if (ctx->handles[i] == handle) {
       ctx->handles[i] = ctx->handles[--ctx->handleCount];
       break;
     }
-  MUTEX_UNLOCK(&ctx->lock);      
+  MUTEX_UNLOCK(ctx->lock);      
   FREE(handle->req);
   FREE(handle);
 }

Modified: GNUnet/src/applications/fs/tools/gnunet-download.c
===================================================================
--- GNUnet/src/applications/fs/tools/gnunet-download.c  2005-02-13 06:09:48 UTC 
(rev 253)
+++ GNUnet/src/applications/fs/tools/gnunet-download.c  2005-02-13 07:33:54 UTC 
(rev 254)
@@ -232,7 +232,7 @@
        filename);
     try_rename = YES;
   }
-
+  FREE(fstring);
   signalFinished = SEMAPHORE_NEW(0);
   ctx = FSUI_start(&progressModel,
                   &ok);
@@ -266,6 +266,7 @@
     }
   }
   FREE(filename);
+  ECRS_freeUri(uri);
 
   stopCron(); 
   doneUtil();

Modified: GNUnet/src/include/gnunet_fs_lib.h
===================================================================
--- GNUnet/src/include/gnunet_fs_lib.h  2005-02-13 06:09:48 UTC (rev 253)
+++ GNUnet/src/include/gnunet_fs_lib.h  2005-02-13 07:33:54 UTC (rev 254)
@@ -35,7 +35,7 @@
 
 struct FS_SEARCH_CONTEXT;
 
-struct FS_SEARCH_CONTEXT * FS_SEARCH_makeContext();
+struct FS_SEARCH_CONTEXT * FS_SEARCH_makeContext(Mutex * lock);
 
 void FS_SEARCH_destroyContext(struct FS_SEARCH_CONTEXT * ctx);
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]