gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r3211 - in GNUnet/src: applications/datastore applications/


From: grothoff
Subject: [GNUnet-SVN] r3211 - in GNUnet/src: applications/datastore applications/fs applications/fs/module applications/gap applications/sqstore_sqlite include server
Date: Sun, 6 Aug 2006 20:00:16 -0700 (PDT)

Author: grothoff
Date: 2006-08-06 19:59:36 -0700 (Sun, 06 Aug 2006)
New Revision: 3211

Modified:
   GNUnet/src/applications/datastore/datastore.c
   GNUnet/src/applications/fs/ecrs_core.c
   GNUnet/src/applications/fs/module/anonymity.c
   GNUnet/src/applications/fs/module/anonymity.h
   GNUnet/src/applications/fs/module/fs.c
   GNUnet/src/applications/fs/module/migration.c
   GNUnet/src/applications/fs/module/ondemand.c
   GNUnet/src/applications/fs/module/ondemand.h
   GNUnet/src/applications/fs/module/querymanager.c
   GNUnet/src/applications/fs/module/querymanager.h
   GNUnet/src/applications/gap/gap.c
   GNUnet/src/applications/gap/gap.h
   GNUnet/src/applications/gap/pid_table.c
   GNUnet/src/applications/gap/pid_table.h
   GNUnet/src/applications/sqstore_sqlite/sqlite.c
   GNUnet/src/include/fs.h
   GNUnet/src/include/gnunet_dht.h
   GNUnet/src/server/gnunet-update.c
Log:
I70 hacking -- fixing compile errors

Modified: GNUnet/src/applications/datastore/datastore.c
===================================================================
--- GNUnet/src/applications/datastore/datastore.c       2006-08-03 22:02:24 UTC 
(rev 3210)
+++ GNUnet/src/applications/datastore/datastore.c       2006-08-07 02:59:36 UTC 
(rev 3211)
@@ -32,6 +32,7 @@
 #include "gnunet_protocols.h"
 #include "gnunet_datastore_service.h"
 #include "gnunet_sqstore_service.h"
+#include "gnunet_state_service.h"
 #include "filter.h"
 #include "prefetch.h"
 
@@ -330,6 +331,7 @@
   static Datastore_ServiceAPI api;
   unsigned long long lquota;
   unsigned int sqot;
+  State_ServiceAPI * state;
 
   if (-1 == GC_get_configuration_value_number(capi->cfg,
                                              "FS",
@@ -338,20 +340,28 @@
                                              ((unsigned long long)-1)/1024,
                                              1024,
                                              &lquota))
-    return; /* OOPS */  
+    return NULL; /* OOPS */  
 
   quota
     = lquota * 1024L * 1024L; /* MB to bytes */
+  state = capi->requestService("state");
+  if (state != NULL) {
+    sqot = htonl(lquota);
+    state->write(capi->ectx,
+                "FS-LAST-QUOTA",
+                sizeof(unsigned int),
+                &sqot);
+    capi->releaseService(state);
+  } else {
+    GE_LOG(capi->ectx,
+          GE_USER | GE_ADMIN | GE_ERROR | GE_BULK,
+          _("Failed to load state service. Trying to do without.\n"));
+  }
   sq = capi->requestService("sqstore");
   if (sq == NULL) {
     GE_BREAK(coreAPI->ectx, 0);
     return NULL;
   }
-  sqot = htonl(lquota);
-  stateWriteContent("FS-LAST-QUOTA",
-                   sizeof(unsigned int),
-                   &sqot);
-
   coreAPI = capi;
 
   initPrefetch(capi->ectx,
@@ -414,6 +424,7 @@
   unsigned long long quota;
   unsigned int lastQuota;
   int * lq;
+  State_ServiceAPI * state;
 
   if (-1 == GC_get_configuration_value_number(uapi->cfg,
                                              "FS",
@@ -423,14 +434,26 @@
                                              1024,
                                              &quota))
     return; /* OOPS */
-  lq = NULL;
-  if (sizeof(int) != stateReadContent("FS-LAST-QUOTA",
-                                     (void**)&lq))
-    return; /* first start? */
-  lastQuota = ntohl(*lq);
-  FREE(lq);
-  if (lastQuota == quota)
-    return; /* unchanged */
+  state = uapi->requestService("state");
+  if (state != NULL) {
+    lq = NULL;
+    if (sizeof(int) != state->read(uapi->ectx,
+                                  "FS-LAST-QUOTA",
+                                  (void**)&lq)) {
+      uapi->releaseService(state);
+      return; /* first start? */
+    }
+    uapi->releaseService(state);
+    lastQuota = ntohl(*lq);
+    FREE(lq);
+    if (lastQuota == quota)
+      return; /* unchanged */
+  } else {
+    GE_LOG(uapi->ectx,
+          GE_USER | GE_ADMIN | GE_ERROR | GE_BULK,
+          _("Failed to load state service. Trying to do without.\n"));
+  }
+
   /* ok, need to convert! */
   deleteFilter(uapi->ectx,
               uapi->cfg);

Modified: GNUnet/src/applications/fs/ecrs_core.c
===================================================================
--- GNUnet/src/applications/fs/ecrs_core.c      2006-08-03 22:02:24 UTC (rev 
3210)
+++ GNUnet/src/applications/fs/ecrs_core.c      2006-08-07 02:59:36 UTC (rev 
3211)
@@ -53,8 +53,8 @@
   Datastore_Value * val;
   DBlock * db;
 
-  GE_ASSERT(ectx, len >= sizeof(DBlock));
-  GE_ASSERT(ectx, (data!=NULL) && (query != NULL));
+  GE_ASSERT(NULL, len >= sizeof(DBlock));
+  GE_ASSERT(NULL, (data!=NULL) && (query != NULL));
   hash(&data[1], len - sizeof(DBlock), &hc);
   hashToKey(&hc,
            &skey,
@@ -67,8 +67,8 @@
   val->expirationTime = htonl(0);
   db = (DBlock*) &val[1];
   db->type = htonl(D_BLOCK);
-  GE_ASSERT(ectx, len - sizeof(DBlock) < MAX_BUFFER_SIZE);
-  GE_ASSERT(ectx, len - sizeof(DBlock)
+  GE_ASSERT(NULL, len - sizeof(DBlock) < MAX_BUFFER_SIZE);
+  GE_ASSERT(NULL, len - sizeof(DBlock)
                == encryptBlock(&data[1],
                                len - sizeof(DBlock),
                                &skey,
@@ -83,7 +83,7 @@
     return OK;
   } else {
     FREE(val);
-    GE_BREAK(ectx, 0);
+    GE_BREAK(NULL, 0);
     *value = NULL;
     return SYSERR;
   }
@@ -96,7 +96,7 @@
 void fileBlockGetKey(const DBlock * data,
                     unsigned int len,
                     HashCode512 * key) {
-  GE_ASSERT(ectx, len >= sizeof(DBlock));
+  GE_ASSERT(NULL, len >= sizeof(DBlock));
   hash(&data[1],
        len - sizeof(DBlock),
        key);
@@ -117,16 +117,16 @@
   SESSIONKEY skey;
   INITVECTOR iv;
 
-  GE_ASSERT(ectx, len >= sizeof(DBlock));
+  GE_ASSERT(NULL, len >= sizeof(DBlock));
   data = (const char*) &db[1];
   len -= sizeof(DBlock);
-  GE_ASSERT(ectx, len < MAX_BUFFER_SIZE);
+  GE_ASSERT(NULL, len < MAX_BUFFER_SIZE);
   hash(data, len, &hc);
   hashToKey(&hc,
            &skey,
            &iv);
   tmp = MALLOC(len);
-  GE_ASSERT(ectx, len == encryptBlock(data,
+  GE_ASSERT(NULL, len == encryptBlock(data,
                                    len,
                                    &skey,
                                    &iv,
@@ -138,7 +138,7 @@
 unsigned int getTypeOfBlock(unsigned int size,
                            const DBlock * data) {
   if (size <= 4) {
-    GE_BREAK(ectx, 0);
+    GE_BREAK(NULL, 0);
     return ANY_BLOCK; /* signal error */
   }
   return ntohl(*((const unsigned int*)data));
@@ -161,7 +161,7 @@
 
   type = getTypeOfBlock(size, data);
   if (type == ANY_BLOCK) {
-    GE_BREAK(ectx, 0);
+    GE_BREAK(NULL, 0);
     return SYSERR;
   }
   switch (type) {
@@ -174,7 +174,7 @@
   case S_BLOCK: {
     const SBlock * sb;
     if (size < sizeof(SBlock)) {
-      GE_BREAK(ectx, 0);
+      GE_BREAK(NULL, 0);
       return SYSERR;
     }
     sb = (const SBlock*) data;
@@ -186,7 +186,7 @@
                          - sizeof(unsigned int),
                          &sb->signature,
                          &sb->subspace)) ) {
-      GE_BREAK(ectx, 0);
+      GE_BREAK(NULL, 0);
       return SYSERR;
     }
     *query = sb->identifier;
@@ -195,7 +195,7 @@
   case K_BLOCK: {
     const KBlock * kb;
     if (size < sizeof(KBlock)) {
-      GE_BREAK(ectx, 0);
+      GE_BREAK(NULL, 0);
       return SYSERR;
     }
     kb = (const KBlock*) data;
@@ -204,7 +204,7 @@
                            size - sizeof(KBlock),
                            &kb->signature,
                            &kb->keyspace)) ) ) {
-      GE_BREAK(ectx, 0);
+      GE_BREAK(NULL, 0);
       return SYSERR;
     }
     hash(&kb->keyspace,
@@ -215,7 +215,7 @@
   case N_BLOCK: {
     const NBlock * nb;
     if (size < sizeof(NBlock)) {
-      GE_BREAK(ectx, 0);
+      GE_BREAK(NULL, 0);
       return SYSERR;
     }
     nb = (const NBlock*) data;
@@ -227,7 +227,7 @@
                          - sizeof(unsigned int),
                          &nb->signature,
                          &nb->subspace)) ) {
-      GE_BREAK(ectx, 0);
+      GE_BREAK(NULL, 0);
       return SYSERR;
     }
     *query = nb->namespace; /* XOR with all zeros makes no difference... */
@@ -236,7 +236,7 @@
   case KN_BLOCK: {
     const KNBlock * kb;
     if (size < sizeof(KNBlock)) {
-      GE_BREAK(ectx, 0);
+      GE_BREAK(NULL, 0);
       return SYSERR;
     }
     kb = (const KNBlock*) data;
@@ -247,7 +247,7 @@
                            - sizeof(unsigned int),
                            &kb->kblock.signature,
                            &kb->kblock.keyspace)) ) ) {
-      GE_BREAK(ectx, 0);
+      GE_BREAK(NULL, 0);
       return SYSERR;
     }
     hash(&kb->kblock.keyspace,
@@ -256,11 +256,11 @@
     return OK;
   }
   case ONDEMAND_BLOCK: {
-    GE_BREAK(ectx, 0); /* should never be used here! */
+    GE_BREAK(NULL, 0); /* should never be used here! */
     return SYSERR;
   }
   default: {
-    GE_BREAK(ectx, 0); /* unknown block type */
+    GE_BREAK(NULL, 0); /* unknown block type */
     return SYSERR;
   }
   } /* end switch */
@@ -289,15 +289,15 @@
   HashCode512 hc;
 
   if (type != getTypeOfBlock(size, data)) {
-    GE_BREAK(ectx, 0);
+    GE_BREAK(NULL, 0);
     return SYSERR; /* type mismatch */
   }
   if (OK != getQueryFor(size, data, YES, &hc)) {
-    GE_BREAK(ectx, 0); /* malformed data */
+    GE_BREAK(NULL, 0); /* malformed data */
     return SYSERR;
   }
   if (! equalsHashCode512(&hc, &keys[0])) {
-    GE_BREAK(ectx, 0); /* mismatch between primary queries,
+    GE_BREAK(NULL, 0); /* mismatch between primary queries,
                we should not even see those here. */
     return SYSERR;
   }
@@ -330,13 +330,13 @@
   case K_BLOCK:
   case KN_BLOCK:
     if (keyCount != 1)
-      GE_BREAK(ectx, 0); /* keyCount should be 1 */
+      GE_BREAK(NULL, 0); /* keyCount should be 1 */
     return OK; /* if query matches, everything matches! */
   case ANY_BLOCK:
-    GE_BREAK(ectx, 0); /* block type should be known */
+    GE_BREAK(NULL, 0); /* block type should be known */
     return SYSERR;
   default:
-    GE_BREAK(ectx, 0); /* unknown block type */
+    GE_BREAK(NULL, 0); /* unknown block type */
     return SYSERR;
   }
 }

Modified: GNUnet/src/applications/fs/module/anonymity.c
===================================================================
--- GNUnet/src/applications/fs/module/anonymity.c       2006-08-03 22:02:24 UTC 
(rev 3210)
+++ GNUnet/src/applications/fs/module/anonymity.c       2006-08-07 02:59:36 UTC 
(rev 3211)
@@ -42,7 +42,8 @@
  *
  * @return OK if cover traffic is sufficient
  */
-int checkCoverTraffic(Traffic_ServiceAPI * traffic,
+int checkCoverTraffic(struct GE_Context * ectx,
+                     Traffic_ServiceAPI * traffic,                   
                      unsigned int level) {
   unsigned int count;
   unsigned int peers;

Modified: GNUnet/src/applications/fs/module/anonymity.h
===================================================================
--- GNUnet/src/applications/fs/module/anonymity.h       2006-08-03 22:02:24 UTC 
(rev 3210)
+++ GNUnet/src/applications/fs/module/anonymity.h       2006-08-07 02:59:36 UTC 
(rev 3211)
@@ -43,7 +43,8 @@
  *
  * @return OK if cover traffic is sufficient
  */
-int checkCoverTraffic(Traffic_ServiceAPI * traffic,
+int checkCoverTraffic(struct GE_Context * ectx,
+                     Traffic_ServiceAPI * traffic,
                      unsigned int level);
 
 #endif

Modified: GNUnet/src/applications/fs/module/fs.c
===================================================================
--- GNUnet/src/applications/fs/module/fs.c      2006-08-03 22:02:24 UTC (rev 
3210)
+++ GNUnet/src/applications/fs/module/fs.c      2006-08-07 02:59:36 UTC (rev 
3211)
@@ -84,7 +84,7 @@
  */
 static Traffic_ServiceAPI * traffic;
 
-static Mutex lock;
+static struct MUTEX * lock;
 
 static int migration;
 
@@ -93,12 +93,13 @@
  */
 static DHT_TableId dht_table;
 
-static Semaphore * ltgSignal;
+static struct SEMAPHORE * ltgSignal;
 
-static PTHREAD_T localGetProcessor;
+static struct PTHREAD * localGetProcessor;
 
 static LG_Job * lg_jobs;
 
+static struct GE_Context * ectx;
 
 static Datastore_Value *
 gapWrapperToDatastoreValue(const DataContainer * value,
@@ -124,7 +125,7 @@
   dv->prio = htonl(prio);
   dv->anonymityLevel = htonl(0);
   et = ntohll(gw->timeout);
-  cronTime(&now);
+  now = get_time();
   /* bound ET to MAX_MIGRATION_EXP from now */
   if (et > now) {
     et -= now;
@@ -239,8 +240,8 @@
  *
  * @return SYSERR if the TCP connection should be closed, otherwise OK
  */
-static int csHandleRequestQueryStop(ClientHandle sock,
-                                   const CS_MESSAGE_HEADER * req) {
+static int csHandleRequestQueryStop(struct ClientHandle * sock,
+                                   const MESSAGE_HEADER * req) {
   CS_fs_request_search_MESSAGE * rs;
 #if DEBUG_FS
   EncName enc;
@@ -274,8 +275,8 @@
  *
  * @return SYSERR if the TCP connection should be closed, otherwise OK
  */
-static int csHandleCS_fs_request_insert_MESSAGE(ClientHandle sock,
-                                               const CS_MESSAGE_HEADER * req) {
+static int csHandleCS_fs_request_insert_MESSAGE(struct ClientHandle * sock,
+                                               const MESSAGE_HEADER * req) {
   const CS_fs_request_insert_MESSAGE * ri;
   Datastore_Value * datum;
   int ret;
@@ -321,10 +322,10 @@
   memcpy(&datum[1],
         &ri[1],
         ntohs(req->size) - sizeof(CS_fs_request_insert_MESSAGE));
-  MUTEX_LOCK(&lock);
+  MUTEX_LOCK(lock);
   ret = datastore->put(&query,
                       datum);
-  MUTEX_UNLOCK(&lock);
+  MUTEX_UNLOCK(lock);
   if ( (ntohl(ri->anonymityLevel) == 0) &&
        (dht != NULL) ) {
     GapWrapper * gw;
@@ -341,7 +342,7 @@
     gw->dc.size = htonl(size);
     et = ntohll(ri->expiration);
     /* expiration time normalization and randomization */
-    cronTime(&now);
+    now = get_time();
     if (et > now) {
       et -= now;
       et = et % MAX_MIGRATION_EXP;
@@ -370,8 +371,8 @@
 /**
  * Process a request to symlink a file
  */
-static int csHandleCS_fs_request_init_index_MESSAGE(ClientHandle sock,
-                                                   const CS_MESSAGE_HEADER * 
req) {
+static int csHandleCS_fs_request_init_index_MESSAGE(struct ClientHandle * sock,
+                                                   const MESSAGE_HEADER * req) 
{
   int ret;
   char *fn;
   CS_fs_request_init_index_MESSAGE *ri;
@@ -411,8 +412,8 @@
  *
  * @return SYSERR if the TCP connection should be closed, otherwise OK
  */
-static int csHandleCS_fs_request_index_MESSAGE(ClientHandle sock,
-                                              const CS_MESSAGE_HEADER * req) {
+static int csHandleCS_fs_request_index_MESSAGE(struct ClientHandle * sock,
+                                              const MESSAGE_HEADER * req) {
   int ret;
   const CS_fs_request_index_MESSAGE * ri;
 
@@ -476,8 +477,8 @@
  *
  * @return SYSERR if the TCP connection should be closed, otherwise OK
  */
-static int csHandleCS_fs_request_delete_MESSAGE(ClientHandle sock,
-                                               const CS_MESSAGE_HEADER * req) {
+static int csHandleCS_fs_request_delete_MESSAGE(struct ClientHandle * sock,
+                                               const MESSAGE_HEADER * req) {
   int ret;
   const CS_fs_request_delete_MESSAGE * rd;
   Datastore_Value * value;
@@ -519,7 +520,7 @@
       &enc,
       type);
 #endif
-  MUTEX_LOCK(&lock);
+  MUTEX_LOCK(lock);
   if (SYSERR == datastore->get(&query,
                               type,
                               &completeValue,
@@ -528,7 +529,7 @@
                         value);
   else /* not found */
     ret = SYSERR;
-  MUTEX_UNLOCK(&lock);
+  MUTEX_UNLOCK(lock);
   FREE(value);
 #if DEBUG_FS
   GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
@@ -542,8 +543,8 @@
 /**
  * Process a client request unindex content.
  */
-static int csHandleCS_fs_request_unindex_MESSAGE(ClientHandle sock,
-                                                const CS_MESSAGE_HEADER * req) 
{
+static int csHandleCS_fs_request_unindex_MESSAGE(struct ClientHandle * sock,
+                                                const MESSAGE_HEADER * req) {
   int ret;
   CS_fs_request_unindex_MESSAGE * ru;
 
@@ -567,8 +568,8 @@
  * Process a client request to test if certain
  * data is indexed.
  */
-static int csHandleCS_fs_request_test_index_MESSAGEed(ClientHandle sock,
-                                                     const CS_MESSAGE_HEADER * 
req) {
+static int csHandleCS_fs_request_test_index_MESSAGEed(struct ClientHandle * 
sock,
+                                                     const MESSAGE_HEADER * 
req) {
   int ret;
   RequestTestindex * ru;
 
@@ -591,8 +592,8 @@
  * Process a client request to obtain the current
  * averge priority.
  */
-static int csHandleRequestGetAvgPriority(ClientHandle sock,
-                                        const CS_MESSAGE_HEADER * req) {
+static int csHandleRequestGetAvgPriority(struct ClientHandle * sock,
+                                        const MESSAGE_HEADER * req) {
 #if DEBUG_FS
   GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
       "FS received REQUEST GETAVGPRIORITY\n");
@@ -683,7 +684,8 @@
 
   level
     = ntohl(value->anonymityLevel);
-  if (OK != checkCoverTraffic(traffic,
+  if (OK != checkCoverTraffic(ectx,
+                             traffic,
                              level)) {
     /* traffic required by module not loaded;
        refuse to hand out data that requires
@@ -701,7 +703,7 @@
   gw->dc.size = htonl(size);
   et = ntohll(value->expirationTime);
   /* expiration time normalization and randomization */
-  cronTime(&now);
+  now = get_time();
   if (et > now) {
     et -= now;
     et = et % MAX_MIGRATION_EXP;
@@ -863,7 +865,7 @@
   gw->dc.size = htonl(size);
   et = ntohll(value->expirationTime);
   /* expiration time normalization and randomization */
-  cronTime(&now);
+  now = get_time();
   if (et > now) {
     et -= now;
     et = et % MAX_MIGRATION_EXP;
@@ -1026,15 +1028,15 @@
 static void * localGetter(void * noargs) {
   LG_Job * job;
   while (1) {
-    SEMAPHORE_DOWN(ltgSignal);
-    MUTEX_LOCK(&lock);
+    SEMAPHORE_DOWN(ltgSignal, YES);
+    MUTEX_LOCK(lock);
     if (lg_jobs == NULL) {
-      MUTEX_UNLOCK(&lock);
+      MUTEX_UNLOCK(lock);
       break;
     }
     job = lg_jobs;
     lg_jobs = job->next;
-    MUTEX_UNLOCK(&lock);
+    MUTEX_UNLOCK(lock);
     gapGet(NULL,
           job->type,
           EXTREME_PRIORITY,
@@ -1059,10 +1061,10 @@
   memcpy(job->queries,
         queries,
         sizeof(HashCode512) * keyCount);
-  MUTEX_LOCK(&lock);
+  MUTEX_LOCK(lock);
   job->next = lg_jobs;
   lg_jobs = job;
-  MUTEX_UNLOCK(&lock);
+  MUTEX_UNLOCK(lock);
   SEMAPHORE_UP(ltgSignal);
 }
 
@@ -1071,8 +1073,8 @@
  *
  * @return SYSERR if the TCP connection should be closed, otherwise OK
  */
-static int csHandleRequestQueryStart(ClientHandle sock,
-                                    const CS_MESSAGE_HEADER * req) {
+static int csHandleRequestQueryStart(struct ClientHandle * sock,
+                                    const MESSAGE_HEADER * req) {
   const CS_fs_request_search_MESSAGE * rs;
   unsigned int keyCount;
 #if DEBUG_FS
@@ -1164,6 +1166,7 @@
   static Blockstore dsGap;
   static Blockstore dsDht;
 
+  ectx = capi->ectx;
   GE_ASSERT(ectx, sizeof(CHK) == 128);
   GE_ASSERT(ectx, sizeof(DBlock) == 4);
   GE_ASSERT(ectx, sizeof(IBlock) == 132);
@@ -1171,7 +1174,6 @@
   GE_ASSERT(ectx, sizeof(SBlock) == 724);
   GE_ASSERT(ectx, sizeof(NBlock) == 716);
   GE_ASSERT(ectx, sizeof(KNBlock) == 1244);
-  
   migration = testConfigurationString("FS",
                                      "ACTIVEMIGRATION",
                                      "YES");
@@ -1200,14 +1202,14 @@
   /* dht = capi->requestService("dht"); */
   dht = NULL;
   ltgSignal = SEMAPHORE_CREATE(0);
-  if (0 != PTHREAD_CREATE(&localGetProcessor,
-                         &localGetter,
-                         NULL,
-                         32 * 1024))
+  localGetProcessor = PTHREAD_CREATE(&localGetter,
+                                    NULL,
+                                    32 * 1024);
+  if (localGetProcessor == NULL)
     DIE_STRERROR("pthread_create");
   coreAPI = capi;
-  ONDEMAND_init();
-  MUTEX_CREATE(&lock);
+  ONDEMAND_init(capi);
+  lock = MUTEX_CREATE(NO);
   dsGap.closure = NULL;
   dsGap.get = &gapGet;
   dsGap.put = &gapPut;
@@ -1310,7 +1312,7 @@
     lg_jobs = job;
   }
   SEMAPHORE_UP(ltgSignal); /* lg_jobs == NULL => thread will terminate */
-  PTHREAD_JOIN(&localGetProcessor,
+  PTHREAD_JOIN(localGetProcessor,
               &unused);
   coreAPI->releaseService(datastore);
   datastore = NULL;
@@ -1325,8 +1327,11 @@
     traffic = NULL;
   }
   coreAPI = NULL;
-  MUTEX_DESTROY(&lock);
+  MUTEX_DESTROY(lock);
+  lock = NULL;
   ONDEMAND_done();
+  SEMAPHORE_DESTROY(ltgSignal);
+  ltgSignal = NULL;
 }
 
 /**

Modified: GNUnet/src/applications/fs/module/migration.c
===================================================================
--- GNUnet/src/applications/fs/module/migration.c       2006-08-03 22:02:24 UTC 
(rev 3210)
+++ GNUnet/src/applications/fs/module/migration.c       2006-08-07 02:59:36 UTC 
(rev 3211)
@@ -69,7 +69,7 @@
 /**
  * Lock used to access content.
  */
-static Mutex lock;
+static struct MUTEX * lock;
 
 /**
  * The content that we are currently trying
@@ -78,7 +78,9 @@
  * first time).
  */
 static Datastore_Value * content;
-                               
+                       
+static struct GE_Context * ectx;
+       
 /**
  * Callback method for pushing content into the network.
  * The method chooses either a "recently" deleted block
@@ -109,7 +111,7 @@
   unsigned int anonymity;
   Datastore_Value *enc;    
 
-  MUTEX_LOCK(&lock);
+  MUTEX_LOCK(lock);
   if (content != NULL) {
     size = sizeof(GapWrapper) + ntohl(content->size) - sizeof(Datastore_Value);
     if (size > padding) {
@@ -123,7 +125,7 @@
                                   &key,
                                   &content,
                                   0)) {
-      MUTEX_UNLOCK(&lock);
+      MUTEX_UNLOCK(lock);
 #if DEBUG_MIGRATION
       GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
          "Migration: random lookup in datastore failed.\n");
@@ -136,7 +138,7 @@
     if (ONDEMAND_getIndexed(datastore, content, &key, &enc) != OK) {
       FREE(content);
       content = NULL;
-      MUTEX_UNLOCK(&lock);
+      MUTEX_UNLOCK(lock);
       return 0;
     }
     if (stats != NULL)
@@ -148,7 +150,7 @@
   
   size = sizeof(GapWrapper) + ntohl(content->size) - sizeof(Datastore_Value);
   if (size > padding) {
-    MUTEX_UNLOCK(&lock);
+    MUTEX_UNLOCK(lock);
 #if DEBUG_MIGRATION
     GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
        "Available content of size %u too big for available space (%u)\n",
@@ -158,7 +160,7 @@
     return 0;
   }
   et = ntohll(content->expirationTime);
-  cronTime(&now);
+  now = get_time();
   if (et > now) {
     et -= now;
     et = et % MAX_MIGRATION_EXP;
@@ -170,7 +172,8 @@
     /* ret > 0; (if DHT succeeds) fixme for DHT */
   }
   if ( (ret == 0) &&
-       (OK == checkCoverTraffic(traffic,
+       (OK == checkCoverTraffic(ectx,
+                               traffic,
                                anonymity)) ) {
     gw = MALLOC(size);
     gw->dc.size = htonl(size);
@@ -198,7 +201,7 @@
     FREE(content);
     content = NULL;
   }
-  MUTEX_UNLOCK(&lock);
+  MUTEX_UNLOCK(lock);
   if ( (ret > 0)&&
        (stats != NULL) )
       stats->change(stat_migration_count, 1); 
@@ -211,7 +214,8 @@
                   GAP_ServiceAPI * g,
                   DHT_ServiceAPI * d,
                   Traffic_ServiceAPI * t) {
-  MUTEX_CREATE(&lock);
+  ectx = capi->ectx;
+  lock = MUTEX_CREATE(NO);
   coreAPI = capi;
   datastore = ds;
   gap = g;
@@ -241,7 +245,8 @@
   traffic = NULL;
   FREENONNULL(content);
   content = NULL;
-  MUTEX_DESTROY(&lock);
+  MUTEX_DESTROY(lock);
+  lock = NULL;
 }
 
 /* end of migration.c */

Modified: GNUnet/src/applications/fs/module/ondemand.c
===================================================================
--- GNUnet/src/applications/fs/module/ondemand.c        2006-08-03 22:02:24 UTC 
(rev 3210)
+++ GNUnet/src/applications/fs/module/ondemand.c        2006-08-07 02:59:36 UTC 
(rev 3211)
@@ -65,6 +65,8 @@
 
 static char * index_directory;
 
+static struct GE_Context * ectx;
+
 static char * getOnDemandFile(const HashCode512 * fileId) {
   EncName enc;
   char * fn;
@@ -638,10 +640,10 @@
   return OK;
 }
 
-int ONDEMAND_init() {
+int ONDEMAND_init(CoreAPIForApplication * capi) {
   char * tmp;
-
-
+  
+  ectx = capi->ectx;
   tmp
     = getConfigurationString("FS",
                             "INDEX-DIRECTORY");

Modified: GNUnet/src/applications/fs/module/ondemand.h
===================================================================
--- GNUnet/src/applications/fs/module/ondemand.h        2006-08-03 22:02:24 UTC 
(rev 3210)
+++ GNUnet/src/applications/fs/module/ondemand.h        2006-08-07 02:59:36 UTC 
(rev 3211)
@@ -89,9 +89,9 @@
 int ONDEMAND_testindexed(Datastore_ServiceAPI * datastore,
                         const HashCode512 * fileId);
 
-int ONDEMAND_init();
+int ONDEMAND_init(CoreAPIForApplication * capi);
 
-int ONDEMAND_done();
+int ONDEMAND_done(void);
 
 /* end of ondemand.h */
 #endif

Modified: GNUnet/src/applications/fs/module/querymanager.c
===================================================================
--- GNUnet/src/applications/fs/module/querymanager.c    2006-08-03 22:02:24 UTC 
(rev 3210)
+++ GNUnet/src/applications/fs/module/querymanager.c    2006-08-07 02:59:36 UTC 
(rev 3211)
@@ -35,7 +35,7 @@
 typedef struct {
   HashCode512 query;
   unsigned int type;
-  ClientHandle client;
+  struct ClientHandle * client;
 } TrackRecord;
 
 /**
@@ -44,15 +44,18 @@
 static TrackRecord ** trackers;
 
 static unsigned int trackerCount;
+
 static unsigned int trackerSize;
 
 /**
  * Mutex for all query manager structures.
  */
-static Mutex queryManagerLock;
+static struct MUTEX * queryManagerLock;
 
 static CoreAPIForApplication * coreAPI;
 
+static struct GE_Context * ectx;
+
 static void removeEntry(unsigned int off) {
   GE_ASSERT(ectx, off < trackerCount);
   FREE(trackers[off]);
@@ -63,13 +66,13 @@
     GROW(trackers, trackerSize, trackerSize / 2);
 }
 
-static void ceh(ClientHandle client) {
+static void ceh(struct ClientHandle * client) {
   int i;
-  MUTEX_LOCK(&queryManagerLock);
+  MUTEX_LOCK(queryManagerLock);
   for (i=trackerCount-1;i>=0;i--)
     if (trackers[i]->client == client)
       removeEntry(i);
-  MUTEX_UNLOCK(&queryManagerLock);
+  MUTEX_UNLOCK(queryManagerLock);
 }
 
 /**
@@ -81,16 +84,16 @@
  */
 void trackQuery(const HashCode512 * query,
                unsigned int type,
-               const ClientHandle client) {
+               struct ClientHandle * client) {
   int i;
 
   GE_ASSERT(ectx, client != NULL);
-  MUTEX_LOCK(&queryManagerLock);
+  MUTEX_LOCK(queryManagerLock);
   for (i=trackerCount-1;i>=0;i--)
     if ( (trackers[i]->client == client) &&
         (equalsHashCode512(&trackers[i]->query,
                            query)) ) {
-      MUTEX_UNLOCK(&queryManagerLock);
+      MUTEX_UNLOCK(queryManagerLock);
       return;
     }
   if (trackerSize == trackerCount)
@@ -102,7 +105,7 @@
   trackers[trackerCount]->type = type;
   trackers[trackerCount]->client = client;
   trackerCount++;
-  MUTEX_UNLOCK(&queryManagerLock);
+  MUTEX_UNLOCK(queryManagerLock);
 }
 
 /**
@@ -112,19 +115,19 @@
  * @param client where did the query come from?
  */
 void untrackQuery(const HashCode512 * query,
-                 const ClientHandle client) {
+                 struct ClientHandle * client) {
   int i;
 
-  MUTEX_LOCK(&queryManagerLock);
+  MUTEX_LOCK(queryManagerLock);
   for (i=trackerCount-1;i>=0;i--)
     if ( (trackers[i]->client == client) &&
         (equalsHashCode512(&trackers[i]->query,
                            query)) ) {
       removeEntry(i);
-      MUTEX_UNLOCK(&queryManagerLock);
+      MUTEX_UNLOCK(queryManagerLock);
       return;
     }
-  MUTEX_UNLOCK(&queryManagerLock);
+  MUTEX_UNLOCK(queryManagerLock);
 }
 
 /**
@@ -149,7 +152,7 @@
        hash2enc(key,
                 &enc));
 #endif
-  MUTEX_LOCK(&queryManagerLock);
+  MUTEX_LOCK(queryManagerLock);
   for (i=trackerCount-1;i>=0;i--) {
     if ( (equalsHashCode512(&trackers[i]->query,
                            key)) &&
@@ -182,7 +185,7 @@
        &enc);
   }
 #endif
-  MUTEX_UNLOCK(&queryManagerLock);
+  MUTEX_UNLOCK(queryManagerLock);
 }
 
 /**
@@ -190,11 +193,12 @@
  */
 int initQueryManager(CoreAPIForApplication * capi) {
   coreAPI = capi;
+  ectx = capi->ectx;
   capi->registerClientExitHandler(&ceh);
   GROW(trackers,
        trackerSize,
        64);
-  MUTEX_CREATE(&queryManagerLock);
+  queryManagerLock = MUTEX_CREATE(NO);
   return OK;
 }
 
@@ -207,8 +211,9 @@
        0);
   trackerCount = 0;
   coreAPI->unregisterClientExitHandler(&ceh);
-  MUTEX_DESTROY(&queryManagerLock);
+  MUTEX_DESTROY(queryManagerLock);
   coreAPI = NULL;
+  ectx = NULL;
 }
 
 /* end of querymanager.c */

Modified: GNUnet/src/applications/fs/module/querymanager.h
===================================================================
--- GNUnet/src/applications/fs/module/querymanager.h    2006-08-03 22:02:24 UTC 
(rev 3210)
+++ GNUnet/src/applications/fs/module/querymanager.h    2006-08-07 02:59:36 UTC 
(rev 3211)
@@ -36,7 +36,7 @@
 /**
  * Shutdown query management.
  */
-void doneQueryManager();
+void doneQueryManager(void);
 
 /**
  * Keep track of a query.  If a matching response
@@ -47,7 +47,7 @@
  */
 void trackQuery(const HashCode512 * query,
                unsigned int type,
-               const ClientHandle client);
+               struct ClientHandle * client);
 
 /**
  * Stop keeping track of a query.
@@ -56,7 +56,7 @@
  * @param client where did the query come from?
  */
 void untrackQuery(const HashCode512 * query,
-                 const ClientHandle client);
+                 struct ClientHandle * client);
 
 /**
  * We received a reply from 'responder'.

Modified: GNUnet/src/applications/gap/gap.c
===================================================================
--- GNUnet/src/applications/gap/gap.c   2006-08-03 22:02:24 UTC (rev 3210)
+++ GNUnet/src/applications/gap/gap.c   2006-08-07 02:59:36 UTC (rev 3211)
@@ -48,7 +48,7 @@
  * Avoiding concurrent lookups for the same ITE: lock to grant
  * access to peers to perform a lookup that matches this ITE entry.
  */
-static Mutex lookup_exclusion;
+static struct MUTEX * lookup_exclusion;
 
 /**
  * GNUnet core.
@@ -155,7 +155,7 @@
 /**
  * Mutex for all gap structures.
  */
-static Mutex * lock;
+static struct MUTEX * lock;
 
 /**
  * Linked list tracking reply statistics.  Synchronize access using
@@ -184,6 +184,10 @@
 static int hist_total;
 #endif
 
+static struct GE_Context * ectx;
+
+static struct GC_Configuration * cfg;
+
 /* ****************** helper functions ***************** */
 
 /**
@@ -408,7 +412,7 @@
   QueryRecord * qr;
   PID_INDEX receiverId;
 
-  cronTime(&now);
+  now = get_time();
   receiverId = intern_pid(receiver);
   MUTEX_LOCK(lock);
   start = pos;
@@ -568,7 +572,7 @@
   unsigned long long sel;
   unsigned long long pos;
 
-  cronTime(&now);
+  now = get_time();
   MUTEX_LOCK(lock);
 
   oldestIndex = -1;
@@ -736,13 +740,13 @@
  *     NULL for the local peer
  */
 static int useContent(const PeerIdentity * hostId,
-                     const P2P_gap_reply_MESSAGE * pmsg);
+                     const MESSAGE_HEADER * pmsg);
 
 /**
  * Call useContent "later" and then free the pmsg.
  */
 static void useContentLater(void * data) {
-  P2P_gap_reply_MESSAGE * pmsg = data;
+  MESSAGE_HEADER * pmsg = data;
   useContent(NULL,
             pmsg);
   FREE(pmsg);
@@ -822,10 +826,11 @@
         size - sizeof(P2P_gap_reply_MESSAGE));
   /* delay reply, delay longer if we are busy (makes it harder
      to predict / analyze, too). */
-  addCronJob(&useContentLater,
-            weak_randomi(TTL_DECREMENT),
-            0,
-            pmsg);
+  cron_add_job(coreAPI->cron,
+              &useContentLater,
+              weak_randomi(TTL_DECREMENT),
+              0,
+              pmsg);
   return YES;
 }
 
@@ -899,7 +904,7 @@
       ite);
 #endif
   GE_ASSERT(ectx, sender != 0); /* do NOT add to RT for local clients! */
-  cronTime(&now);
+  now = get_time();
   if ( (stats != NULL) &&
        (ite->ttl == 0) )
        stats->change(stat_routing_slots_used, 1);
@@ -1005,7 +1010,7 @@
   cron_t new_ttl;
   int equal_to_pending;
 
-  cronTime(&now);
+  now = get_time();
   ite = &ROUTING_indTable_[computeRoutingIndex(query)];
   equal_to_pending = equalsHashCode512(query, &ite->primaryKey);
   if ( (stats != NULL) &&
@@ -1260,7 +1265,7 @@
  * @param msg the message to route
  */
 static void sendReply(IndirectionTableEntry * ite,
-                     const P2P_MESSAGE_HEADER * msg) {
+                     const MESSAGE_HEADER * msg) {
   unsigned int j;
   unsigned int maxDelay;
   cron_t now;
@@ -1271,7 +1276,7 @@
 
   if (stats != NULL)
     stats->change(stat_routing_successes, 1);
-  cronTime(&now);
+  now = get_time();
   if (now < ite->ttl)
     maxDelay = ite->ttl - now;
   else
@@ -1409,7 +1414,7 @@
   senderID = intern_pid(sender);
   GE_ASSERT(ectx,  (senderID != 0) || (sender == NULL) );
   ite = &ROUTING_indTable_[computeRoutingIndex(&query->queries[0])];
-  MUTEX_LOCK(&lookup_exclusion);
+  MUTEX_LOCK(lookup_exclusion);
   i = -1;
   if (sender != NULL) {
     if ( ( (policy & QUERY_ANSWER) > 0) &&
@@ -1519,7 +1524,7 @@
        0);
 
 
-  MUTEX_UNLOCK(&lookup_exclusion);
+  MUTEX_UNLOCK(lookup_exclusion);
   if (doForward) {
     forwardQuery(query,
                 sender);
@@ -1543,7 +1548,8 @@
  *         priority of the original request)
  */
 static int useContent(const PeerIdentity * host,
-                     const P2P_gap_reply_MESSAGE * msg) {
+                     const MESSAGE_HEADER * pmsg) {
+  const P2P_gap_reply_MESSAGE * msg;
   unsigned int i;
   HashCode512 contentHC;
   IndirectionTableEntry * ite;
@@ -1556,18 +1562,21 @@
 #if DEBUG_GAP
   EncName enc;
 
-  IF_GELOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
-       if (host != NULL)
-         hash2enc(&host->hashPubKey,
-                  &enc));
-  GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
-      "GAP received content from `%s'\n",
-      (host != NULL) ? (const char*)&enc : "myself");
+  IF_GELOG(ectx, 
+          GE_DEBUG | GE_REQUEST | GE_USER,
+          if (host != NULL)
+            hash2enc(&host->hashPubKey,
+                     &enc));
+  GE_LOG(ectx, 
+        GE_DEBUG | GE_REQUEST | GE_USER,
+        "GAP received content from `%s'\n",
+        (host != NULL) ? (const char*)&enc : "myself");
 #endif
-  if (ntohs(msg->header.size) < sizeof(P2P_gap_reply_MESSAGE)) {
+  if (ntohs(pmsg->size) < sizeof(P2P_gap_reply_MESSAGE)) {
     GE_BREAK(ectx, 0);
     return SYSERR; /* invalid! */
   }
+  msg = (const P2P_gap_reply_MESSAGE *) pmsg;
        
   ite = &ROUTING_indTable_[computeRoutingIndex(&msg->primaryKey)];
   ite->successful_local_lookup_in_delay_loop = NO;
@@ -1588,18 +1597,18 @@
       &contentHC);
 
   /* FIRST: check if seen */
-  MUTEX_LOCK(&lookup_exclusion);
+  MUTEX_LOCK(lookup_exclusion);
   for (i=0;i<ite->seenIndex;i++) {
     if (equalsHashCode512(&contentHC,
                          &ite->seen[i])) {
-      MUTEX_UNLOCK(&lookup_exclusion);
+      MUTEX_UNLOCK(lookup_exclusion);
       FREE(value);
       if (stats != NULL) 
        stats->change(stat_routing_reply_dups, 1);
       return 0; /* seen before, useless */
     }
   }
-  MUTEX_UNLOCK(&lookup_exclusion);
+  MUTEX_UNLOCK(lookup_exclusion);
 
   /* SECOND: check if valid */
   ret = bs->put(bs->closure,
@@ -1624,7 +1633,7 @@
   /* THIRD: compute content priority/value and
      send remote reply (ITE processing) */
   hostId = intern_pid(host);
-  MUTEX_LOCK(&lookup_exclusion);
+  MUTEX_LOCK(lookup_exclusion);
   if (equalsHashCode512(&ite->primaryKey,
                        &msg->primaryKey) ) {   
     prio = ite->priority;
@@ -1686,7 +1695,7 @@
     if (stats != NULL) 
       stats->change(stat_routing_reply_drops, 1);
   }
-  MUTEX_UNLOCK(&lookup_exclusion);
+  MUTEX_UNLOCK(lookup_exclusion);
   prio += claimReward(&msg->primaryKey);
 
   /* FOURTH: update content priority in local datastore */
@@ -1907,7 +1916,7 @@
  * lookup, forward or even indirect.
  */
 static int handleQuery(const PeerIdentity * sender,
-                      const P2P_MESSAGE_HEADER * msg) {
+                      const MESSAGE_HEADER * msg) {
   QUERY_POLICY policy;
   P2P_gap_query_MESSAGE * qmsg;
   unsigned int queries;
@@ -2068,6 +2077,8 @@
   static GAP_ServiceAPI api;
   unsigned int i;
 
+  ectx = capi->ectx;
+  cfg = capi->cfg;
   GE_ASSERT(ectx, sizeof(P2P_gap_reply_MESSAGE) == 68);
   GE_ASSERT(ectx, sizeof(P2P_gap_query_MESSAGE) == 144);
 
@@ -2094,7 +2105,8 @@
     stat_pending_rewards            = stats->create(gettext_noop("# gap 
rewards pending"));
     stat_response_count             = stats->create(gettext_noop("# gap 
response weights"));
   }
-  init_pid_table(stats);
+  init_pid_table(ectx,
+                stats);
   GROW(rewards,
        rewardSize,
        MAX_REWARD_TRACKS);
@@ -2117,7 +2129,7 @@
                        "TABLESIZE");
   if (indirectionTableSize < MIN_INDIRECTION_TABLE_SIZE)
     indirectionTableSize = MIN_INDIRECTION_TABLE_SIZE;
-  MUTEX_CREATE(&lookup_exclusion);
+  lookup_exclusion = MUTEX_CREATE(NO);
   ROUTING_indTable_
     = MALLOC(sizeof(IndirectionTableEntry)
             * indirectionTableSize);
@@ -2134,16 +2146,18 @@
     queries[i].msg = NULL;
   }
   lock = coreAPI->getConnectionModuleLock();
-  addCronJob(&ageRTD,
-            2 * cronMINUTES,
-            2 * cronMINUTES,
-            NULL);
+  cron_add_job(capi->cron,
+              &ageRTD,
+              2 * cronMINUTES,
+              2 * cronMINUTES,
+              NULL);
 
-  GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
-      _("`%s' registering handlers %d %d\n"),
-      "gap",
-      P2P_PROTO_gap_QUERY,
-      P2P_PROTO_gap_RESULT);
+  GE_LOG(ectx, 
+        GE_DEBUG | GE_REQUEST | GE_USER,
+        _("`%s' registering handlers %d %d\n"),
+        "gap",
+        P2P_PROTO_gap_QUERY,
+        P2P_PROTO_gap_RESULT);
   capi->registerHandler(P2P_PROTO_gap_QUERY,
                        &handleQuery);
   capi->registerHandler(P2P_PROTO_gap_RESULT,
@@ -2168,13 +2182,14 @@
   coreAPI->unregisterHandler(P2P_PROTO_gap_QUERY,
                             &handleQuery);
   coreAPI->unregisterHandler(P2P_PROTO_gap_RESULT,
-                            (MessagePartHandler) &useContent);
+                            &useContent);
   coreAPI->unregisterSendCallback(sizeof(P2P_gap_query_MESSAGE),
                                  &fillInQuery);
 
-  delCronJob(&ageRTD,
-            2 * cronMINUTES,
-            NULL);
+  cron_del_job(coreAPI->cron,
+              &ageRTD,
+              2 * cronMINUTES,
+              NULL);
 
   for (i=0;i<indirectionTableSize;i++) {
     ite = &ROUTING_indTable_[i];
@@ -2192,7 +2207,8 @@
         0);
   }
 
-  MUTEX_DESTROY(&lookup_exclusion);
+  MUTEX_DESTROY(lookup_exclusion);
+  lookup_exclusion = NULL;
   while (rtdList != NULL) {
     pos = rtdList;
     rtdList = rtdList->next;
@@ -2228,6 +2244,8 @@
   coreAPI = NULL;
   bs = NULL;
   uri = NULL;
+  ectx = NULL;
+  cfg = NULL;
 }
 
 /* end of gap.c */

Modified: GNUnet/src/applications/gap/gap.h
===================================================================
--- GNUnet/src/applications/gap/gap.h   2006-08-03 22:02:24 UTC (rev 3210)
+++ GNUnet/src/applications/gap/gap.h   2006-08-07 02:59:36 UTC (rev 3211)
@@ -203,7 +203,7 @@
  * be determined from the header size.
  */
 typedef struct {
-  P2P_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   /**
    * Type of the query (block type).
@@ -237,7 +237,7 @@
  * Return message for search result.
  */
 typedef struct {
-  P2P_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   HashCode512 primaryKey;
 

Modified: GNUnet/src/applications/gap/pid_table.c
===================================================================
--- GNUnet/src/applications/gap/pid_table.c     2006-08-03 22:02:24 UTC (rev 
3210)
+++ GNUnet/src/applications/gap/pid_table.c     2006-08-07 02:59:36 UTC (rev 
3211)
@@ -36,6 +36,8 @@
 
 static int stat_pid_rc;
 
+static struct GE_Context * ectx;
+
 typedef struct {
   /** the identifier itself */
   HashCode512 id;
@@ -47,7 +49,7 @@
 
 static PID_Entry * table;
 
-static Mutex lock;
+static struct MUTEX * lock;
 
 
 PID_INDEX intern_pid(const PeerIdentity * pid) {
@@ -57,17 +59,18 @@
   if (pid == NULL)
     return 0;
   zero = size;
-  MUTEX_LOCK(&lock);
+  MUTEX_LOCK(lock);
   for (ret=1;ret<size;ret++) {
-    if (equalsHashCode512(&pid->hashPubKey,
-                         &table[ret].id)) {
+    if (0 == memcmp(&pid->hashPubKey,
+                   &table[ret].id,
+                   sizeof(HashCode512))) {
       table[ret].rc++;
       if (stats != NULL) {
        stats->change(stat_pid_rc, 1);
        if (table[ret].rc == 1)
          stats->change(stat_pid_entries, 1);
       }
-      MUTEX_UNLOCK(&lock);
+      MUTEX_UNLOCK(lock);
       return ret;
     } else if ( (zero == size) &&
                (table[ret].rc == 0) ) {
@@ -89,7 +92,7 @@
     stats->change(stat_pid_rc, 1);
     stats->change(stat_pid_entries, 1);
   }  
-  MUTEX_UNLOCK(&lock);
+  MUTEX_UNLOCK(lock);
   return ret;
 }
 
@@ -99,7 +102,7 @@
   PID_INDEX id;
   if (count == 0)
     return;
-  MUTEX_LOCK(&lock);
+  MUTEX_LOCK(lock);
   for (i=count-1;i>=0;i--) {
     id = ids[i];
     GE_ASSERT(ectx, id < size);
@@ -109,7 +112,7 @@
         (stats != NULL) )
       stats->change(stat_pid_entries, -1);   
   }
-  MUTEX_UNLOCK(&lock);
+  MUTEX_UNLOCK(lock);
   if (stats != NULL) 
     stats->change(stat_pid_rc, - count);
 }
@@ -117,7 +120,7 @@
 void change_pid_rc(PID_INDEX id, int delta) {
   if (id == 0)
     return;
-  MUTEX_LOCK(&lock);
+  MUTEX_LOCK(lock);
   GE_ASSERT(ectx, id < size);
   GE_ASSERT(ectx, table[id].rc > 0);
   table[id].rc += delta;
@@ -126,7 +129,7 @@
     if (table[id].rc == 0)
       stats->change(stat_pid_entries, -1);
   }
-  MUTEX_UNLOCK(&lock);
+  MUTEX_UNLOCK(lock);
 }
 
 void resolve_pid(PID_INDEX id, 
@@ -136,15 +139,17 @@
     GE_BREAK(ectx, 0);
     return;
   }
-  MUTEX_LOCK(&lock);
+  MUTEX_LOCK(lock);
   GE_ASSERT(ectx, id < size);
   GE_ASSERT(ectx, table[id].rc > 0);
   pid->hashPubKey = table[id].id;
-  MUTEX_UNLOCK(&lock);
+  MUTEX_UNLOCK(lock);
 }
 
 
-void init_pid_table(Stats_ServiceAPI * s) {
+void init_pid_table(struct GE_Context * e,
+                   Stats_ServiceAPI * s) {
+  ectx = e;
   stats = s;
   if (stats != NULL) {
     stat_pid_entries 
@@ -152,7 +157,7 @@
     stat_pid_rc
       = stats->create(gettext_noop("# total RC of interned peer IDs in pid 
table"));
   }
-  MUTEX_CREATE(&lock);
+  lock = MUTEX_CREATE(NO);
 }
 
 
@@ -161,7 +166,9 @@
        size,
        0);
   stats = NULL;
-  MUTEX_DESTROY(&lock);
+  MUTEX_DESTROY(lock);
+  lock = NULL;
+  ectx = NULL;
 }
 
 /* end of pid_table.c */

Modified: GNUnet/src/applications/gap/pid_table.h
===================================================================
--- GNUnet/src/applications/gap/pid_table.h     2006-08-03 22:02:24 UTC (rev 
3210)
+++ GNUnet/src/applications/gap/pid_table.h     2006-08-07 02:59:36 UTC (rev 
3211)
@@ -27,9 +27,10 @@
 #include "gnunet_util.h"
 #include "gnunet_stats_service.h"
 
-void init_pid_table(Stats_ServiceAPI * s);
+void init_pid_table(struct GE_Context * ectx,
+                   Stats_ServiceAPI * s);
 
-void done_pid_table();
+void done_pid_table(void);
 
 typedef unsigned int PID_INDEX;
  

Modified: GNUnet/src/applications/sqstore_sqlite/sqlite.c
===================================================================
--- GNUnet/src/applications/sqstore_sqlite/sqlite.c     2006-08-03 22:02:24 UTC 
(rev 3210)
+++ GNUnet/src/applications/sqstore_sqlite/sqlite.c     2006-08-07 02:59:36 UTC 
(rev 3211)
@@ -41,29 +41,38 @@
  * a failure of the command 'cmd' with the message given
  * by strerror(errno).
  */
-#define DIE_SQLITE(cmd) do { errexit(_("`%s' failed at %s:%d with error: 
%s\n"), cmd, __FILE__, __LINE__, sqlite3_errmsg(getDBHandle()->dbh)); } 
while(0);
+#define DIE_SQLITE(cmd) do { GE_LOG(ectx, GE_FATAL | GE_IMMEDIATE | GE_ADMIN, 
_("`%s' failed at %s:%d with error: %s\n"), cmd, __FILE__, __LINE__, 
sqlite3_errmsg(getDBHandle()->dbh)); abort(); } while(0);
 
 /**
  * Log an error message at log-level 'level' that indicates
  * a failure of the command 'cmd' on file 'filename'
  * with the message given by strerror(errno).
  */
-#define LOG_SQLITE(level, cmd) do { LOG(level, _("`%s' failed at %s:%d with 
error: %s\n"), cmd, __FILE__, __LINE__, sqlite3_errmsg(getDBHandle()->dbh)); } 
while(0);
+#define LOG_SQLITE(level, cmd) do { GE_LOG(ectx, level, _("`%s' failed at 
%s:%d with error: %s\n"), cmd, __FILE__, __LINE__, 
sqlite3_errmsg(getDBHandle()->dbh)); } while(0);
 
 static Stats_ServiceAPI * stats;
+
 static CoreAPIForApplication * coreAPI;
+
 static unsigned int stat_size;
 
+static struct GE_Context * ectx;
 
 /**
  * @brief Wrapper for SQLite
  */
 typedef struct {
-  /* Native SQLite database handle - may not be shared between threads! */
+  /**
+   * Native SQLite database handle - may not be shared between threads! 
+   */
   sqlite3 *dbh;
-  /* Thread ID owning this handle */
+  /**
+   * Thread ID owning this handle 
+   */
   pthread_t tid;
-  /* Precompiled SQL */
+  /** 
+   * Precompiled SQL 
+   */
   sqlite3_stmt *exists, *countContent, *updPrio, *insertContent;
 } sqliteHandle;
 
@@ -71,31 +80,40 @@
  * @brief Information about the database
  */
 typedef struct {
-  Mutex DATABASE_Lock_;
-  /** filename of this bucket */
-  char *fn;
-  /** bytes used */
+  struct MUTEX * DATABASE_Lock_;
+  /** 
+   * filename of this bucket
+   */
+  char * fn;
+  
+  /**
+   * bytes used
+   */
   double payload;
+  
   unsigned int lastSync;
   
-  /* Open handles */
+  /**
+   * Open handles 
+   */
   unsigned int handle_count;
   
-  /* List of open handles */
+  /**
+   * List of open handles
+   */
   sqliteHandle *handles;  
 } sqliteDatabase;
 
 
 static sqliteDatabase *db;
 
-static sqliteHandle *getDBHandle();
+static sqliteHandle * getDBHandle(void);
 
 /**
  * @brief Prepare a SQL statement
  */
-static int sq_prepare(
-          const char *zSql,       /* SQL statement, UTF-8 encoded */
-          sqlite3_stmt **ppStmt) {  /* OUT: Statement handle */
+static int sq_prepare(const char *zSql,       /* SQL statement, UTF-8 encoded 
*/
+                     sqlite3_stmt **ppStmt) {  /* OUT: Statement handle */
   char * dummy;
   return sqlite3_prepare(getDBHandle()->dbh,
        zSql,
@@ -111,7 +129,7 @@
  *       We therefore (re)open the database in each thread.
  * @return the native SQLite database handle
  */
-static sqliteHandle *getDBHandle() {
+static sqliteHandle * getDBHandle() {
   unsigned int idx;
   pthread_t this_tid;
   sqliteHandle *ret = NULL;
@@ -176,7 +194,7 @@
            "  hash TEXT NOT NULL DEFAULT '',"
            "  value BLOB NOT NULL DEFAULT '')", NULL, NULL,
            NULL) != SQLITE_OK) {
-        LOG_SQLITE(LOG_ERROR, "sqlite_create");
+        LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sqlite_create");
         sqlite3_finalize(stmt);
         return NULL;
       }
@@ -195,7 +213,7 @@
                      "anonLevel, expire, hash, value) VALUES "
                      "(?, ?, ?, ?, ?, ?, ?)",
             &ret->insertContent) != SQLITE_OK) ) {
-      LOG_SQLITE(LOG_ERROR,
+      LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK,
            "precompiling");
       if (ret->countContent != NULL)
         sqlite3_finalize(ret->countContent);
@@ -245,11 +263,11 @@
 static unsigned long long getSize() {
   double ret;
 
-  MUTEX_LOCK(&db->DATABASE_Lock_);
+  MUTEX_LOCK(db->DATABASE_Lock_);
   ret = db->payload;
   if (stats)
     stats->set(stat_size, ret);
-  MUTEX_UNLOCK(&db->DATABASE_Lock_);
+  MUTEX_UNLOCK(db->DATABASE_Lock_);
   return ret;
 }
 
@@ -277,7 +295,7 @@
       sqlite3_step(stmt);
       sqlite3_finalize(stmt);
     } else
-      LOG_SQLITE(LOG_ERROR, "sq_prepare");
+      LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sq_prepare");
     return NULL; /* error */
   }
 
@@ -299,7 +317,7 @@
       sqlite3_step(stmt);
       sqlite3_finalize(stmt);
     } else
-      LOG_SQLITE(LOG_ERROR, "sq_prepare");
+      LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sq_prepare");
 
     return NULL;
   }
@@ -353,7 +371,7 @@
   sqlite3_finalize(stmt);
 
   if (i != SQLITE_OK) {
-    LOG_SQLITE(LOG_ERROR,
+    LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK,
               "sqlite_getStat");
     return SYSERR;
   }
@@ -395,7 +413,7 @@
                     3,
                     RESERVED_BLOCK);
     if (sqlite3_step(stmt) != SQLITE_DONE) {
-      LOG_SQLITE(LOG_ERROR,
+      LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK,
                 "sqlite_setStat");
       sqlite3_finalize(stmt);
       return SYSERR;
@@ -439,7 +457,7 @@
   unsigned long long lastExp;
   HashCode512 key;
 
-  MUTEX_LOCK(&db->DATABASE_Lock_);
+  MUTEX_LOCK(db->DATABASE_Lock_);
 
   /* For the rowid trick see
       http://permalink.gmane.org/gmane.network.gnunet.devel/1363 */
@@ -469,8 +487,8 @@
   strcat(scratch, " LIMIT 1)");
   if (sq_prepare(scratch,
                 &stmt) != SQLITE_OK) {
-    LOG_SQLITE(LOG_ERROR, "sqlite3_prepare");
-    MUTEX_UNLOCK(&db->DATABASE_Lock_);
+    LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sqlite3_prepare");
+    MUTEX_UNLOCK(db->DATABASE_Lock_);
     return SYSERR;
   }
 
@@ -531,16 +549,16 @@
 #endif
 
       if (iter != NULL) {
-       MUTEX_UNLOCK(&db->DATABASE_Lock_);
+       MUTEX_UNLOCK(db->DATABASE_Lock_);
        if (SYSERR == iter(&datum->key,
                           &datum->value,
                           closure) ) {
          count = SYSERR;
          FREE(datum);
-         MUTEX_LOCK(&db->DATABASE_Lock_);
+         MUTEX_LOCK(db->DATABASE_Lock_);
          break;
        }
-       MUTEX_LOCK(&db->DATABASE_Lock_);
+       MUTEX_LOCK(db->DATABASE_Lock_);
       }
       key = datum->key;
       lastPrio = ntohl(datum->value.prio);
@@ -553,7 +571,7 @@
     }
   }
   sqlite3_finalize(stmt);
-  MUTEX_UNLOCK(&db->DATABASE_Lock_);
+  MUTEX_UNLOCK(db->DATABASE_Lock_);
 
   return count;
 }
@@ -611,12 +629,12 @@
     sqlite3_finalize(h->insertContent);
   
     if (sqlite3_close(h->dbh) != SQLITE_OK)
-      LOG_SQLITE(LOG_ERROR, "sqlite_close");
+      LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sqlite_close");
   }
   FREE(db->handles);
   db->handle_count = 0;
 
-  MUTEX_DESTROY(&db->DATABASE_Lock_);
+  MUTEX_DESTROY(db->DATABASE_Lock_);
   FREE(db->fn);
   FREE(db);
   db = NULL;
@@ -665,7 +683,7 @@
       &enc);
 #endif
 
-  MUTEX_LOCK(&db->DATABASE_Lock_);
+  MUTEX_LOCK(db->DATABASE_Lock_);
 
   strcpy(scratch, "SELECT ");
   if (iter == NULL)
@@ -687,8 +705,8 @@
 
   if (sq_prepare(scratch,
                 &stmt) != SQLITE_OK) {
-    LOG_SQLITE(LOG_ERROR, "sqlite_query");
-    MUTEX_UNLOCK(&db->DATABASE_Lock_);
+    LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sqlite_query");
+    MUTEX_UNLOCK(db->DATABASE_Lock_);
     return SYSERR;
   }
 
@@ -735,17 +753,17 @@
        count += sqlite3_column_int(stmt, 0);
     }
     if (ret != SQLITE_DONE) {
-      LOG_SQLITE(LOG_ERROR, "sqlite_query");
+      LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sqlite_query");
       sqlite3_finalize(stmt);
-      MUTEX_UNLOCK(&db->DATABASE_Lock_);
+      MUTEX_UNLOCK(db->DATABASE_Lock_);
       return SYSERR;
     }
 
     sqlite3_finalize(stmt);
   } else
-    LOG_SQLITE(LOG_ERROR, "sqlite_query");
+    LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sqlite_query");
 
-  MUTEX_UNLOCK(&db->DATABASE_Lock_);
+  MUTEX_UNLOCK(db->DATABASE_Lock_);
 
 #if DEBUG_SQLITE
   GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER, "SQLite: done reading 
content\n");
@@ -787,7 +805,7 @@
     return SYSERR;
   }
 
-  MUTEX_LOCK(&db->DATABASE_Lock_);
+  MUTEX_LOCK(db->DATABASE_Lock_);
 
   if (db->lastSync > 1000)
     syncStats();
@@ -815,16 +833,16 @@
   n = sqlite3_step(stmt);
   sqlite3_reset(stmt);
   if (n != SQLITE_DONE) {
-    LOG_SQLITE(LOG_ERROR,
+    LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK,
               "sqlite_query");
-    MUTEX_UNLOCK(&db->DATABASE_Lock_);
+    MUTEX_UNLOCK(db->DATABASE_Lock_);
     return SYSERR;
   }
   db->lastSync++;
   /* row length = hash length + block length + numbers + column count + 
estimated index size + 1 */
   db->payload = db->payload + contentSize + sizeof(HashCode512) + 
getIntSize(size) + getIntSize(type) +
        getIntSize(prio) + getIntSize(anon) + getIntSize(expir) + 7 + 245 + 1;
-  MUTEX_UNLOCK(&db->DATABASE_Lock_);
+  MUTEX_UNLOCK(db->DATABASE_Lock_);
 
 #if DEBUG_SQLITE
   GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
@@ -860,7 +878,7 @@
       &enc);
 #endif
 
-  MUTEX_LOCK(&db->DATABASE_Lock_);
+  MUTEX_LOCK(db->DATABASE_Lock_);
 
   dbh = getDBHandle();
 
@@ -931,19 +949,19 @@
          - getIntSize(size) - getIntSize(type) - getIntSize(prio)
          - getIntSize(anon) - getIntSize(expir) - 7 - 245 - 1;
     } else {
-      LOG_SQLITE(LOG_ERROR, "sqlite3_prepare");
+      LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sqlite3_prepare");
     }
   }
   deleted = ( (n == SQLITE_DONE) || (n == SQLITE_ROW) ) ? 
sqlite3_changes(dbh->dbh) : SYSERR;
   sqlite3_finalize(stmt);
 
   if(n != SQLITE_DONE) {
-    LOG_SQLITE(LOG_ERROR, "sqlite_query");
-    MUTEX_UNLOCK(&db->DATABASE_Lock_);
+    LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sqlite_query");
+    MUTEX_UNLOCK(db->DATABASE_Lock_);
     return SYSERR;
   }
 
-  MUTEX_UNLOCK(&db->DATABASE_Lock_);
+  MUTEX_UNLOCK(db->DATABASE_Lock_);
 
 #if DEBUG_SQLITE
   GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
@@ -975,7 +993,7 @@
       &enc);
 #endif
 
-  MUTEX_LOCK(&db->DATABASE_Lock_);
+  MUTEX_LOCK(db->DATABASE_Lock_);
   dbh = getDBHandle();
   contentSize = ntohl(value->size)-sizeof(Datastore_Value);
   sqlite3_bind_int(dbh->updPrio,
@@ -1001,7 +1019,7 @@
   n = sqlite3_step(dbh->updPrio);
   sqlite3_reset(dbh->updPrio);
 
-  MUTEX_UNLOCK(&db->DATABASE_Lock_);
+  MUTEX_UNLOCK(db->DATABASE_Lock_);
 
 #if DEBUG_SQLITE
   GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
@@ -1019,6 +1037,7 @@
   size_t nX;
   sqliteHandle *dbh;
 
+  ectx = capi->ectx;
 #if DEBUG_SQLITE
   GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
       "SQLite: initializing database\n");
@@ -1031,24 +1050,41 @@
   db->payload = 0;
   db->lastSync = 0;
 
-  afsdir = getFileName("FS", "DIR",
-                      _("Configuration file must specify directory for "
-                        "storing FS data in section `%s' under `%s'.\n"));
+  afsdir = NULL;
+  if (0 != GC_get_configuration_value_string(capi->cfg,
+                                            "FS", 
+                                            "DIR",
+                                            NULL,
+                                            &afsdir)) {
+    FREE(db);
+    GE_LOG(ectx,
+          GE_ERROR | GE_USER | GE_ADMIN | GE_IMMEDIATE,
+          _("Configuration must specify directory in section `%s' entry 
`%s'\n"),
+          "FS",
+          "DIR");
+    return NULL;
+  }
+
   dir = MALLOC(strlen(afsdir) + 8 + 2); /* 8 = "content/" */
   strcpy(dir, afsdir);
   strcat(dir, "/content/");
   FREE(afsdir);
-  mkdirp(dir);
+  if (OK != disk_directory_create(ectx,
+                                 dir)) {
+    FREE(dir);
+    FREE(db);
+    return NULL;
+  }
   nX = strlen(dir) + 6 + 4 + 256;  /* 6 = "gnunet", 4 = ".dat" */
   db->fn = MALLOC(strlen(dir) + 6 + 4 + 256);
   SNPRINTF(db->fn, nX, "%s/gnunet.dat", dir);
   FREE(dir);
 
-  MUTEX_CREATE(&db->DATABASE_Lock_);
+  db->DATABASE_Lock_ = MUTEX_CREATE(NO);
 
   dbh = getDBHandle();
   if (!dbh) {
-    LOG_SQLITE(LOG_ERROR, "db_handle");
+    LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "db_handle");
     FREE(db->fn);
     FREE(dbh);
     return NULL;    
@@ -1056,7 +1092,7 @@
 
   db->payload = getStat("PAYLOAD");
   if (db->payload == SYSERR) {
-    LOG_SQLITE(LOG_ERROR, "sqlite_payload");
+    LOG_SQLITE(GE_ERROR | GE_ADMIN | GE_USER | GE_BULK, "sqlite_payload");
     FREE(db->fn);
     FREE(db);
     return NULL;

Modified: GNUnet/src/include/fs.h
===================================================================
--- GNUnet/src/include/fs.h     2006-08-03 22:02:24 UTC (rev 3210)
+++ GNUnet/src/include/fs.h     2006-08-07 02:59:36 UTC (rev 3211)
@@ -34,7 +34,7 @@
  * on the type).
  */
 typedef struct {
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   /**
    * Priority of the search.
@@ -72,7 +72,7 @@
  * of the Datastore_Value).
  */
 typedef struct {
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
 } CS_fs_reply_content_MESSAGE;
 
@@ -83,7 +83,7 @@
  * number of bytes of content.
  */
 typedef struct {
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   /**
    * Priority for the on-demand encoded entry.
@@ -110,7 +110,7 @@
  * by the filename to index.
  */
 typedef struct {
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   unsigned int reserved;
 
@@ -128,7 +128,7 @@
  * number of bytes of content.
  */
 typedef struct {
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   /**
    * Priority for the on-demand encoded entry.
@@ -167,7 +167,7 @@
  * variable number of bytes of the content that is to be deleted.
  */
 typedef struct {
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
 } CS_fs_request_delete_MESSAGE;
 
@@ -176,7 +176,7 @@
  * Client to server: unindex file.
  */
 typedef struct {
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   /**
    * Size of each block of the file.
@@ -195,7 +195,7 @@
  * Client to server: test if file is indexed
  */
 typedef struct {
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   unsigned int reserved;
 

Modified: GNUnet/src/include/gnunet_dht.h
===================================================================
--- GNUnet/src/include/gnunet_dht.h     2006-08-03 22:02:24 UTC (rev 3210)
+++ GNUnet/src/include/gnunet_dht.h     2006-08-07 02:59:36 UTC (rev 3211)
@@ -69,7 +69,7 @@
  */
 typedef struct {
 
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   DHT_TableId table;
 
@@ -80,7 +80,7 @@
  */
 typedef struct {
 
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   DHT_TableId table;
 
@@ -93,7 +93,7 @@
  */
 typedef struct {
 
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   DHT_TableId table;
 
@@ -111,7 +111,7 @@
  */
 typedef struct {
 
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   unsigned int type; /* nbo */
 
@@ -131,7 +131,7 @@
  */
 typedef struct {
 
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   DHT_TableId table;
 
@@ -147,7 +147,7 @@
  */
 typedef struct {
 
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
 } CS_dht_request_iterate_MESSAGE;
 
@@ -158,7 +158,7 @@
  */
 typedef struct {
 
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   unsigned int totalResults;
 
@@ -175,7 +175,7 @@
  */
 typedef struct {
 
-  CS_MESSAGE_HEADER header;
+  MESSAGE_HEADER header;
 
   int status; /* NBO */
 

Modified: GNUnet/src/server/gnunet-update.c
===================================================================
--- GNUnet/src/server/gnunet-update.c   2006-08-03 22:02:24 UTC (rev 3210)
+++ GNUnet/src/server/gnunet-update.c   2006-08-07 02:59:36 UTC (rev 3211)
@@ -181,6 +181,8 @@
   uapi.updateModule   = &updateModule;
   uapi.requestService = &requestService;
   uapi.releaseService = &releaseService;
+  uapi.ectx = ectx;
+  uapi.cfg = cfg;
 
   cron = cron_create(ectx);
   initCore(ectx, cfg, cron, NULL);





reply via email to

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