const char *source,
const char **msg)
{
- int r=ROUTER_ADDED_NOTIFY_GENERATOR; /* highest possible return value. */
- int r_tmp;
+ was_router_added_t r, r_tmp;
const char *msg_out;
smartlist_t *list;
const char *s;
int general = purpose == ROUTER_PURPOSE_GENERAL;
tor_assert(msg);
+ r=ROUTER_ADDED_NOTIFY_GENERATOR; /*Least severe return value. */
+
format_iso_time(time_buf, now);
if (tor_snprintf(annotation_buf, sizeof(annotation_buf),
"@uploaded-at %s\n"
if (! *msg) {
if (!n_parsed) {
*msg = "No descriptors found in your POST.";
- if (r > -1)
- r = -1;
+ if (WRA_WAS_ADDED(r))
+ r = ROUTER_WAS_NOT_NEW;
} else {
*msg = "(no message)";
}
typedef enum was_router_added_t {
ROUTER_ADDED_SUCCESSFULLY = 0,
ROUTER_ADDED_NOTIFY_GENERATOR = 1,
- ROUTER_WAS_NOT_NEW = -1,
- ROUTER_NOT_IN_CONSENSUS = -2,
- ROUTER_NOT_IN_CONSENSUS_OR_NETWORKSTATUS = -3,
- ROUTER_AUTHDIR_REJECTS = -4,
+ ROUTER_BAD_EI = -1,
+ ROUTER_WAS_NOT_NEW = -2,
+ ROUTER_NOT_IN_CONSENSUS = -3,
+ ROUTER_NOT_IN_CONSENSUS_OR_NETWORKSTATUS = -4,
+ ROUTER_AUTHDIR_REJECTS = -5,
} was_router_added_t;
static int WRA_WAS_ADDED(was_router_added_t s);
const char **msg,
int from_cache,
int from_fetch);
-int router_add_extrainfo_to_routerlist(extrainfo_t *ei, const char **msg,
+was_router_added_t router_add_extrainfo_to_routerlist(
+ extrainfo_t *ei, const char **msg,
int from_cache, int from_fetch);
void routerlist_remove_old_routers(void);
int router_load_single_router(const char *s, uint8_t purpose, int cache,
* as for router_add_to_routerlist(). Return true iff we actually inserted
* it.
*/
-int
+was_router_added_t
router_add_extrainfo_to_routerlist(extrainfo_t *ei, const char **msg,
int from_cache, int from_fetch)
{
int inserted;
(void)from_fetch;
if (msg) *msg = NULL;
+ /*XXXX021 Do something with msg */
inserted = extrainfo_insert(router_get_routerlist(), ei);
signed_desc_append_to_journal(&ei->cache_info,
&routerlist->extrainfo_store);
- return inserted;
+ if (inserted)
+ return ROUTER_ADDED_SUCCESSFULLY;
+ else
+ return ROUTER_BAD_EI;
}
/** Sorting helper: return <0, 0, or >0 depending on whether the
log_info(LD_DIR, "%d elements to add", smartlist_len(extrainfo_list));
SMARTLIST_FOREACH(extrainfo_list, extrainfo_t *, ei, {
- int added =
+ was_router_added_t added =
router_add_extrainfo_to_routerlist(ei, &msg, from_cache, !from_cache);
- if (added && requested_fingerprints) {
+ if (WRA_WAS_ADDED(added) && requested_fingerprints) {
char fp[HEX_DIGEST_LEN+1];
base16_encode(fp, sizeof(fp), descriptor_digests ?
ei->cache_info.signed_descriptor_digest :