| 457 | } |
| 458 | |
| 459 | static bool handle_version(struct subd *sd, const u8 *msg) |
| 460 | { |
| 461 | char *ver; |
| 462 | |
| 463 | if (!fromwire_status_version(msg, msg, &ver)) |
| 464 | return false; |
| 465 | |
| 466 | if (!streq(ver, version())) { |
| 467 | log_broken(sd->log, "version '%s' not '%s': restarting", |
| 468 | ver, version()); |
| 469 | sd->ld->try_reexec = true; |
| 470 | /* Return us to toplevel lightningd.c */ |
| 471 | log_debug(sd->ld->log, "io_break: %s", __func__); |
| 472 | io_break(sd->ld); |
| 473 | return false; |
| 474 | } |
| 475 | |
| 476 | sd->rcvd_version = true; |
| 477 | /* In case there are outgoing msgs, we can send now. */ |
| 478 | msg_wake(sd->outq); |
| 479 | |
| 480 | return true; |
| 481 | } |
| 482 | |
| 483 | static struct io_plan *sd_msg_read(struct io_conn *conn, struct subd *sd) |
| 484 | { |
no test coverage detected