crimson can only update configuration async, so we cannot let
pick_addreses() call set_val_or_die() without chaning its function
signature.
for implementing crimson-osd, what we need is only a single
pick_addresses() variant, which returns entity_addrvec_t. so we just
enable it if WITH_SEASTAR is defined instead of adding a wrapper or
reimplement all pick_addresses() variants for crimson-osd.
Signed-off-by: Kefu Chai <kchai@redhat.com>
#include "include/ipaddr.h"
#include "include/str_list.h"
#include "common/ceph_context.h"
+#ifndef WITH_SEASTAR
#include "common/config_obs.h"
+#endif
#include "common/debug.h"
#include "common/errno.h"
#include "common/numa.h"
return r;
}
+#ifndef WITH_SEASTAR
// observe this change
struct Observer : public md_config_obs_t {
const char *keys[2];
freeifaddrs(ifa);
}
+#endif // !WITH_SEASTAR
static int fill_in_one_address(
CephContext *cct,
#define CEPH_PICK_ADDRESS_PREFER_IPV4 0x40
#define CEPH_PICK_ADDRESS_DEFAULT_MON_PORTS 0x80
+#ifndef WITH_SEASTAR
/*
Pick addresses based on subnets if needed.
*/
void pick_addresses(CephContext *cct, int needs);
+#endif // !WITH_SEASTAR
+
int pick_addresses(CephContext *cct, unsigned flags, entity_addrvec_t *addrs,
int preferred_numa_node = -1);
int pick_addresses(CephContext *cct, unsigned flags, struct ifaddrs *ifa,