mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-03-01 17:47:30 +01:00
gossipwith: add ability to send message.
Just cmdline for now, rather than a proper stdin io loop. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
0925daa087
commit
47f5bc4deb
1 changed files with 13 additions and 4 deletions
|
@ -104,7 +104,7 @@ static struct io_plan *handshake_success(struct io_conn *conn,
|
||||||
const struct pubkey *them,
|
const struct pubkey *them,
|
||||||
const struct wireaddr_internal *addr,
|
const struct wireaddr_internal *addr,
|
||||||
const struct crypto_state *orig_cs,
|
const struct crypto_state *orig_cs,
|
||||||
void *unused)
|
char **args)
|
||||||
{
|
{
|
||||||
u8 *msg;
|
u8 *msg;
|
||||||
struct crypto_state cs = *orig_cs;
|
struct crypto_state cs = *orig_cs;
|
||||||
|
@ -122,6 +122,15 @@ static struct io_plan *handshake_success(struct io_conn *conn,
|
||||||
/* Ignore their init message. */
|
/* Ignore their init message. */
|
||||||
tal_free(sync_crypto_read(NULL, &cs, conn->fd));
|
tal_free(sync_crypto_read(NULL, &cs, conn->fd));
|
||||||
|
|
||||||
|
/* Did they ask us to send any messages? Do so now. */
|
||||||
|
while (*args) {
|
||||||
|
u8 *m = tal_hexdata(NULL, *args, strlen(*args));
|
||||||
|
if (!m)
|
||||||
|
errx(1, "Invalid hexdata '%s'", *args);
|
||||||
|
sync_crypto_write(&cs, conn->fd, take(m));
|
||||||
|
args++;
|
||||||
|
}
|
||||||
|
|
||||||
/* Now write out whatever we get. */
|
/* Now write out whatever we get. */
|
||||||
while ((msg = sync_crypto_read(NULL, &cs, conn->fd)) != NULL) {
|
while ((msg = sync_crypto_read(NULL, &cs, conn->fd)) != NULL) {
|
||||||
be16 len = cpu_to_be16(tal_bytelen(msg));
|
be16 len = cpu_to_be16(tal_bytelen(msg));
|
||||||
|
@ -157,12 +166,12 @@ int main(int argc, char *argv[])
|
||||||
&max_messages,
|
&max_messages,
|
||||||
"Terminate after reading this many messages (> 0)");
|
"Terminate after reading this many messages (> 0)");
|
||||||
opt_register_noarg("--help|-h", opt_usage_and_exit,
|
opt_register_noarg("--help|-h", opt_usage_and_exit,
|
||||||
"id@addr[:port]\n"
|
"id@addr[:port] [hex-msg-tosend...]\n"
|
||||||
"Connect to a lightning peer and relay gossip messages from it",
|
"Connect to a lightning peer and relay gossip messages from it",
|
||||||
"Print this message.");
|
"Print this message.");
|
||||||
|
|
||||||
opt_parse(&argc, argv, opt_log_stderr_exit);
|
opt_parse(&argc, argv, opt_log_stderr_exit);
|
||||||
if (argc != 2)
|
if (argc < 2)
|
||||||
opt_usage_exit_fail("Need an id@addr to connect to");
|
opt_usage_exit_fail("Need an id@addr to connect to");
|
||||||
at = strchr(argv[1], '@');
|
at = strchr(argv[1], '@');
|
||||||
if (!at)
|
if (!at)
|
||||||
|
@ -214,7 +223,7 @@ int main(int argc, char *argv[])
|
||||||
if (connect(conn->fd, ai->ai_addr, ai->ai_addrlen) != 0)
|
if (connect(conn->fd, ai->ai_addr, ai->ai_addrlen) != 0)
|
||||||
err(1, "Connecting to %s", at+1);
|
err(1, "Connecting to %s", at+1);
|
||||||
|
|
||||||
initiator_handshake(conn, &us, &them, &addr, handshake_success, NULL);
|
initiator_handshake(conn, &us, &them, &addr, handshake_success, argv+2);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue