hannesm / jackline Goto Github PK
View Code? Open in Web Editor NEWminimalistic secure XMPP client in OCaml
License: BSD 2-Clause "Simplified" License
minimalistic secure XMPP client in OCaml
License: BSD 2-Clause "Simplified" License
show proper timestamp of messages stored on server (see paurkedal/erm_xmpp@55de9ac for a xmpp patch)
well, how about not handling that at all -- enable people to not save anything on the server -- but store contacts only locally (well, we won't receive presence then - but who needs those anyway?)
otherwise, the iq request goes out
, but is never received by a server or client... just reset all requested to unknown on /disconnect
and async error
When starting jackline, it asks for "password: ". It would be nice to know which password it is asking for, e.g. the account name.
It would be useful to be able to provide the TCP IP/port pair separate from the jabber domain, for use with proxies and multi-homed servers. Right now the hostname from the jabber id is used, which makes it a pain to connect through SSH-forwarded ports and the like.
For contacts with presence errors (e.g. other server unreachable), the error message provided by the server isn't displayed to the user.
currently clear
is only done when the user moves the cursor in the buddy list (activating contact). would be fancy if it is cleared when the active contact is the only one with awaiting notifications and the window/terminal gets activated. but couldn't find an API/callback registration for this.
should be made more clear, and not result in crashes (esp failures in file writing should not impose dis/reconnect)..
*** handling error *** during presence parsing, ignoring
not into the log, but notify the contact blink (otherwise they get lost during roster fetching...)
I type:
hello
/authorization request
test
Results in:
19:36:07 ?O> hello
19:36:09 *** has been asked to sent presence updates to you
19:36:10 ***OTR Warning*** didn't sent message, there was no encrypted connection: test
19:36:10 ***OTR warning*** OTR error Malformed OTR data message: type
This is repeatable, any clue what's going on here?
My contact is using Pidgin. :-(
It would be nice to have some way to jump directly to the first contact with new messages. Either as default behavior for [page down] or with a modifier key (shift + pg dn?).
Thoughts?
esp resumption on disconnect/reconnect looks nice (no need to fetch roster again): http://xmpp.org/extensions/xep-0198.html
I relatively often run into situations like this:
10 03:13:37 ***OTR*** encrypted connection established (ssid [xxFFxxFF] FFffFFff)
10 03:13:37 ***OTR key*** unverified key (used 20 times). please verify /fingerprint [fp] over second channel
10 03:13:37 ***OTR Warning*** didn't sent message, there was no encrypted connection: hey
It seems a bit counter-intuitive, does anyone have an idea what might be going?
this is some regression:
might be more cases as well... expand before focus/unfocus (or again: focus bare jid into unexpanded contact -- but i believe this gets worse)
at the moment, session is selected when highlighted (actually also in make_prompt
) -- now if there are presence changes, it doesn't change until make_prompt
is called again (or highlight changes).
sending messages out should go to the best session available (until UI exposes sessions)...
@cfcs reported to get from pidgin user the auth request twice, after the first it's in state T_T
... need to investigate this
I request an option (via config file maybe?) to make the clock in the ui invisible.
My scenario is that I use jackline in a tmux session and every minute, I get an indication that something happened in that window. Tmux could work as a simple notification feature, but the clock makes that impossible.
limiting ciphersuites and protocol versions
now that we ping it every 45 seconds anyways, we can measure the time delta from request to response
Verify that control characters (VT100 escapes, UTF8 and the like) are stripped/handled to prevent contacts from messing up your UI.
Jackline should provide a way for users to ask SMP questions containing spaces.
New users often intuitively seem to attempt to accomplish this by quoting the question using double quotes, so maybe we should parse quotation?
What would be your preferred way to do this? Please discuss below :-)
as i suspected, just happened to me with 79d0ec6 ...
otherwise I'm always confused which rev my running clients were using... (also, clean or dirty).. requires some build system hackery unfortunately
related to #14 - send a whitespace (0x20) every now and then on non-busy streams (if they're not currently tls or sasl negotiating)
https://tools.ietf.org/html/rfc6120#section-4.6 contains some more details, some servers might even implement xmpp ping (xep-199)
It would be nice to have a feature to toggly/hide the buddy list to enable copy-paste of code and ASCII art, like mcabber has.
Consider automatically stripping '' from the beginning of messages and '' from the end of messages so we don't have to look at libpurple's HTML crap.
Perhaps this should be left in -- so users can tell people to stop using libpurple?
writing foo bar baz
to account [email protected]
starts an OTR session (if require_encryption
is set). if I now do /otrpolicy -REQUIRE_ENCRYPTION
no messages are sent (since the otr ctx has the old policy).
need to adjust all the ctx whenever I /otrpolicy
for a change
some clients (such as mcabber) append a random number/string to its resource on reconnect, but carry over the otr session... how to handle this?
also, when to dispose a session once the contact is unavailable? obviously we'd like to reuse the otr session ('coz we didn't send/received a finished message)
atm, only on /quit
anything is written (apart from configuration) -- but if computer crashes or jackline gets killed, the information is lost, specifically:
this should be either written when a modification took place, or every X minutes/seconds. prefered the former (with some sort of lock, similar to the notification.state, to avoid races)
in short: use nodename, require _xmpp_server (and _xmpp_client) srvname in x509 subjectAltNames https://tools.ietf.org/html/rfc6120#section-13.7.1.2.1 (currently nodename is checked against DNS in subjectAltNames)
more an mirleft/ocaml-x509
implementation issue...
whenever a session fails / jackline gets started... make this configurable!
For copying pastes from other users,
instead of starttls on 5222 (and fail hard in the case of 5222 and no starttls)
Accidentally hitting Ctrl-D will terminate the jackline session immediately, taking away unread messages with it.
in rfc6120 https://tools.ietf.org/html/rfc6120#section-3.2 - first do a DNS SRV lookup, then fallback to A/AAAA records (do an A lookup if the user provided a hostname explicitly!)
do reconnects and actually discover when tcp/and or tls/and or xmpp is down (currently getting hours later an ECONNRESET, not very useful)
It would be useful to have message receipts in jackline.
due to j.o.i sending a certificateRequest message, which ocaml-tls doesn't care about (yet, see client authentification PR mirleft/ocaml-tls#192)
before 0.1 I'd like to finish the following tasks:
The config generator tries to resolve the JID domain upon config generation ... why?
secrets shouldn't be part of config.sexp - rather have:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.