summaryrefslogtreecommitdiff
path: root/ctdb/common/system_socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'ctdb/common/system_socket.c')
-rw-r--r--ctdb/common/system_socket.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/ctdb/common/system_socket.c b/ctdb/common/system_socket.c
index a52a7947af8..7adb55040f4 100644
--- a/ctdb/common/system_socket.c
+++ b/ctdb/common/system_socket.c
@@ -789,16 +789,16 @@ int ctdb_sys_read_tcp_packet(int s, void *private_data,
int *rst,
uint16_t *window)
{
- int ret;
-#define RCVPKTSIZE 100
- char pkt[RCVPKTSIZE];
+ ssize_t nread;
+ uint8_t pkt[100]; /* Large enough for simple ACK/RST packets */
struct ether_header *eth;
struct iphdr *ip;
struct ip6_hdr *ip6;
struct tcphdr *tcp;
+ int ret;
- ret = recv(s, pkt, RCVPKTSIZE, MSG_TRUNC);
- if (ret < sizeof(*eth)+sizeof(*ip)) {
+ nread = recv(s, pkt, sizeof(pkt), MSG_TRUNC);
+ if (nread < sizeof(*eth)+sizeof(*ip)) {
return EMSGSIZE;
}
@@ -828,7 +828,7 @@ int ctdb_sys_read_tcp_packet(int s, void *private_data,
/* make sure its not a short packet */
if (offsetof(struct tcphdr, th_ack) + 4 +
- (ip->ihl*4) + sizeof(*eth) > ret) {
+ (ip->ihl*4) + sizeof(*eth) > nread) {
return EMSGSIZE;
}
/* TCP */
@@ -926,7 +926,6 @@ int ctdb_sys_read_tcp_packet(int s,
struct ip *ip;
struct ip6_hdr *ip6;
struct tcphdr *tcp;
- struct ctdb_killtcp_connection *conn;
struct pcap_pkthdr pkthdr;
const u_char *buffer;
pcap_t *pt = (pcap_t *)private_data;