|
@ -22,9 +22,11 @@ again: |
|
|
msg = msg_dequeue(&dc->out); |
|
|
msg = msg_dequeue(&dc->out); |
|
|
if (msg) { |
|
|
if (msg) { |
|
|
int fd = msg_extract_fd(msg); |
|
|
int fd = msg_extract_fd(msg); |
|
|
if (fd >= 0) |
|
|
if (fd >= 0) { |
|
|
|
|
|
tal_free(msg); |
|
|
return io_send_fd(conn, fd, true, |
|
|
return io_send_fd(conn, fd, true, |
|
|
daemon_conn_write_next, dc); |
|
|
daemon_conn_write_next, dc); |
|
|
|
|
|
} |
|
|
return io_write_wire(conn, take(msg), daemon_conn_write_next, |
|
|
return io_write_wire(conn, take(msg), daemon_conn_write_next, |
|
|
dc); |
|
|
dc); |
|
|
} else if (dc->msg_queue_cleared_cb) { |
|
|
} else if (dc->msg_queue_cleared_cb) { |
|
@ -52,6 +54,7 @@ bool daemon_conn_sync_flush(struct daemon_conn *dc) |
|
|
while ((msg = msg_dequeue(&dc->out)) != NULL) { |
|
|
while ((msg = msg_dequeue(&dc->out)) != NULL) { |
|
|
int fd = msg_extract_fd(msg); |
|
|
int fd = msg_extract_fd(msg); |
|
|
if (fd >= 0) { |
|
|
if (fd >= 0) { |
|
|
|
|
|
tal_free(msg); |
|
|
if (!fdpass_send(daemon_fd, fd)) |
|
|
if (!fdpass_send(daemon_fd, fd)) |
|
|
break; |
|
|
break; |
|
|
} else if (!wire_sync_write(daemon_fd, take(msg))) |
|
|
} else if (!wire_sync_write(daemon_fd, take(msg))) |
|
|