comparison udp_sync.c @ 32002:86d37b0e4dbc

Use initializer to avoid leaving struct timeval half-uninitialized.
author reimar
date Wed, 08 Sep 2010 18:25:55 +0000
parents 44c3f5637b8f
children 30a84c65efa4
comparison
equal deleted inserted replaced
32001:44c3f5637b8f 32002:86d37b0e4dbc
85 int n; 85 int n;
86 86
87 static int done_init_yet = 0; 87 static int done_init_yet = 0;
88 static int sockfd; 88 static int sockfd;
89 if (!done_init_yet) { 89 if (!done_init_yet) {
90 struct timeval tv; 90 struct timeval tv = { .tv_sec = 30 };
91 struct sockaddr_in servaddr = { 0 }; 91 struct sockaddr_in servaddr = { 0 };
92 92
93 done_init_yet = 1; 93 done_init_yet = 1;
94 94
95 sockfd = socket(AF_INET, SOCK_DGRAM, 0); 95 sockfd = socket(AF_INET, SOCK_DGRAM, 0);
97 servaddr.sin_family = AF_INET; 97 servaddr.sin_family = AF_INET;
98 servaddr.sin_addr.s_addr = htonl(INADDR_ANY); 98 servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
99 servaddr.sin_port = htons(udp_port); 99 servaddr.sin_port = htons(udp_port);
100 bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)); 100 bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
101 101
102 tv.tv_sec = 30;
103 setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); 102 setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
104 103
105 } 104 }
106 105
107 set_blocking(sockfd, blocking); 106 set_blocking(sockfd, blocking);