]>
Commit | Line | Data |
---|---|---|
1 | ;ELC\1c\0\0\0 | |
2 | ;;; Compiled | |
3 | ;;; in Emacs version 28.2 | |
4 | ;;; with all optimizations. | |
5 | ||
6 | ||
7 | ||
8 | (byte-code "\3001\f\0\301\302!0\210\202\r\0\210\3031\18\0\301\304!0\202\1c\0\210\202\1f\0\204,\0\3051+\0\301\306!0\210\202,\0\210\30718\0\301\310!0\210\2029\0\210\301\311!\210\312\313\314\315\316\317%\207" [(error) require gnutls (error) tls (error) ssl (error) starttls srv custom-declare-group jabber-conn nil "Jabber Connection Settings." :group jabber] 6) | |
9 | #@40 Return non-nil if we can use STARTTLS.\1f | |
10 | (defalias 'jabber-have-starttls #[0 "\302\303!\203\v\0\303 \206.\0\304\305!\205.\0\306\300!\203!\0\b\203!\0\307\b!\206.\0\306\301!\205.\0 \205.\0\307 !\207" [starttls-gnutls-program starttls-program fboundp gnutls-available-p featurep starttls boundp executable-find] 2 (#$ . 427)]) | |
11 | #@56 Default connection type. | |
12 | See `jabber-connect-methods'.\1f | |
13 | (defconst jabber-default-connection-type (byte-code "\300 \203\a\0\301\207\302\207" [jabber-have-starttls starttls network] 1) (#$ . 744)) | |
14 | (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\a\210\300\312\302\303\313DD\314\306\315\310\311&\a\207" [custom-declare-variable jabber-connection-ssl-program funcall function #[0 "\300\207" [nil] 1 #1=""] "Program used for SSL/TLS connections.\nnil means prefer gnutls but fall back to openssl.\n'gnutls' means use gnutls (through `open-tls-stream').\n'openssl means use openssl (through `open-ssl-stream')." :type (choice (const :tag "Prefer gnutls, fall back to openssl" nil) (const :tag "Use gnutls" gnutls) (const :tag "Use openssl" openssl)) :group jabber-conn jabber-invalid-certificate-servers #[0 "\300\207" [nil] 1 #1#] "Jabber servers for which we accept invalid TLS certificates.\nThis is a list of server names, each matching the hostname part\nof your JID.\n\nThis option has effect only when using native GnuTLS in Emacs 24\nor later." (repeat string)] 8) | |
15 | #@158 Alist of connection methods and functions. | |
16 | First item is the symbol naming the method. | |
17 | Second item is the connect function. | |
18 | Third item is the send function.\1f | |
19 | (defvar jabber-connect-methods (byte-code "\300\301\302\303!\203\11\0\303 \203\11\0\304\202\12\0\305\306BB\307BB\207" [(network jabber-network-connect jabber-network-send) starttls fboundp gnutls-available-p jabber-network-connect jabber-starttls-connect (jabber-network-send) ((ssl jabber-ssl-connect jabber-ssl-send) (virtual jabber-virtual-connect jabber-virtual-send))] 4) (#$ . 1820)) | |
20 | #@107 Get the connect function associated with TYPE. | |
21 | TYPE is a symbol; see `jabber-connection-type'. | |
22 | ||
23 | (fn TYPE)\1f | |
24 | (defalias 'jabber-get-connect-function #[257 "\211\b\236\211A@\207" [jabber-connect-methods] 3 (#$ . 2365)]) | |
25 | #@104 Get the send function associated with TYPE. | |
26 | TYPE is a symbol; see `jabber-connection-type'. | |
27 | ||
28 | (fn TYPE)\1f | |
29 | (defalias 'jabber-get-send-function #[257 "\211\b\236\301\ 18\207" [jabber-connect-methods 2] 4 (#$ . 2586)]) | |
30 | #@176 Find host and port to connect to. | |
31 | If NETWORK-SERVER and/or PORT are specified, use them. | |
32 | If we can't find SRV records, use standard defaults. | |
33 | ||
34 | (fn SERVER NETWORK-SERVER PORT)\1f | |
35 | (defalias 'jabber-srv-targets #[771 "\ 1\204\b\0\211\203\15\0\ 1\206\r\0\ 2\ 1\206\12\0\300BC\207\3011\"\0\302\303\ 4P!0\202&\0\210\202)\0\206-\0\ 2\300BC\207" [5222 (error) srv-lookup "_xmpp-client._tcp."] 6 (#$ . 2803)]) | |
36 | #@245 Connect to a Jabber server with a plain network connection. | |
37 | Send a message of the form (:connected CONNECTION) to FSM if | |
38 | connection succeeds. Send a message (:connection-failed ERRORS) if | |
39 | connection fails. | |
40 | ||
41 | (fn FSM SERVER NETWORK-SERVER PORT)\1f | |
42 | (defalias 'jabber-network-connect #[1028 "\300\301\302\"\203\ e\0\303\ 4\ 4\ 4\ 4$\207\304\ 4\ 4\ 4\ 4$\207" [featurep make-network-process (:nowait t) jabber-network-connect-async jabber-network-connect-sync] 9 (#$ . 3182)]) | |
43 | #@39 | |
44 | ||
45 | (fn FSM SERVER NETWORK-SERVER PORT)\1f | |
46 | (defalias 'jabber-network-connect-async #[1028 "\300\ 3\ 3\ 3#\301C\ 5\301C\211\302\303\ 5\ 5\ 5$\240\210\304\305\ 5@@\ 6\ 6@A#\210\211\242\ 4@\ 5A\"\207" [jabber-srv-targets nil make-closure #[514 "\ 1\ 1\304\305\301\"\304\306\300\301\302\ 6\a\ 6\a&\ 6\3071F\0\3101=\0\311\312\313\314\315\v!\316\ 6\v@\317\ 6\rA\320\321\322\323\324\325\211\304\326\ 6\13\ 6\13#\266\202&\ e00\2070\ 1\325\ 2AA@\"\207\ 1\325\327\ 3!\"\207" [V0 V1 V2 jabber-process-buffer make-closure #[257 "\301\300\302\ 3D\"\207" [V0 fsm-send :connected] 5 "\n\n(fn C)"] #[514 "\211G\305V\203\17\0\211\ 1GSH\306=\203\17\0\211\305\307O\262\ 1\310\311\303@\303A\ 4$\312\313\ 2\"\210\300\ 1\300\242B\240\266\ 2\ 1\2034\0\314\ 2!\210\304\203J\0\312\315\304@@\304@A#\210\302\242\304@\304A\"\207\316\301\317\300\242\237D\"\207" [V0 V1 V2 V3 V4 0 10 -1 format "Couldn't connect to %s:%s: %s" message "%s" delete-process "Connecting to %s:%s..." fsm-send :connection-failed] 7 "\n\n(fn C STATUS)"] (error) (file-error) make-network-process :name "jabber" :buffer generate-new-buffer :host :service :coding utf-8 :nowait t :sentinel nil #[514 "\302\303\ 2\"\203\v\0\300\ 2!\207\302\304\ 2\"\203\17\0\301\ 2\ 2\"\207\302\305\ 2\"\203 \0\306\207\307\310\ 2\"\207" [V0 V1 string-match "^open" "^failed" "^deleted" nil message "Unknown sentinel status `%s'"] 5 "\n\n(fn CONNECTION STATUS)"] error-message-string] 26 "\n\n(fn TARGET REMAINING-TARGETS)"] message "Connecting to %s:%s..."] 14 (#$ . 3639)]) | |
47 | #@39 | |
48 | ||
49 | (fn FSM SERVER NETWORK-SERVER PORT)\1f | |
50 | (defalias 'jabber-network-connect-sync #[1028 "\303\211\304\ 5\ 5\ 5#\305\ 2\18\ 3\19\3062\233\0\ 1\211\203\221\0\211@\3071q\0\3101S\0\311\n!\305C\312\313\ 3\ 3#\216\211\314\315\ 4\ 6\ 6@\ 6\aA$\240\210)\211\242\205K\0\316\ 6\f\317\ 3\242D\"\210\320\306\ 2\242\"\266\20200\210\202\212\00\321\322\ 3@\ 4A\ 4AA@$\323\324\ 2\"\210\211\ 5B\211\262\ 6\262\ 1\266\ 2\202\212\0\321\322\ 3@\ 4A\325\ 5!$\323\324\ 2\"\210\211\ 5B\211\262\ 6\262\ 1\266\ 2\ 1A\266\202\202\11\0\210\316\ 6\b\326\ 3\237D\"0*\207" [coding-system-for-write coding-system-for-read jabber-process-buffer utf-8 jabber-srv-targets nil connected (error) (file-error) generate-new-buffer make-closure #[0 "\301\242\206\ 6\0\n?\205\r\0\303\300!\207" [V0 V1 jabber-debug-keep-process-buffers kill-buffer] 2] open-network-stream "jabber" fsm-send :connected throw format "Couldn't connect to %s:%s: %s" message "%s" error-message-string :connection-failed] 18 (#$ . 5033)]) | |
51 | #@91 Send a string via a plain TCP/IP connection to the Jabber Server. | |
52 | ||
53 | (fn CONNECTION STRING)\1f | |
54 | (defalias 'jabber-network-send #[514 "\300\ 2\ 2\"\207" [process-send-string] 5 (#$ . 5922)]) | |
55 | #@235 Connect via OpenSSL or GnuTLS to a Jabber Server. | |
56 | Send a message of the form (:connected CONNECTION) to FSM if | |
57 | connection succeeds. Send a message (:connection-failed ERRORS) if | |
58 | connection fails. | |
59 | ||
60 | (fn FSM SERVER NETWORK-SERVER PORT)\1f | |
61 | (defalias 'jabber-ssl-connect #[1028 "\305\211\b\306>\203\12\0\307\310!\203\12\0\310\202%\0\b\311>\203\"\0\307\312!\203\"\0\312\202%\0\313\314!\315\ 2\19\ 3\1a\316\v!\315\ 6\a\2065\0\ 6\b\262\b\ 6\ 6\206=\0\317\262\a\3201S\0\ 3\321\ 3\ 6\n\ 6\n$\211\262\ 20\210\202e\0\322\323\ 6\n\ 6\n\324\ 5!$\262\ 4\325\326\ 5\"\266\ 2\211\204q\0\f\204q\0\327\ 2!\210\211\203\201\0\330\ 6\n\331\ 3D\"\266\202\202\217\0\330\ 6\n\332\ 5\205\213\0\ 5CD\"\266\202*\207" [jabber-connection-ssl-program coding-system-for-write coding-system-for-read jabber-process-buffer jabber-debug-keep-process-buffers utf-8 (nil gnutls) fboundp open-tls-stream (nil openssl) open-ssl-stream error "Neither TLS nor SSL connect functions available" nil generate-new-buffer 5223 (error) "jabber" format "Couldn't connect to %s:%d: %s" error-message-string message "%s" kill-buffer fsm-send :connected :connection-failed] 17 (#$ . 6109)]) | |
62 | #@93 Send a string via an SSL-encrypted connection to the Jabber Server. | |
63 | ||
64 | (fn CONNECTION STRING)\1f | |
65 | (defalias 'jabber-ssl-send #[514 "\300\ 2\ 2\"\210\300\ 2\301\"\207" [process-send-string "\n"] 5 (#$ . 7177)]) | |
66 | #@244 Connect via an external GnuTLS process to a Jabber Server. | |
67 | Send a message of the form (:connected CONNECTION) to FSM if | |
68 | connection succeeds. Send a message (:connection-failed ERRORS) if | |
69 | connection fails. | |
70 | ||
71 | (fn FSM SERVER NETWORK-SERVER PORT)\1f | |
72 | (defalias 'jabber-starttls-connect #[1028 "\303\211\304\ 5\ 5\ 5#\305\ 2\18\ 3\19\306\307!\204\16\0\310\311!\210\3122\227\0\ 1\211\203\215\0\211@\3131r\0\314\n!\305C\315\316\ 3\ 3#\216\211\307\317\ 4\ 6\ 6@\ 6\aA$\240\210)\211\242\204]\0\320\321\ 4@\ 5A#\322\323\ 2\"\210\211\ 6\ 6B\211\262\a\262\ 1\266\202\202m\0\324\ 6\f\325\ 3\242D\"\210\326\312\ 2\242\"\266\2020\210\202\206\0\320\327\ 3\330\ 4!#\322\323\ 2\"\210\211\ 5B\211\262\ 6\266\ 3\ 1A\266\202\202\e\0\210\324\ 6\b\331\ 3\237D\"0*\207" [coding-system-for-write coding-system-for-read jabber-process-buffer utf-8 jabber-srv-targets nil fboundp starttls-open-stream error "The starttls.el library is not available" connected (error) generate-new-buffer make-closure #[0 "\301\242\206\ 6\0\n?\205\r\0\303\300!\207" [V0 V1 jabber-debug-keep-process-buffers kill-buffer] 2] "jabber" format "Couldn't connect to %s:%s" message "%s" fsm-send :connected throw "Couldn't connect to %s: %s" error-message-string :connection-failed] 18 (#$ . 7382)]) | |
73 | #@43 Initiate a STARTTLS connection. | |
74 | ||
75 | (fn FSM)\1f | |
76 | (defalias 'jabber-starttls-initiate #[257 "\300\ 1\301\"\207" [jabber-send-sexp (starttls ((xmlns . "urn:ietf:params:xml:ns:xmpp-tls")))] 4 (#$ . 8550)]) | |
77 | #@176 Process result of starttls request. | |
78 | On failure, signal error. | |
79 | ||
80 | XML-DATA is the parsed tree data from the stream (stanzas) | |
81 | obtained from `xml-parse-region'. | |
82 | ||
83 | (fn FSM XML-DATA)\1f | |
84 | (defalias 'jabber-starttls-process-input #[514 "\211@\301=\2039\0\302\ 2!\303\ 1\304\"\305\ 1!\211\306\267\2027\0\303\ 3\307\"\211\b\235?\310\311\ 5\312\ 5\313\ 6\ 6\314\ 6\b&\b\207\315\ 2!\2068\0\316\317!\207\320\207\211@\321=\205C\0\316\322!\207" [jabber-invalid-certificate-servers proceed fsm-get-state-data plist-get :connection process-type #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (network 23 real 45)) :server gnutls-negotiate :process :hostname :verify-hostname-error :verify-error starttls-negotiate error "Negotiation failure" nil failure "Command rejected by server"] 16 (#$ . 8751)]) | |
85 | #@174 Function to use for sending stanzas on a virtual connection. | |
86 | The function should accept two arguments, the connection object | |
87 | and a string that the connection wants to send.\1f | |
88 | (defvar *jabber-virtual-server-function* nil (#$ . 9547)) | |
89 | #@188 Connect to a virtual "server". | |
90 | Use `*jabber-virtual-server-function*' as send function. | |
91 | FSM is the finite state machine created in jabber.el library. | |
92 | ||
93 | (fn FSM SERVER NETWORK-SERVER PORT)\1f | |
94 | (defalias 'jabber-virtual-connect #[1028 "\301\b!\204\n\0\302\303!\210\304\ 4\305\ 6\ 6D\"\207" [*jabber-virtual-server-function* functionp error "No virtual server function specified" fsm-send :connected] 8 (#$ . 9785)]) | |
95 | #@26 | |
96 | ||
97 | (fn CONNECTION STRING)\1f | |
98 | (defalias 'jabber-virtual-send #[514 "\b\ 2\ 2\"\207" [*jabber-virtual-server-function*] 5 (#$ . 10192)]) | |
99 | (provide 'jabber-conn) |