picolisp

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/picolisp.git/
Log | Files | Refs | README | LICENSE

commit 15a16d3a29e679cef686f6d18cc743fb7f1f1180
parent 24de00cb12e58042c0b440f5fc0c10747c9fc305
Author: Alexander Burger <abu@software-lab.de>
Date:   Mon,  4 Feb 2013 14:12:42 +0100

Bug in 'accept' on BSD (inherited non-blocking mode)
Diffstat:
MCHANGES | 1+
Mersatz/picolisp.jar | 0
Mlib/map | 10+++++-----
Msrc/net.c | 3++-
Msrc/vers.h | 2+-
Msrc64/net.l | 5++++-
Msrc64/tags | 18+++++++++---------
Msrc64/version.l | 4++--
8 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/CHANGES b/CHANGES @@ -1,4 +1,5 @@ * DDmmm13 picoLisp-3.1.2 + Bug in 'accept' on BSD '+Hook2' index prefix class Password hashing 'usec' optional 'flg' argument diff --git a/ersatz/picolisp.jar b/ersatz/picolisp.jar Binary files differ. diff --git a/lib/map b/lib/map @@ -24,7 +24,7 @@ $ (2967 . "@src64/flow.l") >= (2297 . "@src64/subr.l") >> (2627 . "@src64/big.l") abs (2731 . "@src64/big.l") -accept (145 . "@src64/net.l") +accept (148 . "@src64/net.l") adr (587 . "@src64/main.l") alarm (473 . "@src64/main.l") all (788 . "@src64/sym.l") @@ -96,7 +96,7 @@ commit (1403 . "@src64/db.l") con (725 . "@src64/subr.l") conc (781 . "@src64/subr.l") cond (1919 . "@src64/flow.l") -connect (224 . "@src64/net.l") +connect (227 . "@src64/net.l") cons (747 . "@src64/subr.l") copy (1225 . "@src64/subr.l") ctl (4269 . "@src64/io.l") @@ -158,7 +158,7 @@ hash (2976 . "@src64/big.l") head (1820 . "@src64/subr.l") heap (519 . "@src64/main.l") hear (3246 . "@src64/io.l") -host (190 . "@src64/net.l") +host (193 . "@src64/net.l") id (1028 . "@src64/db.l") idx (2171 . "@src64/sym.l") if (1805 . "@src64/flow.l") @@ -186,7 +186,7 @@ lines (3870 . "@src64/io.l") link (1172 . "@src64/subr.l") lisp (2244 . "@src64/main.l") list (887 . "@src64/subr.l") -listen (157 . "@src64/net.l") +listen (160 . "@src64/net.l") lit (150 . "@src64/flow.l") load (4186 . "@src64/io.l") lock (1185 . "@src64/db.l") @@ -332,7 +332,7 @@ trail (698 . "@src64/main.l") trim (1759 . "@src64/subr.l") try (1177 . "@src64/flow.l") type (920 . "@src64/flow.l") -udp (301 . "@src64/net.l") +udp (304 . "@src64/net.l") unify (3950 . "@src64/subr.l") unless (1901 . "@src64/flow.l") until (2085 . "@src64/flow.l") diff --git a/src/net.c b/src/net.c @@ -1,4 +1,4 @@ -/* 07jan13abu +/* 04feb13abu * (c) Software Lab. Alexander Burger */ @@ -74,6 +74,7 @@ static any tcpAccept(int sd) { socklen_t len = sizeof(addr); if ((sd2 = accept(sd, (struct sockaddr*)&addr, &len)) >= 0) { fcntl(sd, F_SETFL, f); + fcntl(sd2, F_SETFL, 0); inet_ntop(AF_INET6, &addr.sin6_addr, s, INET6_ADDRSTRLEN); val(Adr) = mkStr(s); initInFile(sd2,NULL), initOutFile(sd2); diff --git a/src/vers.h b/src/vers.h @@ -1 +1 @@ -static byte Version[4] = {3,1,1,9}; +static byte Version[4] = {3,1,1,10}; diff --git a/src64/net.l b/src64/net.l @@ -1,4 +1,4 @@ -# 05jan13abu +# 04feb13abu # (c) Software Lab. Alexander Burger # (port ['T] 'cnt|(cnt . cnt) ['var]) -> cnt @@ -119,6 +119,9 @@ if ns # Yes xchg A (S) # Save new socket, retrieve flags cc fcntl(E F_SETFL A) # Restore socket status flags + ? (<> *TargetOS "Linux") # Non-Linux (BSD sockets)? + cc fcntl((S) F_SETFL 0) # Yes: Set new socket to non-blocking + = sub S (%% INET6_ADDRSTRLEN) # Allocate name buffer cc inet_ntop(AF_INET6 &(Addr SIN6_ADDR) S INET6_ADDRSTRLEN) ld E S diff --git a/src64/tags b/src64/tags @@ -1241,17 +1241,17 @@ sys/x86-64.linux.defs.l,1959 cmpDfltA_F4132,90414 cmpUserAX_F4137,90565 -./net.l,191 +./net.l,192 doPort5,96 tcpAcceptA_FE109,2796 -doAccept145,4032 -doListen157,4268 -doHost190,4941 -doConnect224,5824 -serverCEY_FE273,7028 -doUdp301,7792 -getUdpZ_FB370,9724 -putUdpBZ377,9869 +doAccept148,4180 +doListen160,4416 +doHost193,5089 +doConnect227,5972 +serverCEY_FE276,7176 +doUdp304,7940 +getUdpZ_FB373,9872 +putUdpBZ380,10017 sys/x86-64.linux.code.l,94 errno_A5,67 diff --git a/src64/version.l b/src64/version.l @@ -1,6 +1,6 @@ -# 31jan13abu +# 04feb13abu # (c) Software Lab. Alexander Burger -(de *Version 3 1 1 9) +(de *Version 3 1 1 10) # vi:et:ts=3:sw=3