Back to index

tor  0.2.3.18-rc
Public Member Functions | Public Attributes
microdesc_t Struct Reference

A microdescriptor is the smallest amount of information needed to build a circuit through a router. More...

#include <or.h>

Collaboration diagram for microdesc_t:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 HT_ENTRY (microdesc_t) node
 Hashtable node, used to look up the microdesc by its digest.

Public Attributes

time_t last_listed
 When was this microdescriptor last listed in a consensus document? Once a microdesc has been unlisted long enough, we can drop it.
saved_location_t saved_location: 3
 Where is this microdescriptor currently stored?
unsigned int no_save: 1
 If true, do not attempt to cache this microdescriptor on disk.
unsigned int held_in_map: 1
 If true, this microdesc has an entry in the microdesc_map.
unsigned int held_by_nodes
 Reference count: how many node_ts have a reference to this microdesc?
off_t off
 If saved_location == SAVED_IN_CACHE, this field holds the offset of the microdescriptor in the cache.
char * body
 A pointer to the encoded body of the microdescriptor.
size_t bodylen
 The length of the microdescriptor in body.
char digest [DIGEST256_LEN]
 A SHA256-digest of the microdescriptor.
crypto_pk_tonion_pkey
 As routerinfo_t.onion_pkey.
smartlist_tfamily
 As routerinfo_t.family.
short_policy_texit_policy
 Exit policy summary.

Detailed Description

A microdescriptor is the smallest amount of information needed to build a circuit through a router.

They are generated by the directory authorities, using information from the uploaded routerinfo documents. They are not self-signed, but are rather authenticated by having their hash in a signed networkstatus document.

Definition at line 1932 of file or.h.


Member Function Documentation

Hashtable node, used to look up the microdesc by its digest.


Member Data Documentation

A pointer to the encoded body of the microdescriptor.

If the saved_location is SAVED_IN_CACHE, then the body is a pointer into an mmap'd region. Otherwise, it is a malloc'd string. The string might not be NUL-terminated; take the length from bodylen.

Definition at line 1961 of file or.h.

The length of the microdescriptor in body.

Definition at line 1963 of file or.h.

A SHA256-digest of the microdescriptor.

Definition at line 1965 of file or.h.

Exit policy summary.

Definition at line 1974 of file or.h.

As routerinfo_t.family.

Definition at line 1972 of file or.h.

Reference count: how many node_ts have a reference to this microdesc?

Definition at line 1949 of file or.h.

If true, this microdesc has an entry in the microdesc_map.

Definition at line 1947 of file or.h.

When was this microdescriptor last listed in a consensus document? Once a microdesc has been unlisted long enough, we can drop it.

Definition at line 1941 of file or.h.

unsigned int microdesc_t::no_save

If true, do not attempt to cache this microdescriptor on disk.

Definition at line 1945 of file or.h.

If saved_location == SAVED_IN_CACHE, this field holds the offset of the microdescriptor in the cache.

Definition at line 1953 of file or.h.

As routerinfo_t.onion_pkey.

Definition at line 1970 of file or.h.

Where is this microdescriptor currently stored?

Definition at line 1943 of file or.h.


The documentation for this struct was generated from the following file: