Browse Source

Use an enum for INTRO_POINT_FAILURE_*

Safer, wiser, stronger!

Signed-off-by: David Goulet <dgoulet@ev0ke.net>
David Goulet 8 years ago
parent
commit
1070be8217
4 changed files with 12 additions and 9 deletions
  1. 4 3
      src/or/rendcache.c
  2. 2 2
      src/or/rendcache.h
  3. 0 4
      src/or/rendclient.h
  4. 6 0
      src/or/rendcommon.h

+ 4 - 3
src/or/rendcache.c

@@ -125,7 +125,7 @@ rend_cache_failure_intro_entry_free(rend_cache_failure_intro_t *entry)
 /** Allocate a rend cache failure intro object and return it. <b>failure</b>
  * is set into the object. This function can not fail. */
 static rend_cache_failure_intro_t *
-rend_cache_failure_intro_entry_new(unsigned int failure)
+rend_cache_failure_intro_entry_new(rend_intro_point_failure_t failure)
 {
   rend_cache_failure_intro_t *entry = tor_malloc(sizeof(*entry));
   entry->failure_type = failure;
@@ -309,7 +309,7 @@ not_found:
  * <b>failure</b> in that object. */
 static void
 cache_failure_intro_add(const uint8_t *identity, const char *service_id,
-                        unsigned int failure)
+                        rend_intro_point_failure_t failure)
 {
   rend_cache_failure_t *fail_entry;
   rend_cache_failure_intro_t *entry;
@@ -376,7 +376,8 @@ validate_intro_point_failure(const rend_service_descriptor_t *desc,
  * <b>identity</b> and service ID <b>service_id</b>. If an entry already
  * exists in the cache, the failure type is changed with <b>failure</b>. */
 void
-rend_cache_intro_failure_note(unsigned int failure, const uint8_t *identity,
+rend_cache_intro_failure_note(rend_intro_point_failure_t failure,
+                              const uint8_t *identity,
                               const char *service_id)
 {
   int found;

+ 2 - 2
src/or/rendcache.h

@@ -34,7 +34,7 @@ typedef struct rend_cache_entry_t {
 
 /* Introduction point failure type. */
 typedef struct rend_cache_failure_intro_t {
-  unsigned int failure_type;
+  rend_intro_point_failure_t failure_type;
 } rend_cache_failure_intro_t;
 
 /** Cache failure object indexed by service ID. */
@@ -65,7 +65,7 @@ rend_cache_store_status_t rend_cache_store_v2_desc_as_client(const char *desc,
                                                 rend_cache_entry_t **entry);
 size_t rend_cache_get_total_allocation(void);
 
-void rend_cache_intro_failure_note(unsigned int failure,
+void rend_cache_intro_failure_note(rend_intro_point_failure_t failure,
                                    const uint8_t *identity,
                                    const char *service_id);
 void rend_cache_failure_purge(void);

+ 0 - 4
src/or/rendclient.h

@@ -26,10 +26,6 @@ int rend_client_fetch_v2_desc(rend_data_t *query, smartlist_t *hsdirs);
 void rend_client_cancel_descriptor_fetches(void);
 void rend_client_purge_last_hid_serv_requests(void);
 
-#define INTRO_POINT_FAILURE_GENERIC 0
-#define INTRO_POINT_FAILURE_TIMEOUT 1
-#define INTRO_POINT_FAILURE_UNREACHABLE 2
-
 int rend_client_report_intro_point_failure(extend_info_t *failed_intro,
                                            rend_data_t *rend_query,
                                            unsigned int failure_type);

+ 6 - 0
src/or/rendcommon.h

@@ -12,6 +12,12 @@
 #ifndef TOR_RENDCOMMON_H
 #define TOR_RENDCOMMON_H
 
+typedef enum rend_intro_point_failure_t {
+  INTRO_POINT_FAILURE_GENERIC     = 0,
+  INTRO_POINT_FAILURE_TIMEOUT     = 1,
+  INTRO_POINT_FAILURE_UNREACHABLE = 2,
+} rend_intro_point_failure_t;
+
 /** Free all storage associated with <b>data</b> */
 static INLINE void
 rend_data_free(rend_data_t *data)