@@ -83,7 +83,8 @@ struct layer {
8383 struct constraint_hash * constraints ;
8484
8585 /* Channels and nodes to disable (tal_arr). */
86- struct route_exclusion * disabled ;
86+ struct node_id * disabled_nodes ;
87+ struct short_channel_id_dir * disabled_chans ;
8788};
8889
8990struct layer * new_temp_layer (const tal_t * ctx , const char * name )
@@ -95,7 +96,8 @@ struct layer *new_temp_layer(const tal_t *ctx, const char *name)
9596 local_channel_hash_init (l -> local_channels );
9697 l -> constraints = tal (l , struct constraint_hash );
9798 constraint_hash_init (l -> constraints );
98- l -> disabled = tal_arr (l , struct route_exclusion , 0 );
99+ l -> disabled_chans = tal_arr (l , struct short_channel_id_dir , 0 );
100+ l -> disabled_nodes = tal_arr (l , struct node_id , 0 );
99101
100102 return l ;
101103}
@@ -300,19 +302,13 @@ size_t layer_trim_constraints(struct layer *layer, u64 cutoff)
300302
301303void layer_add_disabled_node (struct layer * layer , const struct node_id * node )
302304{
303- struct route_exclusion ex ;
304- ex .type = EXCLUDE_NODE ;
305- ex .u .node_id = * node ;
306- tal_arr_expand (& layer -> disabled , ex );
305+ tal_arr_expand (& layer -> disabled_nodes , * node );
307306}
308307
309308void layer_add_disabled_channel (struct layer * layer ,
310309 const struct short_channel_id_dir * scidd )
311310{
312- struct route_exclusion ex ;
313- ex .type = EXCLUDE_CHANNEL ;
314- ex .u .chan_id = * scidd ;
315- tal_arr_expand (& layer -> disabled , ex );
311+ tal_arr_expand (& layer -> disabled_chans , * scidd );
316312}
317313
318314void layer_add_localmods (const struct layer * layer ,
@@ -407,9 +403,13 @@ static void json_add_layer(struct json_stream *js,
407403
408404 json_object_start (js , fieldname );
409405 json_add_string (js , "layer" , layer -> name );
410- json_array_start (js , "disabled" );
411- for (size_t i = 0 ; i < tal_count (layer -> disabled ); i ++ )
412- json_add_route_exclusion (js , NULL , & layer -> disabled [i ]);
406+ json_array_start (js , "disabled_nodes" );
407+ for (size_t i = 0 ; i < tal_count (layer -> disabled_nodes ); i ++ )
408+ json_add_node_id (js , NULL , & layer -> disabled_nodes [i ]);
409+ json_array_end (js );
410+ json_array_start (js , "disabled_channels" );
411+ for (size_t i = 0 ; i < tal_count (layer -> disabled_chans ); i ++ )
412+ json_add_short_channel_id_dir (js , NULL , layer -> disabled_chans [i ]);
413413 json_array_end (js );
414414 json_array_start (js , "created_channels" );
415415 for (lc = local_channel_hash_first (layer -> local_channels , & lcit );
@@ -498,16 +498,13 @@ bitmap *tal_get_disabled_bitmap(const tal_t *ctx, struct route_query *rq)
498498 for (size_t i = 0 ; i < tal_count (rq -> layers ); i ++ ) {
499499 const struct layer * l = rq -> layers [i ];
500500
501- for (size_t j = 0 ; j < tal_count (l -> disabled ); j ++ ) {
502- const struct route_exclusion * ex = & l -> disabled [j ];
501+ for (size_t j = 0 ; j < tal_count (l -> disabled_chans ); j ++ )
502+ set_channel_bit (disabled , rq -> gossmap ,
503+ & l -> disabled_chans [j ]);
503504
504- if (ex -> type == EXCLUDE_CHANNEL )
505- set_channel_bit (disabled , rq -> gossmap ,
506- & ex -> u .chan_id );
507- else
508- set_node_channels_bit (disabled , rq -> gossmap ,
509- & ex -> u .node_id );
510- }
505+ for (size_t j = 0 ; j < tal_count (l -> disabled_nodes ); j ++ )
506+ set_node_channels_bit (disabled , rq -> gossmap ,
507+ & l -> disabled_nodes [j ]);
511508 }
512509 return disabled ;
513510}
0 commit comments