aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
authorKaroly Lorentey2006-04-19 16:23:46 +0000
committerKaroly Lorentey2006-04-19 16:23:46 +0000
commit447b0165acd09060977e05c843f81c0bee4aa4df (patch)
tree70cf2d254760a2cf68a10b67f8a3570c05fff9a5 /src/process.c
parent4c57cca724993ab1334cc5c0b35c22b06daee0c3 (diff)
parent0fea1d10293b4c6d35c1e55b68cd26e91445213c (diff)
downloademacs-447b0165acd09060977e05c843f81c0bee4aa4df.tar.gz
emacs-447b0165acd09060977e05c843f81c0bee4aa4df.zip
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-216 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-217 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-218 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-219 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-220 Improve tq.el. * emacs@sv.gnu.org/emacs--devo--0--patch-221 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-222 Update from CVS: src/puresize.h (PURESIZE_RATIO): Reduce to 10/6. * emacs@sv.gnu.org/emacs--devo--0--patch-223 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-224 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-225 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-226 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-227 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-228 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-229 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-230 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-231 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-232 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-233 Update from CVS: lisp/progmodes/python.el (python-mode): Fix typo. * emacs@sv.gnu.org/gnus--rel--5.10--patch-84 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-85 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-86 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-550
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/process.c b/src/process.c
index 003f27b77b8..6e633a5825c 100644
--- a/src/process.c
+++ b/src/process.c
@@ -2322,7 +2322,11 @@ get_lisp_to_sockaddr_size (address, familyp)
2322} 2322}
2323 2323
2324/* Convert an address object (vector or string) to an internal sockaddr. 2324/* Convert an address object (vector or string) to an internal sockaddr.
2325 Format of address has already been validated by size_lisp_to_sockaddr. */ 2325
2326 The address format has been basically validated by
2327 get_lisp_to_sockaddr_size, but this does not mean FAMILY is valid;
2328 it could have come from user data. So if FAMILY is not valid,
2329 we return after zeroing *SA. */
2326 2330
2327static void 2331static void
2328conv_lisp_to_sockaddr (family, address, sa, len) 2332conv_lisp_to_sockaddr (family, address, sa, len)
@@ -2336,7 +2340,6 @@ conv_lisp_to_sockaddr (family, address, sa, len)
2336 register int i; 2340 register int i;
2337 2341
2338 bzero (sa, len); 2342 bzero (sa, len);
2339 sa->sa_family = family;
2340 2343
2341 if (VECTORP (address)) 2344 if (VECTORP (address))
2342 { 2345 {
@@ -2348,6 +2351,7 @@ conv_lisp_to_sockaddr (family, address, sa, len)
2348 i = XINT (p->contents[--len]); 2351 i = XINT (p->contents[--len]);
2349 sin->sin_port = htons (i); 2352 sin->sin_port = htons (i);
2350 cp = (unsigned char *)&sin->sin_addr; 2353 cp = (unsigned char *)&sin->sin_addr;
2354 sa->sa_family = family;
2351 } 2355 }
2352#ifdef AF_INET6 2356#ifdef AF_INET6
2353 else if (family == AF_INET6) 2357 else if (family == AF_INET6)
@@ -2363,9 +2367,10 @@ conv_lisp_to_sockaddr (family, address, sa, len)
2363 int j = XFASTINT (p->contents[i]) & 0xffff; 2367 int j = XFASTINT (p->contents[i]) & 0xffff;
2364 ip6[i] = ntohs (j); 2368 ip6[i] = ntohs (j);
2365 } 2369 }
2366 return; 2370 sa->sa_family = family;
2367 } 2371 }
2368#endif 2372#endif
2373 return;
2369 } 2374 }
2370 else if (STRINGP (address)) 2375 else if (STRINGP (address))
2371 { 2376 {
@@ -2376,6 +2381,7 @@ conv_lisp_to_sockaddr (family, address, sa, len)
2376 cp = SDATA (address); 2381 cp = SDATA (address);
2377 for (i = 0; i < sizeof (sockun->sun_path) && *cp; i++) 2382 for (i = 0; i < sizeof (sockun->sun_path) && *cp; i++)
2378 sockun->sun_path[i] = *cp++; 2383 sockun->sun_path[i] = *cp++;
2384 sa->sa_family = family;
2379 } 2385 }
2380#endif 2386#endif
2381 return; 2387 return;
@@ -6236,6 +6242,8 @@ text to PROCESS after you call this function. */)
6236 emacs_close (XINT (XPROCESS (proc)->outfd)); 6242 emacs_close (XINT (XPROCESS (proc)->outfd));
6237#endif /* not HAVE_SHUTDOWN */ 6243#endif /* not HAVE_SHUTDOWN */
6238 new_outfd = emacs_open (NULL_DEVICE, O_WRONLY, 0); 6244 new_outfd = emacs_open (NULL_DEVICE, O_WRONLY, 0);
6245 if (new_outfd < 0)
6246 abort ();
6239 old_outfd = XINT (XPROCESS (proc)->outfd); 6247 old_outfd = XINT (XPROCESS (proc)->outfd);
6240 6248
6241 if (!proc_encode_coding_system[new_outfd]) 6249 if (!proc_encode_coding_system[new_outfd])