From b218e79206eb519940a4b8ac02f72f9e7fa3cd11 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 15 Mar 2016 17:07:31 +1030 Subject: [PATCH] daemon: make find_peer take the raw token. Cuts duplicate code. Signed-off-by: Rusty Russell --- daemon/peer.c | 48 ++++++++++++++---------------------------------- 1 file changed, 14 insertions(+), 34 deletions(-) diff --git a/daemon/peer.c b/daemon/peer.c index dbb6b385d..f40a02a9a 100644 --- a/daemon/peer.c +++ b/daemon/peer.c @@ -48,11 +48,19 @@ struct pending_cmd { }; static struct peer *find_peer(struct lightningd_state *dstate, - const struct pubkey *id) + const char *buffer, + jsmntok_t *peeridtok) { + struct pubkey peerid; struct peer *peer; + + if (!pubkey_from_hexstr(dstate->secpctx, + buffer + peeridtok->start, + peeridtok->end - peeridtok->start, &peerid)) + return NULL; + list_for_each(&dstate->peers, peer, list) { - if (peer->state != STATE_INIT && pubkey_eq(&peer->id, id)) + if (peer->state != STATE_INIT && pubkey_eq(&peer->id, &peerid)) return peer; } return NULL; @@ -1389,7 +1397,6 @@ static void json_newhtlc(struct command *cmd, { struct peer *peer; jsmntok_t *peeridtok, *msatoshistok, *expirytok, *rhashtok; - struct pubkey peerid; unsigned int expiry; struct newhtlc *newhtlc; @@ -1403,13 +1410,7 @@ static void json_newhtlc(struct command *cmd, return; } - if (!pubkey_from_hexstr(cmd->dstate->secpctx, - buffer + peeridtok->start, - peeridtok->end - peeridtok->start, &peerid)) { - command_fail(cmd, "Not a valid peerid"); - return; - } - peer = find_peer(cmd->dstate, &peerid); + peer = find_peer(cmd->dstate, buffer, peeridtok); if (!peer) { command_fail(cmd, "Could not find peer with that peerid"); return; @@ -1518,7 +1519,6 @@ static void json_fulfillhtlc(struct command *cmd, { struct peer *peer; jsmntok_t *peeridtok, *rtok; - struct pubkey peerid; struct fulfillhtlc *fulfillhtlc; if (!json_get_params(buffer, params, @@ -1529,13 +1529,7 @@ static void json_fulfillhtlc(struct command *cmd, return; } - if (!pubkey_from_hexstr(cmd->dstate->secpctx, - buffer + peeridtok->start, - peeridtok->end - peeridtok->start, &peerid)) { - command_fail(cmd, "Not a valid peerid"); - return; - } - peer = find_peer(cmd->dstate, &peerid); + peer = find_peer(cmd->dstate, buffer, peeridtok); if (!peer) { command_fail(cmd, "Could not find peer with that peerid"); return; @@ -1606,7 +1600,6 @@ static void json_failhtlc(struct command *cmd, { struct peer *peer; jsmntok_t *peeridtok, *rhashtok; - struct pubkey peerid; struct failhtlc *failhtlc; if (!json_get_params(buffer, params, @@ -1617,13 +1610,7 @@ static void json_failhtlc(struct command *cmd, return; } - if (!pubkey_from_hexstr(cmd->dstate->secpctx, - buffer + peeridtok->start, - peeridtok->end - peeridtok->start, &peerid)) { - command_fail(cmd, "Not a valid peerid"); - return; - } - peer = find_peer(cmd->dstate, &peerid); + peer = find_peer(cmd->dstate, buffer, peeridtok); if (!peer) { command_fail(cmd, "Could not find peer with that peerid"); return; @@ -1657,7 +1644,6 @@ static void json_close(struct command *cmd, { struct peer *peer; jsmntok_t *peeridtok; - struct pubkey peerid; if (!json_get_params(buffer, params, "peerid", &peeridtok, @@ -1666,13 +1652,7 @@ static void json_close(struct command *cmd, return; } - if (!pubkey_from_hexstr(cmd->dstate->secpctx, - buffer + peeridtok->start, - peeridtok->end - peeridtok->start, &peerid)) { - command_fail(cmd, "Not a valid peerid"); - return; - } - peer = find_peer(cmd->dstate, &peerid); + peer = find_peer(cmd->dstate, buffer, peeridtok); if (!peer) { command_fail(cmd, "Could not find peer with that peerid"); return;