df-mfc: set protocol type when we know it

We'll use it for figuring out whether or not to set a utxo witness
minimum, which comes much before we were setting this field.

Now we set the protocol as soon as we can reasonably deduce it.
This commit is contained in:
niftynei
2020-11-17 19:47:48 -06:00
committed by Rusty Russell
parent e81d78ec4c
commit b01734087d

View File

@@ -545,6 +545,14 @@ connect_ok(struct command *cmd,
json_tok_full_len(features_tok),
json_tok_full(buf, features_tok));
/* Set the open protocol to use now */
#if EXPERIMENTAL_FEATURES
if (feature_negotiated(plugin_feature_set(mfc->cmd->plugin),
dest->their_features,
OPT_DUAL_FUND))
dest->protocol = OPEN_CHANNEL;
#endif /* EXPERIMENTAL_FEATURES */
dest->state = MULTIFUNDCHANNEL_CONNECTED;
return connect_done(dest);
}
@@ -961,14 +969,9 @@ perform_channel_start(struct multifundchannel_command *mfc)
/* Since v2 is now available, we branch depending
* on the capability of the peer and our feaures */
for (i = 0; i < tal_count(mfc->destinations); ++i) {
#if EXPERIMENTAL_FEATURES
if (feature_negotiated(plugin_feature_set(mfc->cmd->plugin),
mfc->destinations[i].their_features,
OPT_DUAL_FUND)) {
mfc->destinations[i].protocol = OPEN_CHANNEL;
if (mfc->destinations[i].protocol == OPEN_CHANNEL)
openchannel_init_dest(&mfc->destinations[i]);
} else
#endif /* EXPERIMENTAL_FEATURES */
else
fundchannel_start_dest(&mfc->destinations[i]);
}