]>
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 "\300\301!\210\300\302!\210\303\304!\207" [require jabber-disco cl-lib jabber-disco-advertise-feature "http://jabber.org/protocol/feature-neg"] 2) | |
9 | #@288 Parse a Feature Negotiation request, return alist representation. | |
10 | XML-DATA should have one child element, <x/>, in the jabber:x:data | |
11 | namespace. | |
12 | ||
13 | TYPE is either 'request or 'response. | |
14 | ||
15 | Returned alist has field name as key, and value is a list of offered | |
16 | alternatives. | |
17 | ||
18 | (fn XML-DATA TYPE)\1f | |
19 | (defalias 'jabber-fn-parse #[514 "\300\ 2\301\"@\211\203\e\0\211\302\ 1:\205\14\0\303\ 2\ 2\"\266\202\304\230\204!\0\305\306\307\310#\210\311\300\ 2\312\"\211\211\203w\0\211@\211\313\ 1:\2058\0\303\ 2\ 2\"\266\202\300\ 2\314\"@\300\ 3\315\"\ 2\ 6 \316\267\202c\0\317\320\ 3\"\202h\0\ 2\211AA\211\321\232?\205^\0\211\266\202\202h\0\322\323\ 6\v\"B\ 6\aB\262\a\266\ 3\ 1A\266\202\202'\0\210\ 1\207" [jabber-xml-get-children x xmlns xml-get-attribute-or-nil "jabber:x:data" jabber-signal-error "Modify" bad-request "Malformed Feature Negotiation" nil field var value option #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (request 75 response 82)) mapcar #[257 "\300\ 1\301\"@\211AA\211\302\232?\205\10\0\211\266\202@\207" [jabber-xml-get-children value #1=((""))] 5 "\n\n(fn OPTION)"] #1# error "Incorrect Feature Negotiation type: %s"] 15 (#$ . 243)]) | |
20 | #@190 Transform a feature alist into an <x/> node int the jabber:x:data namespace. | |
21 | Note that this is not the reverse of `jabber-fn-parse'. | |
22 | ||
23 | TYPE is either 'request or 'response. | |
24 | ||
25 | (fn ALIST TYPE)\1f | |
26 | (defalias 'jabber-fn-encode #[514 "\211\300=\301\302\303\ 3\203\ e\0\304\202\ f\0\305BD\306\307\310\ 5\"\ 6\ 6\"BB\207" [request x (xmlns . "jabber:x:data") type "form" "submit" mapcar make-closure #[257 "\301\302\303\ 3@BD\300\203\13\0\304\305\ 4A\"\202\1a\0\306\307\ 4A@ECBB\207" [V0 field (type . "list-single") var mapcar #[257 "\300\301\302\301\ 4EE\207" [option nil value] 6 "\n\n(fn OPTION)"] value nil] 6 "\n\n(fn FIELD)"]] 9 (#$ . 1366)]) | |
27 | #@400 Find values acceptable to both parties. | |
28 | ||
29 | MINE and THEIRS are alists, as returned by `jabber-fn-parse'. | |
30 | ||
31 | An alist is returned, where the keys are the negotiated variables, | |
32 | and the values are lists containing the preferred option. If | |
33 | negotiation is impossible, an error is signalled. The errors are as | |
34 | specified in XEP-0020, and not necessarily the ones of higher-level | |
35 | protocols. | |
36 | ||
37 | (fn MINE THEIRS)\1f | |
38 | (defalias 'jabber-fn-intersection #[514 "\300\301\ 3\"\300\301\ 3\"\302\ 2\303\"\210\302\ 1\303\"\210\304\ 2\ 2\305\306$\304\ 2\ 4\305\306$\ 1\203)\0\307\310\311\ 4@#\210\211\2034\0\307\312\313\ 3@#\210\266\ 2\314\ 2\211\203q\0\211@\315\ 1\ 6\b\"A\315\ 2\ 6\b\"A\316\ 2\ 2\305\306$\211\203b\0\ 3\ 1@D\ 6\ 6B\262\ 6\266\ 3\202j\0\307\310\311\ 6\ 6#\266\ 4\ 1A\266\202\2028\0\210\207" [mapcar car sort string-lessp cl-set-difference :test string= jabber-signal-error "Modify" not-acceptable "Cancel" feature-not-implemented nil assoc cl-intersection] 14 (#$ . 1982)]) | |
39 | (provide 'jabber-feature-neg) |