Skip to content

Commit

Permalink
Change: boreas. Use sequence number 1. (#813)
Browse files Browse the repository at this point in the history
* Change: boreas. Use sequence number 1 and a random ping ID

Close #812

Jira: SC-1064

* Fix libhiredis version for docker testing
  • Loading branch information
jjnicola authored Apr 22, 2024
1 parent 541442b commit 56f65c1
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .docker/prod-testing.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ RUN apt-get update && \
libgnutls30 \
libuuid1 \
libssh-gcrypt-4 \
libhiredis0.14 \
libhiredis1.1.0 \
libhiredis-dev \
libxml2 \
libpcap0.8 \
Expand Down
16 changes: 14 additions & 2 deletions boreas/ping.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,16 @@ struct pseudohdr
struct tcphdr tcpheader;
};

// Return a random uint16 avoiding the 0.
static uint16_t
get_echo_id (void)
{
uint16_t upper_bound = 65534;
uint16_t lower_bound = 1;

return rand () % (upper_bound - lower_bound + 1) + lower_bound;
}

/**
* @brief Get the size of the socket send buffer.
*
Expand Down Expand Up @@ -144,8 +154,8 @@ send_icmp_v6 (int soc, struct in6_addr *dst, int type)
icmp6 = (struct icmp6_hdr *) sendbuf;
icmp6->icmp6_type = type; /* ND_NEIGHBOR_SOLICIT or ICMP6_ECHO_REQUEST */
icmp6->icmp6_code = 0;
icmp6->icmp6_id = 234;
icmp6->icmp6_seq = 0;
icmp6->icmp6_id = get_echo_id ();
icmp6->icmp6_seq = 0x0100;

memset ((icmp6 + 1), 0xa5, datalen);
gettimeofday ((struct timeval *) (icmp6 + 1), NULL); // only for testing
Expand Down Expand Up @@ -197,6 +207,8 @@ send_icmp_v4 (int soc, struct in_addr *dst)
icmp = (struct icmphdr *) sendbuf;
icmp->type = ICMP_ECHO;
icmp->code = 0;
icmp->un.echo.id = get_echo_id ();
icmp->un.echo.sequence = 0x0100;

len = 8 + datalen;
icmp->checksum = 0;
Expand Down

0 comments on commit 56f65c1

Please sign in to comment.