| 203 | } |
| 204 | |
| 205 | static void |
| 206 | json_add_routefail_info(struct json_stream *js, |
| 207 | unsigned int erring_index, |
| 208 | enum onion_wire failcode, |
| 209 | const struct node_id *erring_node, |
| 210 | const struct short_channel_id *erring_channel, |
| 211 | int channel_dir, |
| 212 | const u8 *msg) |
| 213 | { |
| 214 | const char *failcodename = onion_wire_name(failcode); |
| 215 | |
| 216 | json_add_num(js, "erring_index", erring_index); |
| 217 | json_add_num(js, "failcode", failcode); |
| 218 | /* FIXME: Better way to detect this? */ |
| 219 | if (!strstarts(failcodename, "UNKNOWN ")) |
| 220 | json_add_string(js, "failcodename", failcodename); |
| 221 | |
| 222 | if (erring_node != NULL) |
| 223 | json_add_node_id(js, "erring_node", erring_node); |
| 224 | |
| 225 | if (erring_channel != NULL) { |
| 226 | json_add_short_channel_id(js, "erring_channel", *erring_channel); |
| 227 | json_add_num(js, "erring_direction", channel_dir); |
| 228 | } |
| 229 | |
| 230 | if (msg) |
| 231 | json_add_hex_talarr(js, "raw_message", msg); |
| 232 | } |
| 233 | |
| 234 | void json_sendpay_fail_fields(struct json_stream *js, |
| 235 | const struct wallet_payment *payment, |
no test coverage detected