The only change to the code is the removal of most `require` forms,
and some Org-ification of the README. I have not deleted the elisp
files, in case we decide to change our tangling strategy down the line
and need the per-file contributor information and copyright notices.
The external notification libraries have not yet been moved to jabber.org.
In jabber-network-connect-async, the call to make-network-process can
fail in certain cases without creating a connection and without
calling our sentinel function, in particular if DNS resolution fails,
and that error case was not updated for the new error reporting
solution. This should now work properly.
Ensure that the final message, the one that stays in the echo area,
contains information about where we tried to connect to. Also
accumulate error messages for all addresses we tried.
DNS resolution errors from make-network-process are signalled
immediately, and not passed to the sentinel function. Make sure that
we pass such errors along, so DNS errors aren't buried in the
*fsm-debug* buffer.
When using native GnuTLS, we can now connect asynchronously, without
blocking Emacs if the remote server is slow to accept the connection
(or just times out).
Such connections are now identical to "network" (i.e. TLS-less)
connections, so I reverted jabber-starttls-connect to its previous
state: it is now used exclusively to connect using gnutls-cli external
processes.
Apparently sending an extra newline after each stanza was necessary
with the OpenSSL client, but it seems to be messing up native STARTTLS
negotiation more often than not (I suspect it's a race condition), and
removing it seems not to hurt when using STARTTLS with gnutls-cli.
jabber-starttls-process-input now signals an error on negotiation
failure, as gnutls-negotiate already does. Catch errors in
jabber-core, and put them as disconnection reason in the state data,
to get fewer and less confusing messages in the echo area.
When connecting to a Jabber server over SSL/TLS without STARTTLS
(the legacy "port 5223" method), any connection error would
cause the state machine to be stuck in the :connecting state,
unable to go back or forward. Fix this by catching and reporting
errors in jabber-ssl-connect.
Emacs 24 supports linking to the GnuTLS library. Let's use it when
available.
Also add a customisable variable for ignoring invalid certificates.
We should now be validating certificates against the XMPP server name,
not the hostname from DNS SRV, so there should be less need for this
now, but there's always the occasional basement server with a
self-signed certificate...
Creator: Magnus Henoch <mange@freemail.hu>
Remove global variables
Remove jabber-username, jabber-server, jabber-resource, jabber-nickname,
jabber-network-server and jabber-port, and all remaining references to
them.
Creator: Magnus Henoch <mange@freemail.hu>
Fix jabber-get-{connect,send}-function
Have jabber-get-connect-function and jabber-get-send-function use their
argument instead of the removed global variable jabber-connection-type.
Creator: Magnus Henoch <mange@freemail.hu>
Merge multi-account work
Patches applied:
* mange@freemail.hu--2005/emacs-jabber--fsm--0--patch-2
Only output car of events in fsm.el, to avoid overflowing debug buffers
* mange@freemail.hu--2005/emacs-jabber--fsm--0--patch-3
Apply 0.1ttn4 patch from Thien-Thi Nguyen
* mange@freemail.hu--2005/emacs-jabber--fsm--0--patch-4
Don't eval state-name in define-state and define-enter-state
* mange@freemail.hu--2005/emacs-jabber--fsm--0--patch-5
Fix previous change
* mange@freemail.hu--2005/emacs-jabber--fsm--0--patch-6
Apply patches I forgot about
* mange@freemail.hu--2005/emacs-jabber--fsm--0--patch-7
Add fsm-get-state
* mange@freemail.hu--2005/emacs-jabber--fsm--0--patch-8
fsm-get-state should really be fsm-get-state-data
* mange@freemail.hu--2005/emacs-jabber--fsm--0--patch-9
Add edebug declarations
* mange@freemail.hu--2005/emacs-jabber--fsm--0--patch-10
Catch and report errors in enter functions
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--base-0
tag of mange@freemail.hu--2005/emacs-jabber--fsm--0--patch-3
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-1
Start ewocizing roster
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-2
Use jabber-roster-update in jabber-process-roster
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-3
Merge from CVS
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-4
Merge fsm change
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-5
Merge fsm change
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-6
Use jabber-roster-update in jabber-presence-update-roster
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-7
Remove unused *xmlq* variable
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-8
Merge fsm change
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-9
Start converting jabber-core and jabber-conn to fsm style
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-10
Further hacking
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-11
Rough hacking at legacy authentication and IQ handling
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-12
Rough hacking at SASL authentication
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-13
Remove some obsolete variables and functions
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-14
Resource binding, session establishing; refactor roster retrieval
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-15
Remove some jabber-conn global variables. Fix or comment out dependent code.
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-16
Add missing parenthesis
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-17
Add fsm-get-state-data
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-18
Add :connection to state-data in proper time
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-19
Fix remaining references to global variables
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-20
Fix filter events
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-21
Fix various mismatched argument lists
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-22
Surface fixes to jabber-presence
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-23
Merge FSM changes
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-24
Rename jabber-post-connect-hook to jabber-post-connect-hooks
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-25
Merge from CVS (except patch-266)
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-26
Support STARTTLS (almost)
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-27
Fix SASL authentication
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-28
Typo: s/hook/hooks/
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-29
Forget SASL data when not needed
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-30
Store username, server and resource in state data
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-31
Remember which account to use in each chat buffer
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-32
Update signature of jabber-muc-process-message
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-33
Update signature of jabber-vcard-avatars-presence
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-34
Handle roster
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-35
Add missing parenthesis in jabber-read-account
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-36
Use header for roster ewoc
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-37
Remove trailing newline in jabber-resource-line-format
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-38
Properly update roster display
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-39
Fix double-connect check in jabber-connect
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-40
Fix jabber-disconnect
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-41
Ignore resource when checking whether already connected
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-42
Set jabber-account text proporty, and use it in jabber-read-account
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-43
Add connection argument to commands in jabber-disco
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-44
Adapt jabber-process-data, jabber-process-disco-{info,items}
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-45
Adapt jabber-version
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-46
Adapt jabber-browse
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-47
Adapt various jabber-presence functions
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-48
Use separate process buffers for different accounts
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-49
Include account property in roster. Fix jabber-chat-with-jid-at-point.
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-50
Add jabber-concat-rosters. Use it in jabber-read-jid-completing.
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-51
Adapt jabber-report-success
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-52
Adapt jabber-vcard
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-53
Adapt jabber-newdisco
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-54
Start adapting MUC
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-55
Adapt jabber-muc-process-presence and caller
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-56
Fix interactive use of jabber-send-default-presence
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-57
Handle sentinel events in :session-established state
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-58
Support selecting account interactively in jabber-connect.
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-59
Adapt jabber-events
* mange@freemail.hu--2005/emacs-jabber--multi-account--0--patch-60
Adapt jabber-history
Creator: Magnus Henoch <mange@freemail.hu>
Merge new filter
Patches applied:
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--base-0
tag of mange@freemail.hu--2005/emacs-jabber--cvs-head--0--patch-58
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-1
Rewrite jabber-filter
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-2
Fix TLS connections
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-3
Merge from mainline
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-4
Avoid reentering jabber-filter
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-5
Merge from mainline
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-6
Merge from mainline
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-8
Add jabber-xml-skip-tag-forward, and use it
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-9
Use proper arguments to jabber-xml-skip-tag-forward
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-10
Accept many more valid XML node-names in jabber-xml-skip-tag-forward
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-11
Merge from mainline
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-12
Merge from mainline
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-13
Merge from mainline
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-14
Fix logic error when sending composing events
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-15
XEmacs compatibility: s/float/number/
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-16
jabber-events-after-change: handle jabber-chatting-with being nil
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-17
XEmacs compatibility: format-time-string takes only two arguments
* mange@freemail.hu--2005/emacs-jabber--new-filter--0--patch-18
Merge from mainline
Creator: Magnus Henoch <mange@freemail.hu>
Merge SSL support
Patches applied:
* mange@freemail.hu--2005/emacs-jabber--ssl--0--base-0
tag of mange@freemail.hu--2005/emacs-jabber--cvs-head--0--patch-48
* mange@freemail.hu--2005/emacs-jabber--ssl--0--patch-1
Initial stab at merging SSL support
* mange@freemail.hu--2005/emacs-jabber--ssl--0--patch-2
Further hack SSL
* mange@freemail.hu--2005/emacs-jabber--ssl--0--patch-3
Put jabber-connection-type in group jabber-conn
* mange@freemail.hu--2005/emacs-jabber--ssl--0--patch-4
Handle partially received stream headers
* mange@freemail.hu--2005/emacs-jabber--ssl--0--patch-5
Document SSL
* mange@freemail.hu--2005/emacs-jabber--ssl--0--patch-6
Check for connection failure