aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/process.c b/src/process.c
index 91bc090e76e..307eab3ab30 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1333,15 +1333,15 @@ Returns nil if format of ADDRESS is invalid. */)
1333 1333
1334 for (i = 0; i < nargs; i++) 1334 for (i = 0; i < nargs; i++)
1335 { 1335 {
1336 if (! RANGED_INTEGERP (0, p->u.contents[i], 65535)) 1336 if (! RANGED_INTEGERP (0, p->contents[i], 65535))
1337 return Qnil; 1337 return Qnil;
1338 1338
1339 if (nargs <= 5 /* IPv4 */ 1339 if (nargs <= 5 /* IPv4 */
1340 && i < 4 /* host, not port */ 1340 && i < 4 /* host, not port */
1341 && XINT (p->u.contents[i]) > 255) 1341 && XINT (p->contents[i]) > 255)
1342 return Qnil; 1342 return Qnil;
1343 1343
1344 args[i+1] = p->u.contents[i]; 1344 args[i+1] = p->contents[i];
1345 } 1345 }
1346 1346
1347 return Fformat (nargs+1, args); 1347 return Fformat (nargs+1, args);
@@ -1983,7 +1983,7 @@ conv_sockaddr_to_lisp (struct sockaddr *sa, int len)
1983 len = sizeof (sin->sin_addr) + 1; 1983 len = sizeof (sin->sin_addr) + 1;
1984 address = Fmake_vector (make_number (len), Qnil); 1984 address = Fmake_vector (make_number (len), Qnil);
1985 p = XVECTOR (address); 1985 p = XVECTOR (address);
1986 p->u.contents[--len] = make_number (ntohs (sin->sin_port)); 1986 p->contents[--len] = make_number (ntohs (sin->sin_port));
1987 cp = (unsigned char *) &sin->sin_addr; 1987 cp = (unsigned char *) &sin->sin_addr;
1988 break; 1988 break;
1989 } 1989 }
@@ -1995,9 +1995,9 @@ conv_sockaddr_to_lisp (struct sockaddr *sa, int len)
1995 len = sizeof (sin6->sin6_addr)/2 + 1; 1995 len = sizeof (sin6->sin6_addr)/2 + 1;
1996 address = Fmake_vector (make_number (len), Qnil); 1996 address = Fmake_vector (make_number (len), Qnil);
1997 p = XVECTOR (address); 1997 p = XVECTOR (address);
1998 p->u.contents[--len] = make_number (ntohs (sin6->sin6_port)); 1998 p->contents[--len] = make_number (ntohs (sin6->sin6_port));
1999 for (i = 0; i < len; i++) 1999 for (i = 0; i < len; i++)
2000 p->u.contents[i] = make_number (ntohs (ip6[i])); 2000 p->contents[i] = make_number (ntohs (ip6[i]));
2001 return address; 2001 return address;
2002 } 2002 }
2003#endif 2003#endif
@@ -2022,7 +2022,7 @@ conv_sockaddr_to_lisp (struct sockaddr *sa, int len)
2022 2022
2023 i = 0; 2023 i = 0;
2024 while (i < len) 2024 while (i < len)
2025 p->u.contents[i++] = make_number (*cp++); 2025 p->contents[i++] = make_number (*cp++);
2026 2026
2027 return address; 2027 return address;
2028} 2028}
@@ -2093,7 +2093,7 @@ conv_lisp_to_sockaddr (int family, Lisp_Object address, struct sockaddr *sa, int
2093 { 2093 {
2094 struct sockaddr_in *sin = (struct sockaddr_in *) sa; 2094 struct sockaddr_in *sin = (struct sockaddr_in *) sa;
2095 len = sizeof (sin->sin_addr) + 1; 2095 len = sizeof (sin->sin_addr) + 1;
2096 hostport = XINT (p->u.contents[--len]); 2096 hostport = XINT (p->contents[--len]);
2097 sin->sin_port = htons (hostport); 2097 sin->sin_port = htons (hostport);
2098 cp = (unsigned char *)&sin->sin_addr; 2098 cp = (unsigned char *)&sin->sin_addr;
2099 sa->sa_family = family; 2099 sa->sa_family = family;
@@ -2104,12 +2104,12 @@ conv_lisp_to_sockaddr (int family, Lisp_Object address, struct sockaddr *sa, int
2104 struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) sa; 2104 struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) sa;
2105 uint16_t *ip6 = (uint16_t *)&sin6->sin6_addr; 2105 uint16_t *ip6 = (uint16_t *)&sin6->sin6_addr;
2106 len = sizeof (sin6->sin6_addr) + 1; 2106 len = sizeof (sin6->sin6_addr) + 1;
2107 hostport = XINT (p->u.contents[--len]); 2107 hostport = XINT (p->contents[--len]);
2108 sin6->sin6_port = htons (hostport); 2108 sin6->sin6_port = htons (hostport);
2109 for (i = 0; i < len; i++) 2109 for (i = 0; i < len; i++)
2110 if (INTEGERP (p->u.contents[i])) 2110 if (INTEGERP (p->contents[i]))
2111 { 2111 {
2112 int j = XFASTINT (p->u.contents[i]) & 0xffff; 2112 int j = XFASTINT (p->contents[i]) & 0xffff;
2113 ip6[i] = ntohs (j); 2113 ip6[i] = ntohs (j);
2114 } 2114 }
2115 sa->sa_family = family; 2115 sa->sa_family = family;
@@ -2140,8 +2140,8 @@ conv_lisp_to_sockaddr (int family, Lisp_Object address, struct sockaddr *sa, int
2140 } 2140 }
2141 2141
2142 for (i = 0; i < len; i++) 2142 for (i = 0; i < len; i++)
2143 if (INTEGERP (p->u.contents[i])) 2143 if (INTEGERP (p->contents[i]))
2144 *cp++ = XFASTINT (p->u.contents[i]) & 0xff; 2144 *cp++ = XFASTINT (p->contents[i]) & 0xff;
2145} 2145}
2146 2146
2147#ifdef DATAGRAM_SOCKETS 2147#ifdef DATAGRAM_SOCKETS
@@ -3723,7 +3723,9 @@ network_interface_info (Lisp_Object ifname)
3723 3723
3724 any = 1; 3724 any = 1;
3725 for (n = 0; n < 6; n++) 3725 for (n = 0; n < 6; n++)
3726 p->u.contents[n] = make_number (((unsigned char *)&rq.ifr_hwaddr.sa_data[0])[n]); 3726 p->contents[n] = make_number (((unsigned char *)
3727 &rq.ifr_hwaddr.sa_data[0])
3728 [n]);
3727 elt = Fcons (make_number (rq.ifr_hwaddr.sa_family), hwaddr); 3729 elt = Fcons (make_number (rq.ifr_hwaddr.sa_family), hwaddr);
3728 } 3730 }
3729#elif defined (HAVE_GETIFADDRS) && defined (LLADDR) 3731#elif defined (HAVE_GETIFADDRS) && defined (LLADDR)
@@ -3746,7 +3748,7 @@ network_interface_info (Lisp_Object ifname)
3746 3748
3747 memcpy (linkaddr, LLADDR (sdl), sdl->sdl_alen); 3749 memcpy (linkaddr, LLADDR (sdl), sdl->sdl_alen);
3748 for (n = 0; n < 6; n++) 3750 for (n = 0; n < 6; n++)
3749 p->u.contents[n] = make_number (linkaddr[n]); 3751 p->contents[n] = make_number (linkaddr[n]);
3750 3752
3751 elt = Fcons (make_number (it->ifa_addr->sa_family), hwaddr); 3753 elt = Fcons (make_number (it->ifa_addr->sa_family), hwaddr);
3752 break; 3754 break;
@@ -4607,7 +4609,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
4607 { 4609 {
4608 struct Lisp_Process *p = 4610 struct Lisp_Process *p =
4609 XPROCESS (chan_process[channel]); 4611 XPROCESS (chan_process[channel]);
4610 if (p && p->gnutls_p && p->infd 4612 if (p && p->gnutls_p && p->gnutls_state && p->infd
4611 && ((emacs_gnutls_record_check_pending 4613 && ((emacs_gnutls_record_check_pending
4612 (p->gnutls_state)) 4614 (p->gnutls_state))
4613 > 0)) 4615 > 0))
@@ -4621,6 +4623,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
4621 { 4623 {
4622 /* Check this specific channel. */ 4624 /* Check this specific channel. */
4623 if (wait_proc->gnutls_p /* Check for valid process. */ 4625 if (wait_proc->gnutls_p /* Check for valid process. */
4626 && wait_proc->gnutls_state
4624 /* Do we have pending data? */ 4627 /* Do we have pending data? */
4625 && ((emacs_gnutls_record_check_pending 4628 && ((emacs_gnutls_record_check_pending
4626 (wait_proc->gnutls_state)) 4629 (wait_proc->gnutls_state))
@@ -5002,7 +5005,7 @@ read_process_output (Lisp_Object proc, register int channel)
5002 proc_buffered_char[channel] = -1; 5005 proc_buffered_char[channel] = -1;
5003 } 5006 }
5004#ifdef HAVE_GNUTLS 5007#ifdef HAVE_GNUTLS
5005 if (p->gnutls_p) 5008 if (p->gnutls_p && p->gnutls_state)
5006 nbytes = emacs_gnutls_read (p, chars + carryover + buffered, 5009 nbytes = emacs_gnutls_read (p, chars + carryover + buffered,
5007 readmax - buffered); 5010 readmax - buffered);
5008 else 5011 else
@@ -5243,7 +5246,7 @@ DEFUN ("internal-default-process-filter", Finternal_default_process_filter,
5243 else 5246 else
5244 set_marker_both (p->mark, p->buffer, PT, PT_BYTE); 5247 set_marker_both (p->mark, p->buffer, PT, PT_BYTE);
5245 5248
5246 update_mode_lines++; 5249 update_mode_lines = 23;
5247 5250
5248 /* Make sure opoint and the old restrictions 5251 /* Make sure opoint and the old restrictions
5249 float ahead of any new text just as point would. */ 5252 float ahead of any new text just as point would. */
@@ -5496,7 +5499,7 @@ send_process (Lisp_Object proc, const char *buf, ptrdiff_t len,
5496#endif 5499#endif
5497 { 5500 {
5498#ifdef HAVE_GNUTLS 5501#ifdef HAVE_GNUTLS
5499 if (p->gnutls_p) 5502 if (p->gnutls_p && p->gnutls_state)
5500 written = emacs_gnutls_write (p, cur_buf, cur_len); 5503 written = emacs_gnutls_write (p, cur_buf, cur_len);
5501 else 5504 else
5502#endif 5505#endif
@@ -6387,7 +6390,7 @@ status_notify (struct Lisp_Process *deleting_process)
6387 } 6390 }
6388 } /* end for */ 6391 } /* end for */
6389 6392
6390 update_mode_lines++; /* In case buffers use %s in mode-line-format. */ 6393 update_mode_lines = 24; /* In case buffers use %s in mode-line-format. */
6391 UNGCPRO; 6394 UNGCPRO;
6392} 6395}
6393 6396