2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-30 22:05:19 +00:00

ovsdb-server: Announce bound listening ports as status:bound_port.

The administrator can request that OVSDB bind any available TCP port, but
in that case there is no easy way to find out what port it has bound.  This
commit adds that information as the "bound_port" key in the "status"
column.

Signed-off-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
Ben Pfaff
2013-04-18 16:37:05 -07:00
parent 1e04fcc879
commit 798e1352d0
11 changed files with 68 additions and 21 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2008, 2009, 2010, 2012 Nicira, Inc.
* Copyright (c) 2008, 2009, 2010, 2012, 2013 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -108,6 +108,7 @@ ptcp_open(const char *name OVS_UNUSED, char *suffix, struct pstream **pstreamp,
{
struct sockaddr_in sin;
char bound_name[128];
int error;
int fd;
fd = inet_open_passive(SOCK_STREAM, suffix, -1, &sin, dscp);
@@ -117,8 +118,12 @@ ptcp_open(const char *name OVS_UNUSED, char *suffix, struct pstream **pstreamp,
sprintf(bound_name, "ptcp:%"PRIu16":"IP_FMT,
ntohs(sin.sin_port), IP_ARGS(sin.sin_addr.s_addr));
return new_fd_pstream(bound_name, fd, ptcp_accept, set_dscp, NULL,
pstreamp);
error = new_fd_pstream(bound_name, fd, ptcp_accept, set_dscp, NULL,
pstreamp);
if (!error) {
pstream_set_bound_port(*pstreamp, sin.sin_port);
}
return error;
}
static int