Explorar el Código

Add replica number to HS_DESC CREATED event

Including the replica number in the HS_DESC CREATED event provides
more context to a control port client. The replica allows clients
to more easily identify each replicated descriptor from the
independantly output control events.
Donncha O'Cearbhaill hace 10 años
padre
commit
293410d138
Se han modificado 3 ficheros con 10 adiciones y 5 borrados
  1. 7 3
      src/or/control.c
  2. 2 1
      src/or/control.h
  3. 1 1
      src/or/rendcommon.c

+ 7 - 3
src/or/control.c

@@ -6255,10 +6255,12 @@ get_desc_id_from_query(const rend_data_t *rend_data, const char *hsdir_fp)
  *
  * <b>service_id</b> is the descriptor onion address.
  * <b>desc_id_base32</b> is the descriptor ID.
+ * <b>replica</b> is the the descriptor replica number.
  */
 void
 control_event_hs_descriptor_created(const char *service_id,
-                                    const char *desc_id_base32)
+                                    const char *desc_id_base32,
+                                    int replica)
 {
   if (!service_id || !desc_id_base32) {
     log_warn(LD_BUG, "Called with service_digest==%p, "
@@ -6267,9 +6269,11 @@ control_event_hs_descriptor_created(const char *service_id,
   }
 
   send_control_event(EVENT_HS_DESC,
-                     "650 HS_DESC CREATED %s UNKNOWN UNKNOWN %s\r\n",
+                     "650 HS_DESC CREATED %s UNKNOWN UNKNOWN %s "
+                     "REPLICA=%d\r\n",
                      service_id,
-                     desc_id_base32);
+                     desc_id_base32,
+                     replica);
 }
 
 /** send HS_DESC upload event.

+ 2 - 1
src/or/control.h

@@ -118,7 +118,8 @@ void control_event_hs_descriptor_requested(const rend_data_t *rend_query,
                                            const char *desc_id_base32,
                                            const char *hs_dir);
 void control_event_hs_descriptor_created(const char *service_id,
-                                         const char *desc_id_base32);
+                                         const char *desc_id_base32,
+                                         int replica);
 void control_event_hs_descriptor_upload(const char *service_id,
                                         const char *desc_id_base32,
                                         const char *hs_dir);

+ 1 - 1
src/or/rendcommon.c

@@ -661,7 +661,7 @@ rend_encode_v2_descriptors(smartlist_t *descs_out,
     rend_cache_store_v2_desc_as_service(enc->desc_str);
     base32_encode(service_id_base32, sizeof(service_id_base32),
           service_id, REND_SERVICE_ID_LEN);
-    control_event_hs_descriptor_created(service_id_base32, desc_id_base32);
+    control_event_hs_descriptor_created(service_id_base32, desc_id_base32, k);
   }
 
   log_info(LD_REND, "Successfully encoded a v2 descriptor and "