Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Get keys from peers |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
38e2425029c6070e59671dc4d96f03e9 |
User & Date: | bernd 2020-01-31 19:35:09.378 |
Context
2020-01-31
| ||
21:58 | Fix key import through chat check-in: 8f5ba435cf user: bernd tags: trunk | |
19:35 | Get keys from peers check-in: 38e2425029 user: bernd tags: trunk | |
2020-01-30
| ||
12:35 | Bump version number check-in: a6fdb1eb15 user: bernd tags: trunk, 0.9.7-20200130 | |
Changes
Changes to classes.fs.
︙ | ︙ | |||
141 142 143 144 145 146 147 | $value: id$ \ id of current message $value: msg$ \ decrypted message 64value: timestamp \ timestamp of message field: peers[] field: keys[] field: log[] field: hashs[] | | | 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | $value: id$ \ id of current message $value: msg$ \ decrypted message 64value: timestamp \ timestamp of message field: peers[] field: keys[] field: log[] field: hashs[] field: pks# field: perms# \ pk -> permission map field: mode \ mode bits: 1 3 bits: otr# lock# visible# : bit-ops: ( bit -- ) parse-name [{: d: name :}l name rot [: emit type ;] $tmp nextname ;] {: xt: gen-name :} |
︙ | ︙ |
Changes to msg.fs.
︙ | ︙ | |||
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 | : display-one-msg { d: msgt -- } msg-group-o >o msgt ['] msg:display catch IF ." invalid entry" cr 2drop THEN o> ; Forward silent-join \ !!FIXME!! should use an asynchronous "do-when-connected" thing : +unique-con ( -- ) o msg-group-o .msg:peers[] +unique$ ; Forward +chat-control : chat-silent-join ( -- ) reconnect( ." silent join " o hex. connection hex. cr ) o to connection ?msg-context >o silent-last# @ to last# o> reconnect( ." join: " last# $. cr ) | > > | 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 | : display-one-msg { d: msgt -- } msg-group-o >o msgt ['] msg:display catch IF ." invalid entry" cr 2drop THEN o> ; Forward silent-join Forward fetch-pks \ !!FIXME!! should use an asynchronous "do-when-connected" thing : +unique-con ( -- ) o msg-group-o .msg:peers[] +unique$ ; Forward +chat-control : chat-silent-join ( -- ) reconnect( ." silent join " o hex. connection hex. cr ) o to connection ?msg-context >o silent-last# @ to last# o> reconnect( ." join: " last# $. cr ) |
︙ | ︙ | |||
1273 1274 1275 1276 1277 1278 1279 | BEGIN dup WHILE cell- 2dup + $@ sigpksize# - 1- + c@ $2E = IF 2dup + $@ ['] msg:display catch IF 2drop THEN msg-group-o .msg:keys[] $[]# IF drop 0 THEN THEN REPEAT 2drop ; : ?scan-pks ( addr u -- ) bounds U+DO | | | | > > > > > > > > > | | < | > | > | | > > > > > > > | < | > > > > | | | | 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 | BEGIN dup WHILE cell- 2dup + $@ sigpksize# - 1- + c@ $2E = IF 2dup + $@ ['] msg:display catch IF 2drop THEN msg-group-o .msg:keys[] $[]# IF drop 0 THEN THEN REPEAT 2drop ; : ?scan-pks ( addr u -- ) bounds U+DO I $@ sigpksize# - + keysize 2dup key# #@ d0= IF "key" 2swap msg-group-o .msg:pks# #! ELSE 2drop THEN cell +LOOP ; : free-obtained-pks ( addr -- ) [: $@ >d#id >o dht-owner $[]# 0> IF last# $free last# cell+ $free import#chat import-type ! 64#-1 key-read-offset 64! [: 0 dht-owner $[]@ 2dup sigsize# - forth:type dht-hash $. dup sigsize# - safe/string forth:type ;] $tmp ['] read-pk2key$ catch IF 2drop THEN ELSE 1+ THEN o> ;] #map ; : fetch-pks ( o:peer-con -- ) 0 msg-group-o .msg:pks# [: drop 1+ ;] #map 0<> IF o to connection 0 0 { start requests } msg-group-o .msg:pks# addr start addr requests [{: start requests :}l start @ 0= IF net2o-code expect-reply THEN $@ $, dht-id dht-owner? end-with start @ 3 u< IF 1 start +! ELSE start off 1 requests +! cookie+request requests @ $10 > IF end-code| 0 to requests ELSE [ also net2o-base ] end-code| THEN THEN ;] #map start IF [ also net2o-base ] cookie+request end-code| THEN msg-group-o .msg:pks# free-obtained-pks THEN ; : ?fetch-pks msg-group-o >o msg:peers[] $[]# 0 ?DO I msg:peers[] $[] @ .fetch-pks LOOP o> ; : msg-tredisplay ( n -- ) reset-time msg-group-o >o msg:?otr msg:-otr o> >r [: cells >r msg-log@ { log u } u r> - 0 max { u' } log u u' /string ?scan-pks ?fetch-pks log u' ?search-lock log u u' /string bounds ?DO I log - cell/ to log# I $@ { d: msgt } msgt ['] msg:display catch IF ." invalid entry" cr 2drop THEN cell +LOOP log free throw ;] catch |
︙ | ︙ | |||
1985 1986 1987 1988 1989 1990 1991 | : +chat-control ( -- ) +resend-msg +flow-control ; : chat#-connect? ( addr u buf1 buf2 --- flag ) pk-connect-dests? dup IF connection >o rdrop +chat-control +group THEN ; : chat-connect ( addr u -- ) | | | 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 | : +chat-control ( -- ) +resend-msg +flow-control ; : chat#-connect? ( addr u buf1 buf2 --- flag ) pk-connect-dests? dup IF connection >o rdrop +chat-control +group THEN ; : chat-connect ( addr u -- ) chat-bufs# chat#-connect? IF greet fetch-pks THEN ; : key-ctrlbit ( -- n ) \G return a bit mask for the control key pressed 1 key dup bl < >r lshift r> and ; : wait-key ( -- ) BEGIN key-ctrlbit [ 1 ctrl L lshift 1 ctrl Z lshift or ]L |
︙ | ︙ |