gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r13021 - gnunet/src/fs


From: gnunet
Subject: [GNUnet-SVN] r13021 - gnunet/src/fs
Date: Sat, 18 Sep 2010 06:58:35 +0200

Author: grothoff
Date: 2010-09-18 06:58:35 +0200 (Sat, 18 Sep 2010)
New Revision: 13021

Modified:
   gnunet/src/fs/gnunet-service-fs.c
Log:
code simplification

Modified: gnunet/src/fs/gnunet-service-fs.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs.c   2010-09-18 04:49:08 UTC (rev 13020)
+++ gnunet/src/fs/gnunet-service-fs.c   2010-09-18 04:58:35 UTC (rev 13021)
@@ -2565,11 +2565,19 @@
          GNUNET_SERVER_client_keep 
(pr->client_request_list->client_list->client);
        }
     }
-  switch (prq->type)
+  eval = GNUNET_BLOCK_evaluate (block_ctx,
+                               prq->type,
+                               key,
+                               &pr->bf,
+                               pr->mingle,
+                               pr->namespace, (pr->namespace != NULL) ? sizeof 
(GNUNET_HashCode) : 0,
+                               prq->data,
+                               prq->size);
+  switch (eval)
     {
-    case GNUNET_BLOCK_TYPE_DBLOCK:
-    case GNUNET_BLOCK_TYPE_IBLOCK:
-      /* only possible reply, stop requesting! */
+    case GNUNET_BLOCK_EVALUATION_OK_MORE:
+      break;
+    case GNUNET_BLOCK_EVALUATION_OK_LAST:
       while (NULL != pr->pending_head)
        destroy_pending_message_list_entry (pr->pending_head);
       if (pr->qe != NULL)
@@ -2577,7 +2585,7 @@
          if (pr->client_request_list != NULL)
            GNUNET_SERVER_receive_done 
(pr->client_request_list->client_list->client, 
                                        GNUNET_YES);
-         GNUNET_DATASTORE_cancel (pr->qe);
+         GNUNET_DATASTORE_cancel (pr->qe);
          pr->qe = NULL;
        }
       pr->do_remove = GNUNET_YES;
@@ -2592,119 +2600,42 @@
                                                          key,
                                                          pr));
       break;
-    case GNUNET_BLOCK_TYPE_SBLOCK:
-      if (pr->namespace == NULL)
-       {
-         GNUNET_break (0);
-         return GNUNET_YES;
-       }
-      eval = GNUNET_BLOCK_evaluate (block_ctx,
-                                   prq->type,
-                                   key,
-                                   &pr->bf,
-                                   pr->mingle,
-                                   pr->namespace, sizeof (GNUNET_HashCode),
-                                   prq->data,
-                                   prq->size);
-      switch (eval)
-       {
-       case GNUNET_BLOCK_EVALUATION_OK_MORE:
-         break;
-       case GNUNET_BLOCK_EVALUATION_OK_LAST:
-         break;
-       case GNUNET_BLOCK_EVALUATION_OK_DUPLICATE:
-         GNUNET_STATISTICS_update (stats,
-                                   gettext_noop ("# duplicate replies 
discarded (bloomfilter)"),
-                                   1,
-                                   GNUNET_NO);
+    case GNUNET_BLOCK_EVALUATION_OK_DUPLICATE:
+      GNUNET_STATISTICS_update (stats,
+                               gettext_noop ("# duplicate replies discarded 
(bloomfilter)"),
+                               1,
+                               GNUNET_NO);
 #if DEBUG_FS
-         GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                     "Duplicate response `%s', discarding.\n",
-                     GNUNET_h2s (&mhash));
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                 "Duplicate response `%s', discarding.\n",
+                 GNUNET_h2s (&mhash));
 #endif
-         return GNUNET_YES; /* duplicate */
-       case GNUNET_BLOCK_EVALUATION_RESULT_INVALID:
-         return GNUNET_YES; /* wrong namespace */      
-       case GNUNET_BLOCK_EVALUATION_REQUEST_VALID:
-         GNUNET_break (0);
-         return GNUNET_YES;
-        case GNUNET_BLOCK_EVALUATION_REQUEST_INVALID:
-          GNUNET_break (0);
-          return GNUNET_YES;
-       case GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED:
-         GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                     _("Block library does not support FS blocks\n"));
-         return GNUNET_NO;
-       }
-      if (pr->client_request_list != NULL)
-       {
-         if (pr->replies_seen_size == pr->replies_seen_off)
-           GNUNET_array_grow (pr->replies_seen,
-                              pr->replies_seen_size,
-                              pr->replies_seen_size * 2 + 4);  
-           GNUNET_CRYPTO_hash (prq->data,
-                               prq->size,
-                               &pr->replies_seen[pr->replies_seen_off++]);     
      
-           refresh_bloomfilter (pr);
-       }
-      break;
-    case GNUNET_BLOCK_TYPE_KBLOCK:
-    case GNUNET_BLOCK_TYPE_NBLOCK:
-      eval = GNUNET_BLOCK_evaluate (block_ctx,
-                                   prq->type,
-                                   key,
-                                   &pr->bf,
-                                   pr->mingle,
-                                   NULL, 0,
-                                   prq->data,
-                                   prq->size);
-      switch (eval)
-       {
-       case GNUNET_BLOCK_EVALUATION_OK_MORE:
-         break;
-       case GNUNET_BLOCK_EVALUATION_OK_LAST:
-         break;
-       case GNUNET_BLOCK_EVALUATION_OK_DUPLICATE:
-         GNUNET_STATISTICS_update (stats,
-                                   gettext_noop ("# duplicate replies 
discarded (bloomfilter)"),
-                                   1,
-                                   GNUNET_NO);
-#if DEBUG_FS
-         GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                     "Duplicate response `%s', discarding.\n",
-                     GNUNET_h2s (&mhash));
-#endif
-         return GNUNET_YES; /* duplicate */
-       case GNUNET_BLOCK_EVALUATION_RESULT_INVALID:
-         GNUNET_break_op (0);
-         return GNUNET_YES;
-       case GNUNET_BLOCK_EVALUATION_REQUEST_VALID:
-         GNUNET_break (0);
-         return GNUNET_YES;
-        case GNUNET_BLOCK_EVALUATION_REQUEST_INVALID:
-          GNUNET_break (0);
-          return GNUNET_YES;
-       case GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED:
-         GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                     _("Block library does not support FS blocks\n"));
-         return GNUNET_NO;
-       }
-      if (pr->client_request_list != NULL)
-       {
-         if (pr->replies_seen_size == pr->replies_seen_off)
-           GNUNET_array_grow (pr->replies_seen,
-                              pr->replies_seen_size,
-                              pr->replies_seen_size * 2 + 4);  
-           GNUNET_CRYPTO_hash (prq->data,
-                               prq->size,
-                               &pr->replies_seen[pr->replies_seen_off++]);     
      
-           refresh_bloomfilter (pr);
-       }
-      break;
-    default:
+      return GNUNET_YES; /* duplicate */
+    case GNUNET_BLOCK_EVALUATION_RESULT_INVALID:
+      return GNUNET_YES; /* wrong namespace */ 
+    case GNUNET_BLOCK_EVALUATION_REQUEST_VALID:
       GNUNET_break (0);
       return GNUNET_YES;
+    case GNUNET_BLOCK_EVALUATION_REQUEST_INVALID:
+      GNUNET_break (0);
+      return GNUNET_YES;
+    case GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED:
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                 _("Unsupported block type %u\n"),
+                 prq->type);
+      return GNUNET_NO;
     }
+  if (pr->client_request_list != NULL)
+    {
+      if (pr->replies_seen_size == pr->replies_seen_off)
+       GNUNET_array_grow (pr->replies_seen,
+                          pr->replies_seen_size,
+                          pr->replies_seen_size * 2 + 4);      
+      GNUNET_CRYPTO_hash (prq->data,
+                         prq->size,
+                         &pr->replies_seen[pr->replies_seen_off++]);         
+      refresh_bloomfilter (pr);
+    }
   prq->priority += pr->remaining_priority;
   pr->remaining_priority = 0;
   if (NULL != pr->client_request_list)
@@ -3262,18 +3193,6 @@
     }
   gm = (const struct GetMessage*) message;
   type = ntohl (gm->type);
-  switch (type)
-    {
-    case GNUNET_BLOCK_TYPE_ANY:
-    case GNUNET_BLOCK_TYPE_DBLOCK:
-    case GNUNET_BLOCK_TYPE_IBLOCK:
-    case GNUNET_BLOCK_TYPE_KBLOCK:
-    case GNUNET_BLOCK_TYPE_SBLOCK:
-      break;
-    default:
-      GNUNET_break_op (0);
-      return GNUNET_SYSERR;
-    }
   bm = ntohl (gm->hash_bitmap);
   bits = 0;
   while (bm > 0)
@@ -3565,22 +3484,6 @@
              GNUNET_h2s (&sm->query),
              (unsigned int) type);
 #endif
-  switch (type)
-    {
-    case GNUNET_BLOCK_TYPE_ANY:
-    case GNUNET_BLOCK_TYPE_DBLOCK:
-    case GNUNET_BLOCK_TYPE_IBLOCK:
-    case GNUNET_BLOCK_TYPE_KBLOCK:
-    case GNUNET_BLOCK_TYPE_SBLOCK:
-    case GNUNET_BLOCK_TYPE_NBLOCK:
-      break;
-    default:
-      GNUNET_break (0);
-      GNUNET_SERVER_receive_done (client,
-                                 GNUNET_SYSERR);
-      return;
-    }  
-
   cl = client_list;
   while ( (cl != NULL) &&
          (cl->client != client) )




reply via email to

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