MCPcopy Create free account
hub / github.com/ceph/ceph / decode

Function decode

src/msg/msg_types.h:200–230  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

198#endif
199}
200static inline void decode(sockaddr_storage& a,
201 ceph::buffer::list::const_iterator& bl) {
202#if defined(__linux__)
203 ceph::decode_raw(a, bl);
204 a.ss_family = ntohs(a.ss_family);
205#elif defined(__FreeBSD__) || defined(__APPLE__)
206 ceph_sockaddr_storage ss{};
207 decode(ss, bl);
208 auto src = (unsigned char const *)&ss;
209 auto dst = (unsigned char *)&a;
210 a.ss_len = 0;
211 dst += sizeof(a.ss_len);
212 a.ss_family = ss.ss_family;
213 src += sizeof(ss.ss_family);
214 dst += sizeof(a.ss_family);
215 auto const copy_size = std::min((unsigned char*)(&ss + 1) - src,
216 (unsigned char*)(&a + 1) - dst);
217 ::memcpy(dst, src, copy_size);
218#elif defined(_WIN32)
219 ceph_sockaddr_storage ss{};
220 decode(ss, bl);
221 ::memcpy(&a, &ss, std::min(sizeof(ss), sizeof(a)));
222 if (a.ss_family == AF_INET6_LINUX) {
223 a.ss_family = AF_INET6;
224 }
225#else
226 ceph_sockaddr_storage ss{};
227 decode(ss, bl);
228 ::memcpy(&a, &ss, std::min(sizeof(ss), sizeof(a)));
229#endif
230}
231
232/*
233 * an entity's network address.

Callers 13

decodeMethod · 0.70
decodeMethod · 0.70
decode_traceMethod · 0.70
decode_otel_traceMethod · 0.70
decode_messageFunction · 0.70
decodeMethod · 0.70
disasm_first_crc_rev1Method · 0.50
_handle_peer_bannerMethod · 0.50
handle_client_bannerMethod · 0.50

Calls 1

decode_rawFunction · 0.85

Tested by

no test coverage detected