MCPcopy Create free account
hub / github.com/ElementsProject/lightning / gather_argsv

Function gather_argsv

plugins/bcli.c:73–120  ·  view source on GitHub ↗

If stdinargs is non-NULL, that is where we put additional args */

Source from the content-addressed store, hash-verified

71
72/* If stdinargs is non-NULL, that is where we put additional args */
73static const char **gather_argsv(const tal_t *ctx, const char ***stdinargs, const char *cmd, va_list ap)
74{
75 const char **args = tal_arr(ctx, const char *, 1);
76 const char *arg;
77
78 args[0] = bitcoind->cli ? bitcoind->cli : chainparams->cli;
79 if (chainparams->cli_args)
80 add_arg(&args, chainparams->cli_args);
81 if (bitcoind->datadir)
82 add_arg(&args, tal_fmt(args, "-datadir=%s", bitcoind->datadir));
83 if (bitcoind->rpcclienttimeout) {
84 /* Use the maximum value of rpcclienttimeout and retry_timeout to avoid
85 the bitcoind backend hanging for too long. */
86 if (bitcoind->retry_timeout &&
87 bitcoind->retry_timeout > bitcoind->rpcclienttimeout)
88 bitcoind->rpcclienttimeout = bitcoind->retry_timeout;
89
90 add_arg(&args,
91 tal_fmt(args, "-rpcclienttimeout=%"PRIu64, bitcoind->rpcclienttimeout));
92 }
93 if (bitcoind->rpcconnect)
94 add_arg(&args,
95 tal_fmt(args, "-rpcconnect=%s", bitcoind->rpcconnect));
96 if (bitcoind->rpcport)
97 add_arg(&args,
98 tal_fmt(args, "-rpcport=%s", bitcoind->rpcport));
99 if (bitcoind->rpcuser)
100 add_arg(&args, tal_fmt(args, "-rpcuser=%s", bitcoind->rpcuser));
101 if (bitcoind->rpcpass)
102 // Always pipe the rpcpassword via stdin. Do not pass it using an
103 // `-rpcpassword` argument - secrets in arguments can leak when listing
104 // system processes.
105 add_arg(&args, "-stdinrpcpass");
106 /* To avoid giant command lines, we use -stdin (avail since bitcoin 0.13) */
107 if (stdinargs)
108 add_arg(&args, "-stdin");
109
110 add_arg(&args, cmd);
111 while ((arg = va_arg(ap, char *)) != NULL) {
112 if (stdinargs)
113 add_arg(stdinargs, arg);
114 else
115 add_arg(&args, arg);
116 }
117 add_arg(&args, NULL);
118
119 return args;
120}
121
122static LAST_ARG_NULL const char **
123gather_args(const tal_t *ctx, const char ***stdinargs, const char *cmd, ...)

Callers 2

gather_argsFunction · 0.85
run_bitcoin_clivFunction · 0.85

Calls 1

add_argFunction · 0.85

Tested by

no test coverage detected