MCPcopy Create free account
hub / github.com/bloomberg/comdb2 / read_message_header

Function read_message_header

net/net.c:1208–1254  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1206}
1207
1208static int read_message_header(netinfo_type *netinfo_ptr,
1209 host_node_type *host_node_ptr,
1210 wire_header_type *wire_header,
1211 char fromhost[256], char tohost[256])
1212{
1213 int rc;
1214 wire_header_type tmpheader;
1215 uint8_t *p_buf, *p_buf_end;
1216 int namelen;
1217
1218 rc = read_stream(netinfo_ptr, host_node_ptr, host_node_ptr->sb, &tmpheader,
1219 sizeof(wire_header_type));
1220
1221 if (rc != sizeof(wire_header_type))
1222 return 1;
1223
1224 p_buf = (uint8_t *)&tmpheader;
1225 p_buf_end = ((uint8_t *)&tmpheader + sizeof(wire_header_type));
1226
1227 net_wire_header_get(wire_header, p_buf, p_buf_end);
1228 if (wire_header->fromhost[0] == '.') {
1229 wire_header->fromhost[HOSTNAME_LEN - 1] = 0;
1230 namelen = atoi(&wire_header->fromhost[1]);
1231 if (namelen < 1 || namelen > 256)
1232 return 1;
1233 rc = read_stream(netinfo_ptr, host_node_ptr, host_node_ptr->sb,
1234 fromhost, namelen);
1235 if (rc != namelen)
1236 return 1;
1237 } else {
1238 strncpy0(fromhost, wire_header->fromhost, HOSTNAME_LEN);
1239 }
1240 if (wire_header->tohost[0] == '.') {
1241 wire_header->tohost[HOSTNAME_LEN - 1] = 0;
1242 namelen = atoi(&wire_header->tohost[1]);
1243 if (namelen < 1 || namelen > 256)
1244 return 1;
1245 rc = read_stream(netinfo_ptr, host_node_ptr, host_node_ptr->sb, tohost,
1246 namelen);
1247 if (rc != namelen)
1248 return 1;
1249 } else {
1250 strncpy0(tohost, wire_header->tohost, HOSTNAME_LEN);
1251 }
1252
1253 return 0;
1254}
1255
1256int write_heartbeat(netinfo_type *netinfo_ptr, host_node_type *host_node_ptr)
1257{

Callers 1

reader_threadFunction · 0.85

Calls 3

read_streamFunction · 0.85
net_wire_header_getFunction · 0.85
strncpy0Function · 0.50

Tested by

no test coverage detected