Commit 2240aa12 authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

Merge branch 'bug16023_028_01_squashed'

parents a9993a92 13a85718
Loading
Loading
Loading
Loading

changes/bug16023

0 → 100644
+4 −0
Original line number Diff line number Diff line
  o Minor feature (hidden service, control port)
    - Add the onion address to the HS_DESC event for the UPLOADED action
      both on success or failure. It was previously hardcoded with UNKNOWN.
      Fixes #16023;
+10 −4
Original line number Diff line number Diff line
@@ -6384,6 +6384,7 @@ control_event_hs_descriptor_receive_end(const char *action,
 */
void
control_event_hs_descriptor_upload_end(const char *action,
                                       const char *onion_address,
                                       const char *id_digest,
                                       const char *reason)
{
@@ -6400,8 +6401,9 @@ control_event_hs_descriptor_upload_end(const char *action,
  }

  send_control_event(EVENT_HS_DESC,
                     "650 HS_DESC %s UNKNOWN UNKNOWN %s%s\r\n",
                     "650 HS_DESC %s %s UNKNOWN %s%s\r\n",
                     action,
                     rend_hsaddress_str_or_unknown(onion_address),
                     node_describe_longname_by_id(id_digest),
                     reason_field ? reason_field : "");

@@ -6431,14 +6433,17 @@ control_event_hs_descriptor_received(const char *onion_address,
 * called when we successfully uploaded a hidden service descriptor.
 */
void
control_event_hs_descriptor_uploaded(const char *id_digest)
control_event_hs_descriptor_uploaded(const char *id_digest,
                                     const char *onion_address)
{
  if (!id_digest) {
    log_warn(LD_BUG, "Called with id_digest==%p",
             id_digest);
    return;
  }
  control_event_hs_descriptor_upload_end("UPLOADED", id_digest, NULL);

  control_event_hs_descriptor_upload_end("UPLOADED", onion_address,
                                         id_digest, NULL);
}

/** Send HS_DESC event to inform controller that query <b>rend_query</b>
@@ -6500,6 +6505,7 @@ control_event_hs_descriptor_content(const char *onion_address,
 */
void
control_event_hs_descriptor_upload_failed(const char *id_digest,
                                          const char *onion_address,
                                          const char *reason)
{
  if (!id_digest) {
@@ -6507,7 +6513,7 @@ control_event_hs_descriptor_upload_failed(const char *id_digest,
             id_digest);
    return;
  }
  control_event_hs_descriptor_upload_end("UPLOAD_FAILED",
  control_event_hs_descriptor_upload_end("UPLOAD_FAILED", onion_address,
                                         id_digest, reason);
}

+4 −1
Original line number Diff line number Diff line
@@ -129,16 +129,19 @@ void control_event_hs_descriptor_receive_end(const char *action,
                                             const char *id_digest,
                                             const char *reason);
void control_event_hs_descriptor_upload_end(const char *action,
                                            const char *onion_address,
                                            const char *hs_dir,
                                            const char *reason);
void control_event_hs_descriptor_received(const char *onion_address,
                                          const rend_data_t *rend_data,
                                          const char *id_digest);
void control_event_hs_descriptor_uploaded(const char *hs_dir);
void control_event_hs_descriptor_uploaded(const char *hs_dir,
                                          const char *onion_address);
void control_event_hs_descriptor_failed(const rend_data_t *rend_data,
                                        const char *id_digest,
                                        const char *reason);
void control_event_hs_descriptor_upload_failed(const char *hs_dir,
                                               const char *onion_address,
                                               const char *reason);
void control_event_hs_descriptor_content(const char *onion_address,
                                         const char *desc_id,
+6 −1
Original line number Diff line number Diff line
@@ -2364,16 +2364,21 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
  if (conn->base_.purpose == DIR_PURPOSE_UPLOAD_RENDDESC_V2) {
    #define SEND_HS_DESC_UPLOAD_FAILED_EVENT(reason) ( \
      control_event_hs_descriptor_upload_failed(conn->identity_digest, \
                                                conn->rend_data->onion_address, \
                                                reason) )
    log_info(LD_REND,"Uploaded rendezvous descriptor (status %d "
             "(%s))",
             status_code, escaped(reason));
    /* Without the rend data, we'll have a problem identifying what has been
     * uploaded for which service. */
    tor_assert(conn->rend_data);
    switch (status_code) {
      case 200:
        log_info(LD_REND,
                 "Uploading rendezvous descriptor: finished with status "
                 "200 (%s)", escaped(reason));
        control_event_hs_descriptor_uploaded(conn->identity_digest);
        control_event_hs_descriptor_uploaded(conn->identity_digest,
                                             conn->rend_data->onion_address);
        rend_service_desc_has_uploaded(conn->rend_data);
        break;
      case 400: