summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjorn Andersson <bjorn.andersson@linaro.org>2017-06-05 17:17:51 -0700
committerBjorn Andersson <bjorn.andersson@linaro.org>2017-06-05 17:17:51 -0700
commitccbf77b7843820e19b1e167ae7c96554b34d6118 (patch)
treeb3b69c9985e32d97fe70342ea6deb12a6e8c34b2
parent7330b7ae54cbd9bc81718b85bba5a467bbc591cb (diff)
ns: Add static bcast_sq to context
A number of operations broadcasts messages, so store a static broadcast socketaddr in the context to facilitate this. Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
-rw-r--r--src/ns.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/ns.c b/src/ns.c
index 665856e..cd311c3 100644
--- a/src/ns.c
+++ b/src/ns.c
@@ -69,6 +69,8 @@ struct context {
int ns_sock;
int local_node;
+
+ struct sockaddr_qrtr bcast_sq;
};
struct server_filter {
@@ -373,20 +375,16 @@ out:
waiter_ticket_clear(tkt);
}
-static int say_hello(int sock)
+static int say_hello(struct context *ctx)
{
- struct sockaddr_qrtr sq;
struct ctrl_pkt pkt;
int rc;
- sq.sq_family = AF_QIPCRTR;
- sq.sq_node = QRTRADDR_ANY;
- sq.sq_port = QRTR_CTRL_PORT;
-
memset(&pkt, 0, sizeof(pkt));
pkt.cmd = cpu_to_le32(QRTR_CMD_HELLO);
- rc = sendto(sock, &pkt, sizeof(pkt), 0, (void *)&sq, sizeof(sq));
+ rc = sendto(ctx->ctrl_sock, &pkt, sizeof(pkt), 0,
+ (struct sockaddr *)&ctx->bcast_sq, sizeof(ctx->bcast_sq));
if (rc < 0)
return rc;
@@ -617,7 +615,11 @@ int main(int argc, char **argv)
ctx.local_node = sq.sq_node;
- rc = say_hello(ctx.ctrl_sock);
+ ctx.bcast_sq.sq_family = AF_QIPCRTR;
+ ctx.bcast_sq.sq_node = QRTRADDR_ANY;
+ ctx.bcast_sq.sq_port = QRTR_CTRL_PORT;
+
+ rc = say_hello(&ctx);
if (rc)
err(1, "unable to say hello");