| 1206 | } |
| 1207 | |
| 1208 | static 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 | |
| 1256 | int write_heartbeat(netinfo_type *netinfo_ptr, host_node_type *host_node_ptr) |
| 1257 | { |
no test coverage detected