aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-03-17 20:30:24 -0700
committerPaul Eggert2011-03-17 20:30:24 -0700
commit401bf9b4708c19d3c86c888ce482014ca559a5b8 (patch)
treed69e75d88c70f4c5d3da2501b4afec51cf51d563 /src
parenta3a6c54ec72118e8d22d2ecd608df5193c8926a3 (diff)
downloademacs-401bf9b4708c19d3c86c888ce482014ca559a5b8.tar.gz
emacs-401bf9b4708c19d3c86c888ce482014ca559a5b8.zip
process.c: Use socklen_t, not int, for socket lengths.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog10
-rw-r--r--src/config.in3
-rw-r--r--src/process.c13
3 files changed, 20 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index d97969c24db..6eaa52ee285 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,13 @@
12011-03-18 Paul Eggert <eggert@cs.ucla.edu>
2
3 * process.c (Fmake_network_process): Use socklen_t, not int,
4 where POSIX says socklen_t is required in portable programs.
5 This fixes a porting bug on hosts like 64-bit HP-UX, where
6 socklen_t is wider than int.
7 (Fmake_network_process, server_accept_connection):
8 (wait_reading_process_output, read_process_output):
9 Likewise.
10
12011-03-17 Paul Eggert <eggert@cs.ucla.edu> 112011-03-17 Paul Eggert <eggert@cs.ucla.edu>
2 12
3 Fix more problems found by GCC 4.5.2's static checks. 13 Fix more problems found by GCC 4.5.2's static checks.
diff --git a/src/config.in b/src/config.in
index fbd3ee9338d..8b7312faaaa 100644
--- a/src/config.in
+++ b/src/config.in
@@ -1209,6 +1209,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
1209/* Define to `unsigned int' if <sys/types.h> does not define. */ 1209/* Define to `unsigned int' if <sys/types.h> does not define. */
1210#undef size_t 1210#undef size_t
1211 1211
1212/* type to use in place of socklen_t if not defined */
1213#undef socklen_t
1214
1212/* Define to any substitute for sys_siglist. */ 1215/* Define to any substitute for sys_siglist. */
1213#undef sys_siglist 1216#undef sys_siglist
1214 1217
diff --git a/src/process.c b/src/process.c
index c9b420ab2ae..5a410c1e924 100644
--- a/src/process.c
+++ b/src/process.c
@@ -3467,7 +3467,7 @@ usage: (make-network-process &rest ARGS) */)
3467 if (EQ (service, Qt)) 3467 if (EQ (service, Qt))
3468 { 3468 {
3469 struct sockaddr_in sa1; 3469 struct sockaddr_in sa1;
3470 int len1 = sizeof (sa1); 3470 socklen_t len1 = sizeof (sa1);
3471 if (getsockname (s, (struct sockaddr *)&sa1, &len1) == 0) 3471 if (getsockname (s, (struct sockaddr *)&sa1, &len1) == 0)
3472 { 3472 {
3473 ((struct sockaddr_in *)(lres->ai_addr))->sin_port = sa1.sin_port; 3473 ((struct sockaddr_in *)(lres->ai_addr))->sin_port = sa1.sin_port;
@@ -3514,7 +3514,8 @@ usage: (make-network-process &rest ARGS) */)
3514 /* Unlike most other syscalls connect() cannot be called 3514 /* Unlike most other syscalls connect() cannot be called
3515 again. (That would return EALREADY.) The proper way to 3515 again. (That would return EALREADY.) The proper way to
3516 wait for completion is select(). */ 3516 wait for completion is select(). */
3517 int sc, len; 3517 int sc;
3518 socklen_t len;
3518 SELECT_TYPE fdset; 3519 SELECT_TYPE fdset;
3519 retry_select: 3520 retry_select:
3520 FD_ZERO (&fdset); 3521 FD_ZERO (&fdset);
@@ -3587,7 +3588,7 @@ usage: (make-network-process &rest ARGS) */)
3587 if (!is_server) 3588 if (!is_server)
3588 { 3589 {
3589 struct sockaddr_in sa1; 3590 struct sockaddr_in sa1;
3590 int len1 = sizeof (sa1); 3591 socklen_t len1 = sizeof (sa1);
3591 if (getsockname (s, (struct sockaddr *)&sa1, &len1) == 0) 3592 if (getsockname (s, (struct sockaddr *)&sa1, &len1) == 0)
3592 contact = Fplist_put (contact, QClocal, 3593 contact = Fplist_put (contact, QClocal,
3593 conv_sockaddr_to_lisp ((struct sockaddr *)&sa1, len1)); 3594 conv_sockaddr_to_lisp ((struct sockaddr *)&sa1, len1));
@@ -4192,7 +4193,7 @@ server_accept_connection (Lisp_Object server, int channel)
4192 struct sockaddr_un un; 4193 struct sockaddr_un un;
4193#endif 4194#endif
4194 } saddr; 4195 } saddr;
4195 int len = sizeof saddr; 4196 socklen_t len = sizeof saddr;
4196 4197
4197 s = accept (channel, &saddr.sa, &len); 4198 s = accept (channel, &saddr.sa, &len);
4198 4199
@@ -5059,7 +5060,7 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd,
5059 /* getsockopt(,,SO_ERROR,,) is said to hang on some systems. 5060 /* getsockopt(,,SO_ERROR,,) is said to hang on some systems.
5060 So only use it on systems where it is known to work. */ 5061 So only use it on systems where it is known to work. */
5061 { 5062 {
5062 int xlen = sizeof (xerrno); 5063 socklen_t xlen = sizeof (xerrno);
5063 if (getsockopt (channel, SOL_SOCKET, SO_ERROR, &xerrno, &xlen)) 5064 if (getsockopt (channel, SOL_SOCKET, SO_ERROR, &xerrno, &xlen))
5064 xerrno = errno; 5065 xerrno = errno;
5065 } 5066 }
@@ -5171,7 +5172,7 @@ read_process_output (Lisp_Object proc, register int channel)
5171 /* We have a working select, so proc_buffered_char is always -1. */ 5172 /* We have a working select, so proc_buffered_char is always -1. */
5172 if (DATAGRAM_CHAN_P (channel)) 5173 if (DATAGRAM_CHAN_P (channel))
5173 { 5174 {
5174 int len = datagram_address[channel].len; 5175 socklen_t len = datagram_address[channel].len;
5175 nbytes = recvfrom (channel, chars + carryover, readmax, 5176 nbytes = recvfrom (channel, chars + carryover, readmax,
5176 0, datagram_address[channel].sa, &len); 5177 0, datagram_address[channel].sa, &len);
5177 } 5178 }