Untitled
unknown
c_cpp
a year ago
2.9 kB
7
Indexable
void Datacenter::serializeToStream(NativeByteBuffer *stream) {
stream->writeInt32(configVersion);
stream->writeInt32(datacenterId);
stream->writeInt32(lastInitVersion);
stream->writeInt32(lastInitMediaVersion);
size_t size;
for (int b = 0; b < 4; b++) {
std::vector<TcpAddress> *array;
switch (b) {
case 0:
array = &addressesIpv4;
break;
case 1:
array = &addressesIpv6;
break;
case 2:
array = &addressesIpv4Download;
break;
case 3:
array = &addressesIpv6Download;
break;
default:
array = nullptr;
break;
}
if (array == nullptr) {
continue;
}
stream->writeInt32((int32_t) (size = array->size()));
for (uint32_t a = 0; a < size; a++) {
stream->writeString((*array)[a].address);
stream->writeInt32((*array)[a].port);
stream->writeInt32((*array)[a].flags);
stream->writeString((*array)[a].secret);
}
}
stream->writeBool(isCdnDatacenter);
if (authKeyPerm != nullptr) {
stream->writeInt32(authKeyPerm->length);
stream->writeBytes(authKeyPerm);
} else {
stream->writeInt32(0);
}
stream->writeInt64(authKeyPermId);
if (authKeyTemp != nullptr) {
stream->writeInt32(authKeyTemp->length);
stream->writeBytes(authKeyTemp);
} else {
stream->writeInt32(0);
}
stream->writeInt64(authKeyTempId);
if (authKeyMediaTemp != nullptr) {
stream->writeInt32(authKeyMediaTemp->length);
stream->writeBytes(authKeyMediaTemp);
} else {
stream->writeInt32(0);
}
stream->writeInt64(authKeyMediaTempId);
stream->writeInt32(authorized ? 1 : 0);
size = 0;
for (uint32_t a = 0; a < serverSalts.size(); a++) {
if (serverSalts[a] != nullptr) size++;
}
stream->writeInt32((int32_t) size);
for (uint32_t a = 0; a < serverSalts.size(); a++) {
if (serverSalts[a] == nullptr) continue;
stream->writeInt32(serverSalts[a]->valid_since);
stream->writeInt32(serverSalts[a]->valid_until);
stream->writeInt64(serverSalts[a]->salt);
}
size = 0;
for (uint32_t a = 0; a < mediaServerSalts.size(); a++) {
if (mediaServerSalts[a] != nullptr) size++;
}
stream->writeInt32((int32_t) size);
for (uint32_t a = 0; a < mediaServerSalts.size(); a++) {
if (mediaServerSalts[a] == nullptr) continue;
stream->writeInt32(mediaServerSalts[a]->valid_since);
stream->writeInt32(mediaServerSalts[a]->valid_until);
stream->writeInt64(mediaServerSalts[a]->salt);
}
}
Editor is loading...
Leave a Comment