Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Bump version number |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
13d5969c7723dca3cf031f6eb8f8ed3a |
User & Date: | bernd 2020-05-21 14:34:13.669 |
Context
2020-05-21
| ||
17:29 | Bump version number check-in: 6df24aed32 user: bernd tags: trunk, 0.9.7-20200521 | |
14:34 | Bump version number check-in: 13d5969c77 user: bernd tags: trunk | |
11:58 | Add /want and /fetch for manually fetching check-in: f5ce3e9e3a user: bernd tags: trunk | |
Changes
Changes to configure.ac.
︙ | ︙ | |||
11 12 13 14 15 16 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. | | | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. AC_INIT([net2o], [0.9.7-20200521], [bernd@net2o.de], [net2o], [https://fossil.net2o.de/net2o/reportlist]) AC_PREREQ([2.59]) AC_CONFIG_MACRO_DIR([m4]) AC_USE_SYSTEM_EXTENSIONS LT_INIT AC_MSG_CHECKING([for gforth]) |
︙ | ︙ |
Changes to gui.fs.
︙ | ︙ | |||
1294 1295 1296 1297 1298 1299 1300 | [: current-player @ ?dup-IF caller-w <> IF play$ $@ current-player @ >o to text$ o> +sync THEN THEN caller-w .text$ play$ $@ str= IF | | | > | 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 | [: current-player @ ?dup-IF caller-w <> IF play$ $@ current-player @ >o to text$ o> +sync THEN THEN caller-w .text$ play$ $@ str= IF addr data $@ ['] >msg-audio-player catch 0= IF pause$ $@ caller-w >o to text$ o> +sync ELSE 2drop THEN ELSE pause-play play$ $@ caller-w >o to text$ o> +sync THEN ;] 2swap $make 64#1 +to msg:timestamp click[] ; :noname ( addr u type -- ) |
︙ | ︙ |
Changes to msg.fs.
︙ | ︙ | |||
350 351 352 353 354 355 356 | bounds ?DO I @ to msg-group-o 0 .(avalanche-msg) cell +LOOP ELSE 2drop THEN cleanup-msg ;] catch r> to msg-group-o throw ; : msg:ihave ( id u1 hash u2 -- ) | | > | | 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 | bounds ?DO I @ to msg-group-o 0 .(avalanche-msg) cell +LOOP ELSE 2drop THEN cleanup-msg ;] catch r> to msg-group-o throw ; : msg:ihave ( id u1 hash u2 -- ) fetch( ." ihave:" 2over .@host.id 2dup bounds U+DO forth:cr I keysize 85type keysize +LOOP forth:cr ) 2dup ihave$ $+! 2over mehave$ $! bounds U+DO 2dup I keysize have# #!ins[] keysize +LOOP 2drop ; : pk.host ( -- addr u ) [: pk@ type host$ $. ;] $tmp ; : >ihave ( hash u -- ) 0 .pk.host 2over msg:ihave 2drop ( >send-have ) ; : push-msg ( o:parent -- ) up@ receiver-task <> IF avalanche-msg ELSE wait-task @ ?dup-IF <event >r o elit, msg-group-o elit, :>avalanche r> event> |
︙ | ︙ | |||
695 696 697 698 699 700 701 702 703 | event: :>queued ( queue -- ) 0 fetch-queue[] !@ queue? off transmit-queue ; : enqueue ( -- ) -1 queue? !@ 0= IF <event :>queued up@ event> THEN ; forward need-hashed? : >have-group ( addr u -- ) msg-group-o { w^ grp } 2dup have-group# #@ nip IF | > | | | 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 | event: :>queued ( queue -- ) 0 fetch-queue[] !@ queue? off transmit-queue ; : enqueue ( -- ) -1 queue? !@ 0= IF <event :>queued up@ event> THEN ; forward need-hashed? : >have-group ( addr u -- ) last# >r msg-group-o { w^ grp } 2dup have-group# #@ nip IF grp last# cell+ +unique$ 2drop ELSE grp cell 2swap have-group# #! THEN r> to last# ; : >fetch-queue ( addr u -- ) 2dup need-hashed? IF fetch-queue[] $ins[] drop ELSE >ihave THEN ; : ?fetch ( addr u -- ) key| 2dup >have-group >fetch-queue ; |
︙ | ︙ | |||
1533 1534 1535 1536 1537 1538 1539 | also net2o-base \ chain messages to one previous message : chain, ( msgaddr u -- ) [: 2dup startdate@ 64#0 { 64^ sd } sd le-64! sd 1 64s forth:type c:0key sigonly@ >hash hashtmp hash#128 forth:type ;] $tmp $, msg-chain ; : ihave, ( -- ) ihave$ $@ dup IF | < < < | | | 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 | also net2o-base \ chain messages to one previous message : chain, ( msgaddr u -- ) [: 2dup startdate@ 64#0 { 64^ sd } sd le-64! sd 1 64s forth:type c:0key sigonly@ >hash hashtmp hash#128 forth:type ;] $tmp $, msg-chain ; : ihave, ( -- ) ihave$ $@ dup IF $, mehave$ $@ $, msg-ihave ELSE 2drop THEN ; : push, ( -- ) push$ $@ dup IF $, nestsig ELSE 2drop THEN ; : (send-avalanche) ( xt -- addr u flag ) [: 0 >o [: <msg msg-start execute msg> ;] gen-cmd$ o> +last-signed msg-log, ;] [group] ; previous : send-avalanche ( xt -- ) msg-group-o .msg:?otr IF now>otr ELSE now>never THEN (send-avalanche) >r .chat r> 0= IF msg-group-o .msg:.nobody THEN ; |
︙ | ︙ | |||
1947 1948 1949 1950 1951 1952 1953 | remote-host$ $. ." @" pubkey $@ .simple-id ." :" forth:cr true ;] search-context ; is /connections :noname ( addr u -- ) 2drop enqueue ; is /fetch :noname ( addr u -- ) 2drop ." Want:" forth:cr | < | > | > > > > > > > > | < | 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 | remote-host$ $. ." @" pubkey $@ .simple-id ." :" forth:cr true ;] search-context ; is /connections :noname ( addr u -- ) 2drop enqueue ; is /fetch :noname ( addr u -- ) 2drop ." Want:" forth:cr fetch# [: { item } ." hash: " item $@ 85type space case item cell+ $@ drop cell+ .fetcher:state 0 of ." want from" item $@ have# #@ bounds U+DO forth:cr I @ .@host.id cell +LOOP endof 1 of ." fetching..." endof 2 of ." got it" endof endcase forth:cr ;] #map ; is /want }scope : ?slash ( addr u -- addr u flag ) over c@ dup '/' = swap '\' = or ; Defer chat-cmd-file-execute ' execute is chat-cmd-file-execute |
︙ | ︙ | |||
2027 2028 2029 2030 2031 2032 2033 2034 | ELSE 2drop rectype-null THEN ; forward hash-in : jpeg? ( addr u -- flag ) dup 4 - 0 max safe/string ".jpg" str= ; : file-in ( addr u -- hash u ) | > > > | | | 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 | ELSE 2drop rectype-null THEN ; forward hash-in : jpeg? ( addr u -- flag ) dup 4 - 0 max safe/string ".jpg" str= ; : >have+group ( addr u -- addr u ) 2dup key| 2dup >have-group >ihave ; : file-in ( addr u -- hash u ) slurp-file over >r hash-in r> free throw >have+group ; : img-rec ( addr u -- .. token ) 2dup "img:" string-prefix? IF over ?flush-text [: 2dup + >r 4 /string save-mem over >r 2dup jpeg? IF 2dup >thumbnail dup IF over >r hash-in [: forth:type img-orient @ 1- 0 max forth:emit ;] $tmp r> free throw THEN ELSE #0. THEN 2swap file-in 2swap dup IF >have+group THEN [: dup IF $, msg:thumbnail# ulit, msg-object ELSE 2drop THEN $, msg:image# ulit, msg-object ;] r> free throw r> to last->in ;] catch 0= IF rectype-name EXIT THEN THEN 2drop rectype-null ; : audio-rec ( addr u -- .. token ) 2dup "audio:" string-prefix? IF |
︙ | ︙ |
Changes to wiki/commands.md.
1 2 | # Commands # | | | 1 2 3 4 5 6 7 8 9 10 | # Commands # Version 0.9.7-20200521. net2o separates data and commands. Data is passed through to higher layers, commands are interpreted when they arrive. For connection requests, a special bit is set, and the address then isn't used as address, but as IV for the opportunistic encoding. The command interpreter is a stack machine with two data types: 64 |
︙ | ︙ |