moved BPQ app consts to header file and set the BPQ Block flag to add block to each fragment
authoraidan
Wed, 03 Aug 2011 14:35:09 +0100
changeset 28 406d4f7eb00d
parent 27 28b7fb13e35d
child 29 00dfdf113d87
moved BPQ app consts to header file and set the BPQ Block flag to add block to each fragment
applib/dtn_types.h
applib/dtn_types.x
apps/dtnquery/dtnquery.c
apps/dtnrespond/dtnrespond.c
servlib/bundling/BundleDaemon.cc
--- a/applib/dtn_types.h	Thu Jun 30 15:32:09 2011 +0100
+++ b/applib/dtn_types.h	Wed Aug 03 14:35:09 2011 +0100
@@ -235,6 +235,30 @@
 typedef enum dtn_extension_block_flags_t dtn_extension_block_flags_t;
 
 /**
+ * BPQ Extension block kind. 
+ *
+ *     BPQ_BLOCK_KIND_QUERY
+ *     BPQ_BLOCK_KIND_RESPONSE
+ */
+
+enum dtn_bpq_extension_block_kind_t {
+    BPQ_BLOCK_KIND_QUERY = 0,
+    BPQ_BLOCK_KIND_RESPONSE = 1,
+};
+typedef enum dtn_bpq_extension_block_kind_t dtn_bpq_extension_block_kind_t;
+
+/**
+ * BPQ Extension block matching rule. (More may be added later)
+ *
+ *     BPQ_MATCHING_RULE_EXACT
+ */
+
+enum dtn_bpq_extension_block_matching_rule_t {
+    BPQ_MATCHING_RULE_EXACT = 1, 
+};
+typedef enum dtn_bpq_extension_block_matching_rule_t dtn_bpq_extension_block_matching_rule_t;
+
+/**
  * Extension block.
  */
 
@@ -424,6 +448,8 @@
 extern  bool_t xdr_dtn_bundle_delivery_opts_t (XDR *, dtn_bundle_delivery_opts_t*);
 extern  bool_t xdr_dtn_extension_block_flags_t (XDR *, dtn_extension_block_flags_t*);
 extern  bool_t xdr_dtn_extension_block_t (XDR *, dtn_extension_block_t*);
+extern  bool_t xdr_dtn_bpq_extension_block_kind_t (XDR *, dtn_bpq_extension_block_kind_t*);
+extern  bool_t xdr_dtn_bpq_extension_block_matching_rule_t (XDR *, dtn_bpq_extension_block_matching_rule_t*);
 extern  bool_t xdr_dtn_bpq_extension_block_data_t (XDR *, dtn_bpq_extension_block_data_t*);
 extern  bool_t xdr_dtn_sequence_id_t (XDR *, dtn_sequence_id_t*);
 extern  bool_t xdr_dtn_bundle_spec_t (XDR *, dtn_bundle_spec_t*);
@@ -446,6 +472,8 @@
 extern bool_t xdr_dtn_bundle_delivery_opts_t ();
 extern bool_t xdr_dtn_extension_block_flags_t ();
 extern bool_t xdr_dtn_extension_block_t ();
+extern bool_t xdr_dtn_bpq_extension_block_kind_t ();
+extern bool_t xdr_dtn_bpq_extension_block_matching_rule_t ();
 extern bool_t xdr_dtn_bpq_extension_block_data_t ();
 extern bool_t xdr_dtn_sequence_id_t ();
 extern bool_t xdr_dtn_bundle_spec_t ();
--- a/applib/dtn_types.x	Thu Jun 30 15:32:09 2011 +0100
+++ b/applib/dtn_types.x	Wed Aug 03 14:35:09 2011 +0100
@@ -221,6 +221,26 @@
     BLOCK_FLAG_UNPROCESSED   = 32
 };
 
+%/**
+% * BPQ Extension block kind. 
+% *
+% *     BPQ_BLOCK_KIND_QUERY
+% *     BPQ_BLOCK_KIND_RESPONSE
+% */
+enum dtn_bpq_extension_block_kind_t {
+    BPQ_BLOCK_KIND_QUERY = 0, 
+    BPQ_BLOCK_KIND_RESPONSE = 1
+};
+
+%/**
+% * BPQ Extension block matching rule. (More may be added later)
+% *
+% *     BPQ_MATCHING_RULE_EXACT
+% */
+enum dtn_bpq_extension_block_matching_rule_t {
+    BPQ_MATCHING_RULE_EXACT = 1
+};
+
 %
 %/**
 % * Extension block.
--- a/apps/dtnquery/dtnquery.c	Thu Jun 30 15:32:09 2011 +0100
+++ b/apps/dtnquery/dtnquery.c	Wed Aug 03 14:35:09 2011 +0100
@@ -39,17 +39,11 @@
 #define DTN_BPQ_BASE64 2
 #define DTN_BPQ_FILE 3
 
-#define DTN_BPQ_EXACT 1
-
 #define DTN_BPQ_SEND 1
 #define DTN_BPQ_RECV 2
 #define DTN_BPQ_SEND_RECV 3
 
 #define DTN_BPQ_BLOCK_TYPE 0xC8
-#define DTN_BPQ_BLOCK_FLAGS 0x00
-
-#define DTN_BPQ_KIND_QUERY 0x00
-#define DTN_BPQ_KIND_RESPONSE 0x01
 
 // Find the maximum commandline length
 #ifdef __FreeBSD__
@@ -249,7 +243,7 @@
             }
         case 'u':
             if (!strcasecmp(optarg, "exact")) {
-                *matching_rule = DTN_BPQ_EXACT;
+                *matching_rule = BPQ_MATCHING_RULE_EXACT;
                 break;
             } else {
                 fprintf(stderr, "invalid query type '%s'\n", optarg);
@@ -440,7 +434,8 @@
             query_type == DTN_BPQ_BASE64  ||
             query_type == DTN_BPQ_FILE, "-t <query type> invalid type\n");
 
-    REQUIRE(matching_rule == DTN_BPQ_EXACT, "-u <matching rule> invalid rule\n");
+    REQUIRE(matching_rule == BPQ_MATCHING_RULE_EXACT,
+         "-u <matching rule> invalid rule\n");
     REQUIRE(bundle_expiry > 0, "-e <expiry> must be a positive integer\n");
 #undef REQUIRE
 //todo: check this is ok
@@ -780,7 +775,7 @@
     memset(&payload,        0, sizeof(dtn_bundle_payload_t));
     
     // set the bpq block data
-    bpq_block_data.kind = DTN_BPQ_KIND_QUERY;
+    bpq_block_data.kind = BPQ_BLOCK_KIND_QUERY;
     bpq_block_data.matching_rule = matching_rule;
     bpq_block_data.query.query_len = strlen(query) + 1;     // include the null char at the end
     bpq_block_data.query.query_val = query; 
@@ -792,7 +787,7 @@
 
     // set the bpq block
     bpq_block.type = DTN_BPQ_BLOCK_TYPE;
-    bpq_block.flags = DTN_BPQ_BLOCK_FLAGS;
+    bpq_block.flags = BLOCK_FLAG_REPLICATE;
     bpq_block.data.data_len = buf_len;
     bpq_block.data.data_val = buf;
     
@@ -949,7 +944,7 @@
     char filename[PATH_MAX];
     char query[PATH_MAX];
     int query_type = DTN_BPQ_LITERAL;
-    int matching_rule = DTN_BPQ_EXACT;
+    int matching_rule = BPQ_MATCHING_RULE_EXACT;
     int mode = DTN_BPQ_SEND_RECV;
     int count = 1;
     dtn_timeval_t timeout = DTN_TIMEOUT_INF;    //forever
--- a/apps/dtnrespond/dtnrespond.c	Thu Jun 30 15:32:09 2011 +0100
+++ b/apps/dtnrespond/dtnrespond.c	Wed Aug 03 14:35:09 2011 +0100
@@ -35,10 +35,6 @@
 #define COUNTER_MAX_DIGITS 9
 
 #define DTN_BPQ_BLOCK_TYPE 0xC8
-#define DTN_BPQ_BLOCK_FLAGS 0x00
-
-#define DTN_BPQ_KIND_QUERY 0x00
-#define DTN_BPQ_KIND_RESPONSE 0x01
 
 // Find the maximum commandline length
 #ifdef __FreeBSD__
@@ -727,7 +723,7 @@
     dtn_set_payload(&response_payload, DTN_PAYLOAD_FILE, pathname, strlen(pathname)); 
 
     // set the bpq block data
-    response_bpq_block_data.kind = DTN_BPQ_KIND_RESPONSE;
+    response_bpq_block_data.kind = BPQ_BLOCK_KIND_RESPONSE;
     response_bpq_block_data.matching_rule = query_bpq_block_data->matching_rule;
     response_bpq_block_data.query.query_len = query_bpq_block_data->query.query_len;
     response_bpq_block_data.query.query_val = query_bpq_block_data->query.query_val;
@@ -747,7 +743,7 @@
 
     // set the bpq block
     response_bpq_block.type = DTN_BPQ_BLOCK_TYPE;
-    response_bpq_block.flags = DTN_BPQ_BLOCK_FLAGS;
+    response_bpq_block.flags = BLOCK_FLAG_REPLICATE;
     response_bpq_block.data.data_len = buf_len;
     response_bpq_block.data.data_val = buf;
 
--- a/servlib/bundling/BundleDaemon.cc	Thu Jun 30 15:32:09 2011 +0100
+++ b/servlib/bundling/BundleDaemon.cc	Wed Aug 03 14:35:09 2011 +0100
@@ -916,7 +916,7 @@
 
     }
 
-    // If the even source is PEER, APP or STORE,
+    // If the even source is PEER or STORE,
     // try to handle a BPQ block
     if ( event->source_ == EVENTSRC_PEER || 
          event->source_ == EVENTSRC_STORE ) {