pgpool2.git / summary / log / commit / refs

commit    8d1e8dce129743d982702e745daf2ccd4e6bda11
Author:   Yugo Nagata <nagata@sraoss.co.jp>
Date:     Fri Nov 01 11:20:53 2013 +0000

    Fix to pass big parameter by pointer instead of by value at some function


src/include/watchdog/wd_ext.h | 10 +++++----- src/watchdog/watchdog.c | 8 ++++---- src/watchdog/wd_child.c | 2 +- src/watchdog/wd_heartbeat.c | 34 +++++++++++++++++----------------- src/watchdog/wd_packet.c | 6 +++--- 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/include/watchdog/wd_ext.h b/src/include/watchdog/wd_ext.h index 5f47dcab4..af87d6e6f 100644 --- a/src/include/watchdog/wd_ext.h +++ b/src/include/watchdog/wd_ext.h @@ -81,7 +81,7 @@ extern int wd_set_node_mask (WD_PACKET_NO packet_no, int *node_id_set, int count extern int wd_send_packet_no(WD_PACKET_NO packet_no ); extern int wd_send_lock_packet(WD_PACKET_NO packet_no, WD_LOCK_ID lock_id); extern void wd_calc_hash(const char *str, int len, char *buf); -int wd_packet_to_string(WdPacket pkt, char *str, int maxlen); +int wd_packet_to_string(WdPacket *pkt, char *str, int maxlen); /* wd_ping.c */ extern int wd_is_upper_ok(char * server_list); @@ -99,12 +99,12 @@ extern int wd_check_heartbeat(WdInfo * pgpool); extern int wd_ping_pgpool(WdInfo * pgpool); /* wd_hearbeat.c */ -extern int wd_create_hb_send_socket(WdHbIf hb_if); -extern int wd_create_hb_recv_socket(WdHbIf hb_if); +extern int wd_create_hb_send_socket(WdHbIf * hb_if); +extern int wd_create_hb_recv_socket(WdHbIf * hb_if); extern int wd_hb_send(int sock, WdHbPacket * pkt, int len, const char * destination, const int dest_port); extern int wd_hb_recv(int sock, WdHbPacket * pkt); -extern pid_t wd_hb_receiver(int fork_wait_time, WdHbIf hb_if); -extern pid_t wd_hb_sender(int fork_wait_time, WdHbIf hb_if); +extern pid_t wd_hb_receiver(int fork_wait_time, WdHbIf * hb_if); +extern pid_t wd_hb_sender(int fork_wait_time, WdHbIf * hb_if); /* wd_interlock.c */ extern int wd_init_interlock(void); diff --git a/src/watchdog/watchdog.c b/src/watchdog/watchdog.c index 1cb5f2bd0..c858910ba 100644 --- a/src/watchdog/watchdog.c +++ b/src/watchdog/watchdog.c @@ -151,7 +151,7 @@ wd_main(int fork_wait_time) for (i = 0; i < pool_config->num_hb_if; i++) { /* heartbeat receiver process */ - hb_receiver_pid[i] = wd_hb_receiver(1, pool_config->hb_if[i]); + hb_receiver_pid[i] = wd_hb_receiver(1, &(pool_config->hb_if[i])); if (hb_receiver_pid[i] < 0 ) { pool_error("launch wd_hb_receiver failed"); @@ -159,7 +159,7 @@ wd_main(int fork_wait_time) } /* heartbeat sender process */ - hb_sender_pid[i] = wd_hb_sender(1, pool_config->hb_if[i]); + hb_sender_pid[i] = wd_hb_sender(1, &(pool_config->hb_if[i])); if (hb_sender_pid[i] < 0 ) { pool_error("launch wd_hb_sender failed"); @@ -314,7 +314,7 @@ wd_reaper_watchdog(pid_t pid, int status) else pool_debug("watchdog heartbeat receiver process %d exits with status %d", pid, status); - hb_receiver_pid[i] = wd_hb_receiver(1, pool_config->hb_if[i]); + hb_receiver_pid[i] = wd_hb_receiver(1, &(pool_config->hb_if[i])); if (hb_receiver_pid[i] < 0) { @@ -334,7 +334,7 @@ wd_reaper_watchdog(pid_t pid, int status) else pool_debug("watchdog heartbeat sender process %d exits with status %d", pid, status); - hb_sender_pid[i] = wd_hb_sender(1, pool_config->hb_if[i]); + hb_sender_pid[i] = wd_hb_sender(1, &(pool_config->hb_if[i])); if (hb_sender_pid[i] < 0) { diff --git a/src/watchdog/wd_child.c b/src/watchdog/wd_child.c index 148cc68cc..c505a1e76 100644 --- a/src/watchdog/wd_child.c +++ b/src/watchdog/wd_child.c @@ -152,7 +152,7 @@ wd_send_response(int sock, WdPacket * recv_pack) if (strlen(pool_config->wd_authkey)) { /* calculate hash from packet */ - pack_str_len = wd_packet_to_string(*recv_pack, pack_str, sizeof(pack_str)); + pack_str_len = wd_packet_to_string(recv_pack, pack_str, sizeof(pack_str)); wd_calc_hash(pack_str, pack_str_len, hash); if (strcmp(recv_pack->hash, hash)) diff --git a/src/watchdog/wd_heartbeat.c b/src/watchdog/wd_heartbeat.c index efd66d799..59d8c5559 100644 --- a/src/watchdog/wd_heartbeat.c +++ b/src/watchdog/wd_heartbeat.c @@ -54,13 +54,13 @@ static RETSIGTYPE hb_sender_exit(int sig); static RETSIGTYPE hb_receiver_exit(int sig); -static int hton_wd_hb_packet(WdHbPacket * to, WdHbPacket * from); -static int ntoh_wd_hb_packet(WdHbPacket * to, WdHbPacket * from); -static int packet_to_string_hb(WdHbPacket pkt, char *str, int maxlen); +static int hton_wd_hb_packet(WdHbPacket *to, WdHbPacket *from); +static int ntoh_wd_hb_packet(WdHbPacket *to, WdHbPacket *from); +static int packet_to_string_hb(WdHbPacket *pkt, char * str, int maxlen); /* create socket for sending heartbeat */ int -wd_create_hb_send_socket(WdHbIf hb_if) +wd_create_hb_send_socket(WdHbIf *hb_if) { int sock; int tos; @@ -84,14 +84,14 @@ wd_create_hb_send_socket(WdHbIf hb_if) return -1; } - if (hb_if.if_name[0] != '\0') + if (hb_if->if_name[0] != '\0') { #if defined(SO_BINDTODEVICE) { if (geteuid() == 0) /* check root privileges */ { struct ifreq i; - strlcpy(i.ifr_name, hb_if.if_name, sizeof(i.ifr_name)); + strlcpy(i.ifr_name, hb_if->if_name, sizeof(i.ifr_name)); if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, &i, sizeof(i)) == -1) { @@ -136,7 +136,7 @@ wd_create_hb_send_socket(WdHbIf hb_if) /* create socket for receiving heartbeat */ int -wd_create_hb_recv_socket(WdHbIf hb_if) +wd_create_hb_recv_socket(WdHbIf *hb_if) { struct sockaddr_in addr; int sock; @@ -166,14 +166,14 @@ wd_create_hb_recv_socket(WdHbIf hb_if) return -1; } - if (hb_if.if_name[0] != '\0') + if (hb_if->if_name[0] != '\0') { #if defined(SO_BINDTODEVICE) { if (geteuid() == 0) /* check root privileges */ { struct ifreq i; - strlcpy(i.ifr_name, hb_if.if_name, sizeof(i.ifr_name)); + strlcpy(i.ifr_name, hb_if->if_name, sizeof(i.ifr_name)); if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, &i, sizeof(i)) == -1) { @@ -311,7 +311,7 @@ wd_hb_recv(int sock, WdHbPacket * pkt) /* fork heartbeat receiver child */ pid_t -wd_hb_receiver(int fork_wait_time, WdHbIf hb_if) +wd_hb_receiver(int fork_wait_time, WdHbIf *hb_if) { int sock; pid_t pid = 0; @@ -372,7 +372,7 @@ wd_hb_receiver(int fork_wait_time, WdHbIf hb_if) if (strlen(pool_config->wd_authkey)) { /* calculate hash from packet */ - pack_str_len = packet_to_string_hb(pkt, pack_str, sizeof(pack_str)); + pack_str_len = packet_to_string_hb(&pkt, pack_str, sizeof(pack_str)); wd_calc_hash(pack_str, pack_str_len, buf); if (strcmp(pkt.hash, buf)) @@ -422,7 +422,7 @@ wd_hb_receiver(int fork_wait_time, WdHbIf hb_if) /* fork heartbeat sender child */ pid_t -wd_hb_sender(int fork_wait_time, WdHbIf hb_if) +wd_hb_sender(int fork_wait_time, WdHbIf *hb_if) { int sock; pid_t pid = 0; @@ -482,13 +482,13 @@ wd_hb_sender(int fork_wait_time, WdHbIf hb_if) if (strlen(pool_config->wd_authkey)) { /* calculate hash from packet */ - pack_str_len = packet_to_string_hb(pkt, pack_str, sizeof(pack_str)); + pack_str_len = packet_to_string_hb(&pkt, pack_str, sizeof(pack_str)); wd_calc_hash(pack_str, pack_str_len, pkt.hash); } /* send heartbeat signal */ - wd_hb_send(sock, &pkt, sizeof(pkt), hb_if.addr, hb_if.dest_port); - pool_debug("wd_hb_sender: send heartbeat signal to %s:%d", hb_if.addr, hb_if.dest_port); + wd_hb_send(sock, &pkt, sizeof(pkt), hb_if->addr, hb_if->dest_port); + pool_debug("wd_hb_sender: send heartbeat signal to %s:%d", hb_if->addr, hb_if->dest_port); sleep(pool_config->wd_heartbeat_keepalive); } @@ -567,11 +567,11 @@ ntoh_wd_hb_packet(WdHbPacket * to, WdHbPacket * from) /* convert packet to string and return length of the string */ static int -packet_to_string_hb(WdHbPacket pkt, char *str, int maxlen) +packet_to_string_hb(WdHbPacket *pkt, char *str, int maxlen) { int len; len = snprintf(str, maxlen, "status=%d tv_sec=%ld tv_usec=%ld from=%s", - pkt.status, pkt.send_time.tv_sec, pkt.send_time.tv_usec, pkt.from); + pkt->status, pkt->send_time.tv_sec, pkt->send_time.tv_usec, pkt->from); return len; } diff --git a/src/watchdog/wd_packet.c b/src/watchdog/wd_packet.c index f9fa29eff..2dd6df315 100644 --- a/src/watchdog/wd_packet.c +++ b/src/watchdog/wd_packet.c @@ -505,7 +505,7 @@ wd_thread_negotiation(void * arg) if (strlen(pool_config->wd_authkey)) { /* calculate hash from packet */ - pack_str_len = wd_packet_to_string(*(thread_arg->packet), pack_str, sizeof(pack_str)); + pack_str_len = wd_packet_to_string(thread_arg->packet, pack_str, sizeof(pack_str)); wd_calc_hash(pack_str, pack_str_len, thread_arg->packet->hash); } @@ -1123,12 +1123,12 @@ wd_calc_hash(const char *str, int len, char *buf) } int -wd_packet_to_string(WdPacket pkt, char *str, int maxlen) +wd_packet_to_string(WdPacket *pkt, char *str, int maxlen) { int len; len = snprintf(str, maxlen, "no=%d tv_sec=%ld tv_usec=%ld", - pkt.packet_no, pkt.send_time.tv_sec, pkt.send_time.tv_usec); + pkt->packet_no, pkt->send_time.tv_sec, pkt->send_time.tv_usec); return len; } [parent: 0f8d5c918112]