summaryrefslogtreecommitdiffstats
path: root/socket.c
diff options
context:
space:
mode:
authorLaMont Jones <lamont@debian.org>2003-05-07 08:36:40 -0600
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:27 -0800
commite21d47d7813159bb71e0671df9b52ec0470c358d (patch)
tree3c7770ea846123c291f599044e9f234ac17616bb /socket.c
parent8cfce36c6a4fc2e0a0ab6ef2db66a23cbe462693 (diff)
parentdeda2c0fd8689349fea2a900199a76ff7ecb319e (diff)
downloadscm-e21d47d7813159bb71e0671df9b52ec0470c358d.tar.gz
scm-e21d47d7813159bb71e0671df9b52ec0470c358d.zip
Import Debian changes 5d6-3.2debian/5d6-3.2
scm (5d6-3.2) unstable; urgency=low * Fix hppa compile. Closes: #144062 scm (5d6-3.1) unstable; urgency=low * NMU with patch from James Troup, to fix FTBFS on sparc. Closes: #191171 scm (5d6-3) unstable; urgency=low * Add build depend on xlibs-dev (Closes: #148020) scm (5d6-2) unstable; urgency=low * Remove libregexx-dev from build-depends. * Change build to use ./scmlit rather than scmlit (should fix some build problems) (looks like alpha is mostly building) * New release (Closes: #140175) * Built with turtlegraphics last time (Closes: #58515) scm (5d6-1) unstable; urgency=low * New upstream. * Add xlib and turtlegr to requested list of features. (closes some bug) * Make clean actually clean most everything up. * Remove hacks renaming build to something else and just set build as a .PHONY target in debian/rules. * Add the turtlegr code. scm (5d5-1) unstable; urgency=low * New upstream * Has fixes for 64 bit archs. May fix alpha compile problem. Does fix (Closes: #140175) * Take out -O2 arg. scm (5d4-3) unstable; urgency=low * Don't link with regexx, but just use libc6's regular expression functions. * Define (terms) to output /usr/share/common-licenses/GPL (Closes: #119321) scm (5d4-2) unstable; urgency=low * Add texinfo to build depends (Closes: #107011) scm (5d4-1) unstable; urgency=low * New upstream release. * Move install-info --remove to prerm. scm (5d3-5) unstable; urgency=low * Move scm info files to section "The Algorithmic Language Scheme" to match up with guile. scm (5d3-4) unstable; urgency=low * Fix build depends (Closes: #76691) scm (5d3-3) unstable; urgency=low * Fix path in scm dhelp file. scm (5d3-2) unstable; urgency=low * Actually put the header files in the package. Oops. scm (5d3-1) unstable; urgency=low * New upstream. (Closes: #74761) * Make (terms) use new license location. * Make use libregexx rather than librx. * Fix build depends for above. * Using new regex lib seems to fix crash (Closes: #66787) * Consider adding scm-dev package with headers, but instead just add the headers to the scm package. (Closes: #70787) * Add doc-base support.
Diffstat (limited to 'socket.c')
-rw-r--r--socket.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/socket.c b/socket.c
index 68e0195..5c0aa7b 100644
--- a/socket.c
+++ b/socket.c
@@ -15,26 +15,26 @@
* the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111, USA.
*
* As a special exception, the Free Software Foundation gives permission
- * for additional uses of the text contained in its release of GUILE.
+ * for additional uses of the text contained in its release of SCM.
*
- * The exception is that, if you link the GUILE library with other files
+ * The exception is that, if you link the SCM library with other files
* to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
- * linking the GUILE library code into it.
+ * linking the SCM library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the
- * Free Software Foundation under the name GUILE. If you copy
+ * Free Software Foundation under the name SCM. If you copy
* code from other Free Software Foundation releases into a copy of
- * GUILE, as the General Public License permits, the exception does
+ * SCM, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
- * If you write modifications of your own for GUILE, it is your choice
+ * If you write modifications of your own for SCM, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*/
@@ -69,6 +69,9 @@
# ifdef SVR4
# include <unistd.h>
# endif
+# ifdef __OpenBSD__
+# include <unistd.h>
+# endif
#endif /* STDC_HEADERS */
static char s_inetaddr[] = "inet:string->address";
@@ -313,9 +316,8 @@ SCM l_socket(fam, proto)
close(sd);
wta(MAKINUM(sd), (char *)NALLOC, s_port_type);
}
- CAR(port) = scm_port_entry(tc_socket, BUF0);
+ port = scm_port_entry(f, tc_socket, BUF0);
SCM_PORTDATA(port) = fam;
- SETSTREAM(port, f);
i_setbuf0(port);
ALLOW_INTS;
if (AF_INET==tp) {
@@ -354,9 +356,8 @@ SCM l_socketpair(fam, proto)
close(sv[1]);
wta(MAKINUM(sv[1]), (char *)NALLOC, s_port_type);
}
- CAR(port[0]) = scm_port_entry(tc16_fport, mode_bits("r+0", (char *)0));
- CAR(port[1]) = scm_port_entry(tc16_fport, mode_bits("r+0", (char *)0));
- SETSTREAM(port[0], f[0]); SETSTREAM(port[1], f[1]);
+ port[0] = scm_port_entry(f[0], tc16_fport, mode_bits("r+0", (char *)0));
+ CAR(port[1]) = scm_port_entry(f[1], tc16_fport, mode_bits("r+0", (char *)0));
i_setbuf0(port[0]); i_setbuf0(port[1]);
ALLOW_INTS;
return cons(port[0], port[1]);
@@ -387,6 +388,7 @@ static char s_connect[] = "socket:connect";
SCM l_connect (sockpt, address, arg)
SCM sockpt, address, arg;
{
+ long flags;
int sts;
ASSERT(NIMP(sockpt) && SOCKP(sockpt), sockpt, ARG1, s_connect);
switch SOCKTYP(sockpt) {
@@ -419,7 +421,9 @@ SCM l_connect (sockpt, address, arg)
break;
}
if (sts) return BOOL_F;
- CAR(sockpt) = scm_port_entry(tc16_fport, mode_bits("r+0", (char *)0));
+ flags = tc16_fport | mode_bits("r+0", (char *)0);
+ SCM_PORTFLAGS(sockpt) = flags;
+ SCM_SETFLAGS(sockpt, flags);
SCM_PORTDATA(sockpt) = cons(address, arg);
return sockpt;
}
@@ -464,13 +468,16 @@ static char s_listen[] = "socket:listen";
SCM l_listen(port, backlog)
SCM port, backlog;
{
+ long flags;
int sts;
ASSERT(NIMP(port) && SOCKP(port), port, ARG1, s_listen);
ASSERT(INUMP(backlog), backlog, ARG2, s_listen);
SYSCALL(sts = listen(fileno(STREAM(port)), INUM(backlog)););
if (sts) return BOOL_F;
DEFER_INTS;
- CAR(port) = scm_port_entry(tc16_fport, mode_bits("r0", (char *)0));
+ flags = tc16_fport | mode_bits("r0", (char *)0);
+ SCM_PORTFLAGS(port) = flags;
+ SCM_SETFLAGS(port, flags);
ALLOW_INTS;
return port;
}
@@ -500,8 +507,7 @@ SCM l_accept(sockpt)
close(newsd);
wta(MAKINUM(newsd), (char *)NALLOC, s_port_type);
}
- CAR(newpt) = scm_port_entry(tc16_fport, mode_bits("r+0", (char *)0));
- SETSTREAM(newpt, newfd);
+ newpt = scm_port_entry(newfd, tc16_fport, mode_bits("r+0", (char *)0));
i_setbuf0(newpt);
ALLOW_INTS;
return newpt;