}
void encode_payload(uint64_t features) override {
- if (!HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ header.version = HEAD_VERSION;
+ } else {
header.version = 4;
// for kraken+jewel only
::encode(missing, payload);
::encode(query_epoch, payload);
if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ header.version = HEAD_VERSION;
::encode(past_intervals, payload);
} else {
header.version = 4;
const char *get_type_name() const override { return "PGnot"; }
void encode_payload(uint64_t features) override {
- if (!HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ header.version = HEAD_VERSION;
+ } else {
// for jewel+kraken compat only
header.version = 5;
}
void encode_payload(uint64_t features) override {
- if (!HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ header.version = HEAD_VERSION;
+ } else {
// for kraken/jewel only
header.version = 3;
::encode(epoch, payload);
const char *get_type_name() const override { return "PGrm"; }
void encode_payload(uint64_t features) override {
- if (!HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ header.version = HEAD_VERSION;
+ } else {
// for jewel+kraken
header.version = 2;
::encode(epoch, payload);
::encode(map_epoch, payload);
// with luminous, we drop peer_as_of_epoch and peer_stat
- if (!HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ header.version = HEAD_VERSION;
+ ::encode(op, payload);
+ } else {
epoch_t dummy_epoch = {};
osd_peer_stat_t dummy_stat = {};
header.version = 3;
::encode(dummy_epoch, payload);
::encode(op, payload);
::encode(dummy_stat, payload);
- } else {
- ::encode(op, payload);
}
::encode(stamp, payload);
size_t s = 0;
void encode_payload(uint64_t features) override {
::encode(map_epoch, payload);
if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ header.version = HEAD_VERSION;
::encode(min_epoch, payload);
encode_trace(payload, features);
} else {
void encode_payload(uint64_t features) override {
::encode(map_epoch, payload);
if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+ header.version = HEAD_VERSION;
::encode(min_epoch, payload);
encode_trace(payload, features);
} else {