--- /srv/reproducible-results/rbuild-debian/r-b-build.Xxbk37y1/b1/jsjac_1.3.4+dfsg-3_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.Xxbk37y1/b2/jsjac_1.3.4+dfsg-3_amd64.changes ├── Files │ @@ -1,2 +1,2 @@ │ │ - 6edc2e157f52546364c777ca6b03806a 92000 javascript optional libjs-jac_1.3.4+dfsg-3_all.deb │ + 62726615fb72d95d311d2cfb78979a43 84780 javascript optional libjs-jac_1.3.4+dfsg-3_all.deb ├── libjs-jac_1.3.4+dfsg-3_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2021-01-04 23:02:43.000000 debian-binary │ │ --rw-r--r-- 0 0 0 2684 2021-01-04 23:02:43.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 89124 2021-01-04 23:02:43.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 2688 2021-01-04 23:02:43.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 81900 2021-01-04 23:02:43.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: libjs-jac │ │ │ │ Source: jsjac │ │ │ │ Version: 1.3.4+dfsg-3 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Debian XMPP Maintainers │ │ │ │ -Installed-Size: 1043 │ │ │ │ +Installed-Size: 1011 │ │ │ │ Recommends: javascript-common │ │ │ │ Suggests: ejabberd │ │ │ │ Section: javascript │ │ │ │ Priority: optional │ │ │ │ Homepage: https://github.com/sstrigler/JSJaC │ │ │ │ Description: JavaScript Jabber Client Library │ │ │ │ JSJaC is a jabber client library written in JavaScript to ease implementation │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -76,11 +76,11 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6305 2021-01-04 23:02:43.000000 ./usr/share/doc/libjs-jac/doc/overview-tree.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 660 2021-01-04 23:02:43.000000 ./usr/share/doc/libjs-jac/doc/overview-xmlextras.js.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1583 2021-01-04 23:02:43.000000 ./usr/share/doc/libjs-jac/doc/stylesheet.css │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2011-03-14 00:20:43.000000 ./usr/share/doc/libjs-jac/examples/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9874 2011-03-14 00:20:43.000000 ./usr/share/doc/libjs-jac/examples/simpleclient.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 62311 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.min.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 164096 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.uncompressed.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19782 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.min.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 173999 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.uncompressed.js │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.js -> jsjac.uncompressed.js │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.packed.js -> jsjac.min.js │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Date.html │ │ │ │ @@ -362,10 +362,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -61,8 +61,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Document.html │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -20,8 +20,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/GLOBALS.html │ │ │ │ @@ -1609,10 +1609,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -278,8 +278,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCConnection.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ Direct Known Subclasses: │ │ │ │
│ │ │ │ - JSJaCHttpPollingConnection, JSJaCHttpBindingConnection │ │ │ │ + JSJaCHttpBindingConnection, JSJaCHttpPollingConnection │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ @@ -1054,10 +1054,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -8,15 +8,15 @@ │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ ***** Class JSJaCConnection ***** │ │ │ │ │ Object │ │ │ │ │ | │ │ │ │ │ +--JSJaCConnection │ │ │ │ │ Direct Known Subclasses: │ │ │ │ │ - JSJaCHttpPollingConnection, JSJaCHttpBindingConnection │ │ │ │ │ + JSJaCHttpBindingConnection, JSJaCHttpPollingConnection │ │ │ │ │ =============================================================================== │ │ │ │ │ class JSJaCConnection │ │ │ │ │ │ │ │ │ │ Somewhat abstract base class for jabber connections. Contains all of the code │ │ │ │ │ in common for all jabber connections │ │ │ │ │ Defined in JSJaCConnection.js │ │ │ │ │ │ │ │ │ │ @@ -283,8 +283,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCConsoleLogger.html │ │ │ │ @@ -448,10 +448,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -90,8 +90,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCCookie.html │ │ │ │ @@ -911,10 +911,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -203,8 +203,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCCookieException.html │ │ │ │ @@ -308,10 +308,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -51,8 +51,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCHttpBindingConnection.html │ │ │ │ @@ -416,10 +416,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -78,8 +78,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCHttpPollingConnection.html │ │ │ │ @@ -350,10 +350,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -69,8 +69,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCIQ.html │ │ │ │ @@ -542,10 +542,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -113,8 +113,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCJID.html │ │ │ │ @@ -747,10 +747,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -158,8 +158,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCJIDInvalidException.html │ │ │ │ @@ -309,10 +309,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -55,8 +55,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCJSON.html │ │ │ │ @@ -330,10 +330,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -50,8 +50,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCKeys.html │ │ │ │ @@ -444,10 +444,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -86,8 +86,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCMessage.html │ │ │ │ @@ -579,10 +579,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -119,8 +119,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCPacket.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ Direct Known Subclasses: │ │ │ │
│ │ │ │ - JSJaCMessage, JSJaCIQ, JSJaCPresence │ │ │ │ + JSJaCMessage, JSJaCPresence, JSJaCIQ │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ @@ -1332,10 +1332,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -8,15 +8,15 @@ │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ ***** Class JSJaCPacket ***** │ │ │ │ │ Object │ │ │ │ │ | │ │ │ │ │ +--JSJaCPacket │ │ │ │ │ Direct Known Subclasses: │ │ │ │ │ - JSJaCMessage, JSJaCIQ, JSJaCPresence │ │ │ │ │ + JSJaCMessage, JSJaCPresence, JSJaCIQ │ │ │ │ │ =============================================================================== │ │ │ │ │ class JSJaCPacket │ │ │ │ │ │ │ │ │ │ Somewhat abstract base class for all kinds of specialised packets │ │ │ │ │ Defined in JSJaCPacket.js │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ @@ -294,8 +294,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCPresence.html │ │ │ │ @@ -639,10 +639,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -137,8 +137,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Node.html │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -20,8 +20,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Number.html │ │ │ │ @@ -309,10 +309,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -44,8 +44,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/STANZA_ERROR.html │ │ │ │ @@ -314,10 +314,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -53,8 +53,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/String.html │ │ │ │ @@ -265,10 +265,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -36,8 +36,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT_CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/XMLDocument.html │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -20,8 +20,8 @@ │ │ │ │ │ │ │ │ │ │ Overview File  Class�Tree Index Help  JSJaC │ │ │ │ │  PREV_CLASS  NEXT CLASS FRAMES    NO FRAMES     /TR> │ │ │ │ │ All_Classes │ │ │ │ │ SUMMARY: FIELD | CONSTR | MEDETAIL: FIELD | CONSTR | METHOD │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/help-doc.html │ │ │ │ @@ -151,10 +151,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -38,8 +38,8 @@ │ │ │ │ │ =============================================================================== │ │ │ │ │ │ │ │ │ │ Overview File Class Tree Index  HelpJSJaC │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES     │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/index-all.html │ │ │ │ @@ -1379,10 +1379,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -440,8 +440,8 @@ │ │ │ │ │ =============================================================================== │ │ │ │ │  A B C D E G H I J L M N O P R S T U V W X │ │ │ │ │ Overview File Class Tree  Index�Help�JSJaC │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES     │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaC.js.html │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -71,8 +71,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCBuilder.js.html │ │ │ │ @@ -277,10 +277,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -148,8 +148,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConfig.js.html │ │ │ │ @@ -172,10 +172,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -41,8 +41,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConnection.js.html │ │ │ │ @@ -76,16 +76,16 @@ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ Contains all things in common for all subtypes of connections │ │ │ │ supported. │ │ │ │ -

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ -
Version: $Revision$

│ │ │ │ +

Version: $Revision$

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ +
│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1454,10 +1454,10 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -5,17 +5,17 @@ │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ ***** JSJaCConnection.js ***** │ │ │ │ │ *** Summary *** │ │ │ │ │ Contains all things in common for all subtypes of connections supported. │ │ │ │ │ │ │ │ │ │ -Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ Version:$Revision$ │ │ │ │ │ │ │ │ │ │ +Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ =============================================================================== │ │ │ │ │ ____________________________________________________________________ │ │ │ │ │ |Class_Summary_______________________________________________________| │ │ │ │ │ |JSJaCConnection|Somewhat_abstract_base_class_for_jabber_connections.| │ │ │ │ │ =============================================================================== │ │ │ │ │ │ │ │ │ │ /** │ │ │ │ │ @@ -1343,8 +1343,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConsoleLogger.js.html │ │ │ │ @@ -239,10 +239,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -95,8 +95,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConstants.js.html │ │ │ │ @@ -259,10 +259,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -115,8 +115,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCCookie.js.html │ │ │ │ @@ -392,10 +392,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -243,8 +243,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCError.js.html │ │ │ │ @@ -161,10 +161,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -30,8 +30,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCHttpBindingConnection.js.html │ │ │ │ @@ -75,16 +75,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ All stuff related to HTTP Binding │ │ │ │ -

Version: $Revision$

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ -
│ │ │ │ +

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ +
Version: $Revision$

│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -695,10 +695,10 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -5,17 +5,17 @@ │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ ***** JSJaCHttpBindingConnection.js ***** │ │ │ │ │ *** Summary *** │ │ │ │ │ All stuff related to HTTP Binding │ │ │ │ │ │ │ │ │ │ +Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ Version:$Revision$ │ │ │ │ │ │ │ │ │ │ -Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ =============================================================================== │ │ │ │ │ _____________________________________________________________________________ │ │ │ │ │ |Class_Summary________________________________________________________________| │ │ │ │ │ |JSJaCHttpBindingConnection|Implementation of XMPP_Over_BOSH formerly known as| │ │ │ │ │ |__________________________|HTTP_Binding._____________________________________| │ │ │ │ │ =============================================================================== │ │ │ │ │ │ │ │ │ │ @@ -572,8 +572,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCHttpPollingConnection.js.html │ │ │ │ @@ -498,10 +498,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -364,8 +364,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCJID.js.html │ │ │ │ @@ -370,10 +370,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -222,8 +222,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCJSON.js.html │ │ │ │ @@ -295,10 +295,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -153,8 +153,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCKeys.js.html │ │ │ │ @@ -229,10 +229,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -85,8 +85,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCPacket.js.html │ │ │ │ @@ -75,16 +75,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ Contains all Jabber/XMPP packet related classes. │ │ │ │ -

Version: $Revision$

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ -
│ │ │ │ +

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ +
Version: $Revision$

│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -908,10 +908,10 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -5,17 +5,17 @@ │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ ***** JSJaCPacket.js ***** │ │ │ │ │ *** Summary *** │ │ │ │ │ Contains all Jabber/XMPP packet related classes. │ │ │ │ │ │ │ │ │ │ +Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ Version:$Revision$ │ │ │ │ │ │ │ │ │ │ -Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ =============================================================================== │ │ │ │ │ _______________________________________________________________________ │ │ │ │ │ |Class_Summary__________________________________________________________| │ │ │ │ │ |JSJaCIQ______|Models_the_XMPP_notion_of_an_'iq'_packet_________________| │ │ │ │ │ |JSJaCMessage_|Models_the_XMPP_notion_of_an_'message'_packet____________| │ │ │ │ │ |JSJaCPacket |Somewhat abstract base class for all kinds of specialised| │ │ │ │ │ |_____________|packets__________________________________________________| │ │ │ │ │ @@ -772,8 +772,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-crypt.js.html │ │ │ │ @@ -1523,10 +1523,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -764,8 +764,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-header.js.html │ │ │ │ @@ -155,10 +155,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -25,8 +25,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-jsextras.js.html │ │ │ │ @@ -75,16 +75,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ Collection of functions to make live easier │ │ │ │ -

Author: Stefan Strigler │ │ │ │ -
Version: $Revision$

│ │ │ │ +

Version: $Revision$

Author: Stefan Strigler │ │ │ │ +
│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -239,10 +239,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -5,17 +5,17 @@ │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ ***** jsextras.js ***** │ │ │ │ │ *** Summary *** │ │ │ │ │ Collection of functions to make live easier │ │ │ │ │ │ │ │ │ │ -Author: Stefan Strigler │ │ │ │ │ Version:$Revision$ │ │ │ │ │ │ │ │ │ │ +Author: Stefan Strigler │ │ │ │ │ =============================================================================== │ │ │ │ │ │ │ │ │ │ /** │ │ │ │ │ * @fileoverview Collection of functions to make live easier │ │ │ │ │ * @author Stefan Strigler │ │ │ │ │ * @version $Revision$ │ │ │ │ │ */ │ │ │ │ │ @@ -112,8 +112,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-xmlextras.js.html │ │ │ │ @@ -78,16 +78,16 @@ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ Wrapper to make working with XmlHttpRequest and the │ │ │ │ DOM more convenient (cross browser compliance). │ │ │ │ this code is taken from │ │ │ │ http://webfx.eae.net/dhtml/xmlextras/xmlextras.html │ │ │ │ -

Version: $Revision$

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ -
│ │ │ │ +

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ +
Version: $Revision$

│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -383,10 +383,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -7,17 +7,17 @@ │ │ │ │ │ =============================================================================== │ │ │ │ │ ***** xmlextras.js ***** │ │ │ │ │ *** Summary *** │ │ │ │ │ Wrapper to make working with XmlHttpRequest and the DOM more convenient (cross │ │ │ │ │ browser compliance). this code is taken from http://webfx.eae.net/dhtml/ │ │ │ │ │ xmlextras/xmlextras.html │ │ │ │ │ │ │ │ │ │ +Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ Version:$Revision$ │ │ │ │ │ │ │ │ │ │ -Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ =============================================================================== │ │ │ │ │ │ │ │ │ │ /* Copyright 2006 Erik Arvidsson │ │ │ │ │ * │ │ │ │ │ * Licensed under the Apache License, Version 2.0 (the "License"); you │ │ │ │ │ * may not use this file except in compliance with the License. You │ │ │ │ │ * may obtain a copy of the License at │ │ │ │ │ @@ -255,8 +255,8 @@ │ │ │ │ │ │ │ │ │ │ Overview  File�Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary.html │ │ │ │ @@ -258,10 +258,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -41,8 +41,8 @@ │ │ │ │ │ │ │ │ │ │  Overview�File Class Tree ->Index Help JSJaC │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-tree.html │ │ │ │ @@ -133,10 +133,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024
│ │ │ │ +
Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -35,8 +35,8 @@ │ │ │ │ │ Overview File Class  Tree� - Help JSJaC │ │ │ │ │   >Index │ │ │ │ │   │ │ │ │ │  PREV   NEFRAMES    NO_FRAMES    │ │ │ │ │ All_Classes │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by JSDoc on Sat Jan 6 09:39:37 2024 │ │ │ │ │ +Documentation generated by JSDoc on Sat Feb 8 18:04:39 2025 │ │ │ ├── ./usr/share/javascript/jsjac/jsjac.min.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -903,1859 +903,8 @@ │ │ │ │ │ var ERR_REDIRECT = STANZA_ERROR("302", "modify", "redirect"); │ │ │ │ │ var ERR_REGISTRATION_REQUIRED = STANZA_ERROR("407", "auth", "registration-required"); │ │ │ │ │ var ERR_REMOTE_SERVER_NOT_FOUND = STANZA_ERROR("404", "cancel", "remote-server-not-found"); │ │ │ │ │ var ERR_REMOTE_SERVER_TIMEOUT = STANZA_ERROR("504", "wait", "remote-server-timeout"); │ │ │ │ │ var ERR_RESOURCE_CONSTRAINT = STANZA_ERROR("500", "wait", "resource-constraint"); │ │ │ │ │ var ERR_SERVICE_UNAVAILABLE = STANZA_ERROR("503", "cancel", "service-unavailable"); │ │ │ │ │ var ERR_SUBSCRIPTION_REQUIRED = STANZA_ERROR("407", "auth", "subscription-required"); │ │ │ │ │ -var ERR_UNEXPECTED_REQUEST = STANZA_ERROR("400", "wait", "unexpected-request"); │ │ │ │ │ - │ │ │ │ │ -function JSJaCConsoleLogger(a) { │ │ │ │ │ - this.level = a || 4; │ │ │ │ │ - this.start = function() {}; │ │ │ │ │ - this.log = function(c, d) { │ │ │ │ │ - d = d || 0; │ │ │ │ │ - if (d > this.level) { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - if (typeof(console) == "undefined") { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - try { │ │ │ │ │ - switch (d) { │ │ │ │ │ - case 0: │ │ │ │ │ - console.warn(c); │ │ │ │ │ - break; │ │ │ │ │ - case 1: │ │ │ │ │ - console.error(c); │ │ │ │ │ - break; │ │ │ │ │ - case 2: │ │ │ │ │ - console.info(c); │ │ │ │ │ - break; │ │ │ │ │ - case 4: │ │ │ │ │ - console.debug(c); │ │ │ │ │ - break; │ │ │ │ │ - default: │ │ │ │ │ - console.log(c); │ │ │ │ │ - break │ │ │ │ │ - } │ │ │ │ │ - } catch (b) { │ │ │ │ │ - try { │ │ │ │ │ - console.log(c) │ │ │ │ │ - } catch (b) {} │ │ │ │ │ - } │ │ │ │ │ - }; │ │ │ │ │ - this.setLevel = function(b) { │ │ │ │ │ - this.level = b; │ │ │ │ │ - return this │ │ │ │ │ - }; │ │ │ │ │ - this.getLevel = function() { │ │ │ │ │ - return this.level │ │ │ │ │ - } │ │ │ │ │ -} │ │ │ │ │ - │ │ │ │ │ -function JSJaCCookie(a, d, b, c, e) { │ │ │ │ │ - if (window == this) { │ │ │ │ │ - return new JSJaCCookie(a, d, b, c, e) │ │ │ │ │ - } │ │ │ │ │ - this.name = a; │ │ │ │ │ - this.value = d; │ │ │ │ │ - this.secs = b; │ │ │ │ │ - this.domain = c; │ │ │ │ │ - this.path = e; │ │ │ │ │ - this.write = function() { │ │ │ │ │ - if (this.secs) { │ │ │ │ │ - var g = new Date(); │ │ │ │ │ - g.setTime(g.getTime() + (this.secs * 1000)); │ │ │ │ │ - var f = "; expires=" + g.toGMTString() │ │ │ │ │ - } else { │ │ │ │ │ - var f = "" │ │ │ │ │ - } │ │ │ │ │ - var h = this.domain ? "; domain=" + this.domain : ""; │ │ │ │ │ - var i = this.path ? "; path=" + this.path : "; path=/"; │ │ │ │ │ - document.cookie = this.getName() + "=" + JSJaCCookie._escape(this.getValue()) + f + h + i │ │ │ │ │ - }; │ │ │ │ │ - this.erase = function() { │ │ │ │ │ - var f = new JSJaCCookie(this.getName(), "", -1); │ │ │ │ │ - f.write() │ │ │ │ │ - }; │ │ │ │ │ - this.getName = function() { │ │ │ │ │ - return this.name │ │ │ │ │ - }; │ │ │ │ │ - this.setName = function(f) { │ │ │ │ │ - this.name = f; │ │ │ │ │ - return this │ │ │ │ │ - }; │ │ │ │ │ - this.getValue = function() { │ │ │ │ │ - return this.value │ │ │ │ │ - }; │ │ │ │ │ - this.setValue = function(f) { │ │ │ │ │ - this.value = f; │ │ │ │ │ - return this │ │ │ │ │ - }; │ │ │ │ │ - this.setDomain = function(f) { │ │ │ │ │ - this.domain = f; │ │ │ │ │ - return this │ │ │ │ │ - }; │ │ │ │ │ - this.setPath = function(f) { │ │ │ │ │ - this.path = f; │ │ │ │ │ - return this │ │ │ │ │ - } │ │ │ │ │ -} │ │ │ │ │ -JSJaCCookie.read = function(b) { │ │ │ │ │ - var e = b + "="; │ │ │ │ │ - var a = document.cookie.split(";"); │ │ │ │ │ - for (var d = 0; d < a.length; d++) { │ │ │ │ │ - var f = a[d]; │ │ │ │ │ - while (f.charAt(0) == " ") { │ │ │ │ │ - f = f.substring(1, f.length) │ │ │ │ │ - } │ │ │ │ │ - if (f.indexOf(e) == 0) { │ │ │ │ │ - return new JSJaCCookie(b, JSJaCCookie._unescape(f.substring(e.length, f.length))) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - throw new JSJaCCookieException("Cookie not found") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCCookie.get = function(a) { │ │ │ │ │ - return JSJaCCookie.read(a).getValue() │ │ │ │ │ -}; │ │ │ │ │ -JSJaCCookie.remove = function(a) { │ │ │ │ │ - JSJaCCookie.read(a).erase() │ │ │ │ │ -}; │ │ │ │ │ -JSJaCCookie._escape = function(a) { │ │ │ │ │ - return a.replace(/;/g, "%3AB") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCCookie._unescape = function(a) { │ │ │ │ │ - return a.replace(/%3AB/g, ";") │ │ │ │ │ -}; │ │ │ │ │ - │ │ │ │ │ -function JSJaCCookieException(a) { │ │ │ │ │ - this.message = a; │ │ │ │ │ - this.name = "CookieException" │ │ │ │ │ -} │ │ │ │ │ - │ │ │ │ │ -function JSJaCError(c, b, d) { │ │ │ │ │ - var a = XmlDocument.create("error", "jsjac"); │ │ │ │ │ - a.documentElement.setAttribute("code", c); │ │ │ │ │ - a.documentElement.setAttribute("type", b); │ │ │ │ │ - if (d) { │ │ │ │ │ - a.documentElement.appendChild(a.createElement(d)).setAttribute("xmlns", "urn:ietf:params:xml:ns:xmpp-stanzas") │ │ │ │ │ - } │ │ │ │ │ - return a.documentElement │ │ │ │ │ -} │ │ │ │ │ -var JSJACJID_FORBIDDEN = ['"', " ", "&", "'", "/", ":", "<", ">", "@"]; │ │ │ │ │ - │ │ │ │ │ -function JSJaCJID(a) { │ │ │ │ │ - this._node = ""; │ │ │ │ │ - this._domain = ""; │ │ │ │ │ - this._resource = ""; │ │ │ │ │ - if (typeof(a) == "string") { │ │ │ │ │ - if (a.indexOf("@") != -1) { │ │ │ │ │ - this.setNode(a.substring(0, a.indexOf("@"))); │ │ │ │ │ - a = a.substring(a.indexOf("@") + 1) │ │ │ │ │ - } │ │ │ │ │ - if (a.indexOf("/") != -1) { │ │ │ │ │ - this.setResource(a.substring(a.indexOf("/") + 1)); │ │ │ │ │ - a = a.substring(0, a.indexOf("/")) │ │ │ │ │ - } │ │ │ │ │ - this.setDomain(a) │ │ │ │ │ - } else { │ │ │ │ │ - this.setNode(a.node); │ │ │ │ │ - this.setDomain(a.domain); │ │ │ │ │ - this.setResource(a.resource) │ │ │ │ │ - } │ │ │ │ │ -} │ │ │ │ │ -JSJaCJID.prototype.getNode = function() { │ │ │ │ │ - return this._node │ │ │ │ │ -}; │ │ │ │ │ -JSJaCJID.prototype.getDomain = function() { │ │ │ │ │ - return this._domain │ │ │ │ │ -}; │ │ │ │ │ -JSJaCJID.prototype.getResource = function() { │ │ │ │ │ - return this._resource │ │ │ │ │ -}; │ │ │ │ │ -JSJaCJID.prototype.setNode = function(a) { │ │ │ │ │ - JSJaCJID._checkNodeName(a); │ │ │ │ │ - this._node = a || ""; │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCJID.prototype.setDomain = function(a) { │ │ │ │ │ - if (!a || a == "") { │ │ │ │ │ - throw new JSJaCJIDInvalidException("domain name missing") │ │ │ │ │ - } │ │ │ │ │ - JSJaCJID._checkNodeName(a); │ │ │ │ │ - this._domain = a; │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCJID.prototype.setResource = function(a) { │ │ │ │ │ - this._resource = a || ""; │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCJID.prototype.toString = function() { │ │ │ │ │ - var a = ""; │ │ │ │ │ - if (this.getNode() && this.getNode() != "") { │ │ │ │ │ - a = this.getNode() + "@" │ │ │ │ │ - } │ │ │ │ │ - a += this.getDomain(); │ │ │ │ │ - if (this.getResource() && this.getResource() != "") { │ │ │ │ │ - a += "/" + this.getResource() │ │ │ │ │ - } │ │ │ │ │ - return a │ │ │ │ │ -}; │ │ │ │ │ -JSJaCJID.prototype.removeResource = function() { │ │ │ │ │ - return this.setResource() │ │ │ │ │ -}; │ │ │ │ │ -JSJaCJID.prototype.clone = function() { │ │ │ │ │ - return new JSJaCJID(this.toString()) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCJID.prototype.isEntity = function(a) { │ │ │ │ │ - if (typeof a == "string") { │ │ │ │ │ - a = (new JSJaCJID(a)) │ │ │ │ │ - } │ │ │ │ │ - a.removeResource(); │ │ │ │ │ - return (this.clone().removeResource().toString() === a.toString()) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCJID._checkNodeName = function(a) { │ │ │ │ │ - if (!a || a == "") { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - for (var b = 0; b < JSJACJID_FORBIDDEN.length; b++) { │ │ │ │ │ - if (a.indexOf(JSJACJID_FORBIDDEN[b]) != -1) { │ │ │ │ │ - throw new JSJaCJIDInvalidException("forbidden char in nodename: " + JSJACJID_FORBIDDEN[b]) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ - │ │ │ │ │ -function JSJaCJIDInvalidException(a) { │ │ │ │ │ - this.message = a; │ │ │ │ │ - this.name = "JSJaCJIDInvalidException" │ │ │ │ │ -} │ │ │ │ │ - │ │ │ │ │ -function JSJaCKeys(d, c) { │ │ │ │ │ - var a = Math.random(); │ │ │ │ │ - this._k = new Array(); │ │ │ │ │ - this._k[0] = a.toString(); │ │ │ │ │ - if (c) { │ │ │ │ │ - this.oDbg = c │ │ │ │ │ - } else { │ │ │ │ │ - this.oDbg = {}; │ │ │ │ │ - this.oDbg.log = function() {} │ │ │ │ │ - } │ │ │ │ │ - if (d) { │ │ │ │ │ - for (var b = 1; b < JSJAC_NKEYS; b++) { │ │ │ │ │ - this._k[b] = d(this._k[b - 1]); │ │ │ │ │ - c.log(b + ": " + this._k[b], 4) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - this._indexAt = JSJAC_NKEYS - 1; │ │ │ │ │ - this.getKey = function() { │ │ │ │ │ - return this._k[this._indexAt--] │ │ │ │ │ - }; │ │ │ │ │ - this.lastKey = function() { │ │ │ │ │ - return (this._indexAt == 0) │ │ │ │ │ - }; │ │ │ │ │ - this.size = function() { │ │ │ │ │ - return this._k.length │ │ │ │ │ - }; │ │ │ │ │ - this._getSuspendVars = function() { │ │ │ │ │ - return ("_k,_indexAt").split(",") │ │ │ │ │ - } │ │ │ │ │ -} │ │ │ │ │ -var JSJACPACKET_USE_XMLNS = true; │ │ │ │ │ - │ │ │ │ │ -function JSJaCPacket(a) { │ │ │ │ │ - this.name = a; │ │ │ │ │ - if (typeof(JSJACPACKET_USE_XMLNS) != "undefined" && JSJACPACKET_USE_XMLNS) { │ │ │ │ │ - this.doc = XmlDocument.create(a, "jabber:client") │ │ │ │ │ - } else { │ │ │ │ │ - this.doc = XmlDocument.create(a, "") │ │ │ │ │ - } │ │ │ │ │ -} │ │ │ │ │ -JSJaCPacket.prototype.pType = function() { │ │ │ │ │ - return this.name │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getDoc = function() { │ │ │ │ │ - return this.doc │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getNode = function() { │ │ │ │ │ - if (this.getDoc() && this.getDoc().documentElement) { │ │ │ │ │ - return this.getDoc().documentElement │ │ │ │ │ - } else { │ │ │ │ │ - return null │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.setTo = function(a) { │ │ │ │ │ - if (!a || a == "") { │ │ │ │ │ - this.getNode().removeAttribute("to") │ │ │ │ │ - } else { │ │ │ │ │ - if (typeof(a) == "string") { │ │ │ │ │ - this.getNode().setAttribute("to", a) │ │ │ │ │ - } else { │ │ │ │ │ - this.getNode().setAttribute("to", a.toString()) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.setFrom = function(a) { │ │ │ │ │ - if (!a || a == "") { │ │ │ │ │ - this.getNode().removeAttribute("from") │ │ │ │ │ - } else { │ │ │ │ │ - if (typeof(a) == "string") { │ │ │ │ │ - this.getNode().setAttribute("from", a) │ │ │ │ │ - } else { │ │ │ │ │ - this.getNode().setAttribute("from", a.toString()) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.setID = function(a) { │ │ │ │ │ - if (!a || a == "") { │ │ │ │ │ - this.getNode().removeAttribute("id") │ │ │ │ │ - } else { │ │ │ │ │ - this.getNode().setAttribute("id", a) │ │ │ │ │ - } │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.setType = function(a) { │ │ │ │ │ - if (!a || a == "") { │ │ │ │ │ - this.getNode().removeAttribute("type") │ │ │ │ │ - } else { │ │ │ │ │ - this.getNode().setAttribute("type", a) │ │ │ │ │ - } │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.setXMLLang = function(a) { │ │ │ │ │ - if (!a || a == "") { │ │ │ │ │ - this.getNode().removeAttribute("xml:lang") │ │ │ │ │ - } else { │ │ │ │ │ - this.getNode().setAttribute("xml:lang", a) │ │ │ │ │ - } │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getTo = function() { │ │ │ │ │ - return this.getNode().getAttribute("to") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getFrom = function() { │ │ │ │ │ - return this.getNode().getAttribute("from") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getToJID = function() { │ │ │ │ │ - return new JSJaCJID(this.getTo()) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getFromJID = function() { │ │ │ │ │ - return new JSJaCJID(this.getFrom()) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getID = function() { │ │ │ │ │ - return this.getNode().getAttribute("id") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getType = function() { │ │ │ │ │ - return this.getNode().getAttribute("type") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getXMLLang = function() { │ │ │ │ │ - return this.getNode().getAttribute("xml:lang") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getXMLNS = function() { │ │ │ │ │ - return this.getNode().namespaceURI || this.getNode().getAttribute("xmlns") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getChild = function(b, d) { │ │ │ │ │ - if (!this.getNode()) { │ │ │ │ │ - return null │ │ │ │ │ - } │ │ │ │ │ - b = b || "*"; │ │ │ │ │ - d = d || "*"; │ │ │ │ │ - if (this.getNode().getElementsByTagNameNS) { │ │ │ │ │ - return this.getNode().getElementsByTagNameNS(d, b).item(0) │ │ │ │ │ - } │ │ │ │ │ - var a = this.getNode().getElementsByTagName(b); │ │ │ │ │ - if (d != "*") { │ │ │ │ │ - for (var c = 0; c < a.length; c++) { │ │ │ │ │ - if (a.item(c).namespaceURI == d || a.item(c).getAttribute("xmlns") == d) { │ │ │ │ │ - return a.item(c) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } else { │ │ │ │ │ - return a.item(0) │ │ │ │ │ - } │ │ │ │ │ - return null │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.getChildVal = function(b, d) { │ │ │ │ │ - var e = this.getChild(b, d); │ │ │ │ │ - var a = ""; │ │ │ │ │ - if (e && e.hasChildNodes()) { │ │ │ │ │ - for (var c = 0; c < e.childNodes.length; c++) { │ │ │ │ │ - if (e.childNodes.item(c).nodeValue) { │ │ │ │ │ - a += e.childNodes.item(c).nodeValue │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - return a │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.clone = function() { │ │ │ │ │ - return JSJaCPacket.wrapNode(this.getNode()) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.isError = function() { │ │ │ │ │ - return (this.getType() == "error") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.errorReply = function(a) { │ │ │ │ │ - var b = this.clone(); │ │ │ │ │ - b.setTo(this.getFrom()); │ │ │ │ │ - b.setFrom(); │ │ │ │ │ - b.setType("error"); │ │ │ │ │ - b.appendNode("error", { │ │ │ │ │ - code: a.code, │ │ │ │ │ - type: a.type │ │ │ │ │ - }, [ │ │ │ │ │ - [a.cond] │ │ │ │ │ - ]); │ │ │ │ │ - return b │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.xml = typeof XMLSerializer != "undefined" ? function() { │ │ │ │ │ - var a = (new XMLSerializer()).serializeToString(this.getNode()); │ │ │ │ │ - if (typeof(a) == "undefined") { │ │ │ │ │ - a = (new XMLSerializer()).serializeToString(this.doc) │ │ │ │ │ - } │ │ │ │ │ - return a │ │ │ │ │ -} : function() { │ │ │ │ │ - return this.getDoc().xml │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype._getAttribute = function(a) { │ │ │ │ │ - return this.getNode().getAttribute(a) │ │ │ │ │ -}; │ │ │ │ │ -if (document.ELEMENT_NODE == null) { │ │ │ │ │ - document.ELEMENT_NODE = 1; │ │ │ │ │ - document.ATTRIBUTE_NODE = 2; │ │ │ │ │ - document.TEXT_NODE = 3; │ │ │ │ │ - document.CDATA_SECTION_NODE = 4; │ │ │ │ │ - document.ENTITY_REFERENCE_NODE = 5; │ │ │ │ │ - document.ENTITY_NODE = 6; │ │ │ │ │ - document.PROCESSING_INSTRUCTION_NODE = 7; │ │ │ │ │ - document.COMMENT_NODE = 8; │ │ │ │ │ - document.DOCUMENT_NODE = 9; │ │ │ │ │ - document.DOCUMENT_TYPE_NODE = 10; │ │ │ │ │ - document.DOCUMENT_FRAGMENT_NODE = 11; │ │ │ │ │ - document.NOTATION_NODE = 12 │ │ │ │ │ -} │ │ │ │ │ -JSJaCPacket.prototype._importNode = function(f, b) { │ │ │ │ │ - switch (f.nodeType) { │ │ │ │ │ - case document.ELEMENT_NODE: │ │ │ │ │ - if (this.getDoc().createElementNS) { │ │ │ │ │ - var e = this.getDoc().createElementNS(f.namespaceURI, f.nodeName) │ │ │ │ │ - } else { │ │ │ │ │ - var e = this.getDoc().createElement(f.nodeName) │ │ │ │ │ - } │ │ │ │ │ - if (f.attributes && f.attributes.length > 0) { │ │ │ │ │ - for (var d = 0, c = f.attributes.length; d < c; d++) { │ │ │ │ │ - var a = f.attributes.item(d); │ │ │ │ │ - if (a.nodeName == "xmlns" && e.getAttribute("xmlns") != null) { │ │ │ │ │ - continue │ │ │ │ │ - } │ │ │ │ │ - if (e.setAttributeNS && a.namespaceURI) { │ │ │ │ │ - e.setAttributeNS(a.namespaceURI, a.nodeName, a.nodeValue) │ │ │ │ │ - } else { │ │ │ │ │ - e.setAttribute(a.nodeName, a.nodeValue) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - if (b && f.childNodes && f.childNodes.length > 0) { │ │ │ │ │ - for (var d = 0, c = f.childNodes.length; d < c; d++) { │ │ │ │ │ - e.appendChild(this._importNode(f.childNodes.item(d), b)) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - return e; │ │ │ │ │ - break; │ │ │ │ │ - case document.TEXT_NODE: │ │ │ │ │ - case document.CDATA_SECTION_NODE: │ │ │ │ │ - case document.COMMENT_NODE: │ │ │ │ │ - return this.getDoc().createTextNode(f.nodeValue); │ │ │ │ │ - break │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype._setChildNode = function(g, b) { │ │ │ │ │ - var a = this.getChild(g); │ │ │ │ │ - var d = this.getDoc().createTextNode(b); │ │ │ │ │ - if (a) { │ │ │ │ │ - try { │ │ │ │ │ - a.replaceChild(d, a.firstChild) │ │ │ │ │ - } catch (f) {} │ │ │ │ │ - } else { │ │ │ │ │ - try { │ │ │ │ │ - a = this.getDoc().createElementNS(this.getNode().namespaceURI, g) │ │ │ │ │ - } catch (c) { │ │ │ │ │ - a = this.getDoc().createElement(g) │ │ │ │ │ - } │ │ │ │ │ - this.getNode().appendChild(a); │ │ │ │ │ - a.appendChild(d) │ │ │ │ │ - } │ │ │ │ │ - return a │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.buildNode = function(a) { │ │ │ │ │ - return JSJaCBuilder.buildNode(this.getDoc(), a, arguments[1], arguments[2]) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.prototype.appendNode = function(a) { │ │ │ │ │ - if (typeof a == "object") { │ │ │ │ │ - return this.getNode().appendChild(a) │ │ │ │ │ - } else { │ │ │ │ │ - return this.getNode().appendChild(this.buildNode(a, arguments[1], arguments[2], null, this.getNode().namespaceURI)) │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ - │ │ │ │ │ -function JSJaCPresence() { │ │ │ │ │ - this.base = JSJaCPacket; │ │ │ │ │ - this.base("presence") │ │ │ │ │ -} │ │ │ │ │ -JSJaCPresence.prototype = new JSJaCPacket; │ │ │ │ │ -JSJaCPresence.prototype.setStatus = function(a) { │ │ │ │ │ - this._setChildNode("status", a); │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPresence.prototype.setShow = function(a) { │ │ │ │ │ - if (a == "chat" || a == "away" || a == "xa" || a == "dnd") { │ │ │ │ │ - this._setChildNode("show", a) │ │ │ │ │ - } │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPresence.prototype.setPriority = function(a) { │ │ │ │ │ - this._setChildNode("priority", a); │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPresence.prototype.setPresence = function(b, a, c) { │ │ │ │ │ - if (b) { │ │ │ │ │ - this.setShow(b) │ │ │ │ │ - } │ │ │ │ │ - if (a) { │ │ │ │ │ - this.setStatus(a) │ │ │ │ │ - } │ │ │ │ │ - if (c) { │ │ │ │ │ - this.setPriority(c) │ │ │ │ │ - } │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPresence.prototype.getStatus = function() { │ │ │ │ │ - return this.getChildVal("status") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPresence.prototype.getShow = function() { │ │ │ │ │ - return this.getChildVal("show") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPresence.prototype.getPriority = function() { │ │ │ │ │ - return this.getChildVal("priority") │ │ │ │ │ -}; │ │ │ │ │ - │ │ │ │ │ -function JSJaCIQ() { │ │ │ │ │ - this.base = JSJaCPacket; │ │ │ │ │ - this.base("iq") │ │ │ │ │ -} │ │ │ │ │ -JSJaCIQ.prototype = new JSJaCPacket; │ │ │ │ │ -JSJaCIQ.prototype.setIQ = function(c, a, b) { │ │ │ │ │ - if (c) { │ │ │ │ │ - this.setTo(c) │ │ │ │ │ - } │ │ │ │ │ - if (a) { │ │ │ │ │ - this.setType(a) │ │ │ │ │ - } │ │ │ │ │ - if (b) { │ │ │ │ │ - this.setID(b) │ │ │ │ │ - } │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCIQ.prototype.setQuery = function(c) { │ │ │ │ │ - var a; │ │ │ │ │ - try { │ │ │ │ │ - a = this.getDoc().createElementNS(c, "query") │ │ │ │ │ - } catch (b) { │ │ │ │ │ - a = this.getDoc().createElement("query"); │ │ │ │ │ - a.setAttribute("xmlns", c) │ │ │ │ │ - } │ │ │ │ │ - this.getNode().appendChild(a); │ │ │ │ │ - return a │ │ │ │ │ -}; │ │ │ │ │ -JSJaCIQ.prototype.getQuery = function() { │ │ │ │ │ - return this.getNode().getElementsByTagName("query").item(0) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCIQ.prototype.getQueryXMLNS = function() { │ │ │ │ │ - if (this.getQuery()) { │ │ │ │ │ - return this.getQuery().namespaceURI || this.getQuery().getAttribute("xmlns") │ │ │ │ │ - } else { │ │ │ │ │ - return null │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCIQ.prototype.reply = function(d) { │ │ │ │ │ - var b = this.clone(); │ │ │ │ │ - b.setTo(this.getFrom()); │ │ │ │ │ - b.setFrom(); │ │ │ │ │ - b.setType("result"); │ │ │ │ │ - if (d) { │ │ │ │ │ - if (typeof d == "string") { │ │ │ │ │ - b.getChild().appendChild(b.getDoc().loadXML(d)) │ │ │ │ │ - } else { │ │ │ │ │ - if (d.constructor == Array) { │ │ │ │ │ - var c = b.getChild(); │ │ │ │ │ - for (var a = 0; a < d.length; a++) { │ │ │ │ │ - if (typeof d[a] == "string") { │ │ │ │ │ - c.appendChild(b.getDoc().loadXML(d[a])) │ │ │ │ │ - } else { │ │ │ │ │ - if (typeof d[a] == "object") { │ │ │ │ │ - c.appendChild(d[a]) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } else { │ │ │ │ │ - if (typeof d == "object") { │ │ │ │ │ - b.getChild().appendChild(d) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - return b │ │ │ │ │ -}; │ │ │ │ │ - │ │ │ │ │ -function JSJaCMessage() { │ │ │ │ │ - this.base = JSJaCPacket; │ │ │ │ │ - this.base("message") │ │ │ │ │ -} │ │ │ │ │ -JSJaCMessage.prototype = new JSJaCPacket; │ │ │ │ │ -JSJaCMessage.prototype.setBody = function(a) { │ │ │ │ │ - this._setChildNode("body", a); │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCMessage.prototype.setSubject = function(a) { │ │ │ │ │ - this._setChildNode("subject", a); │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCMessage.prototype.setThread = function(a) { │ │ │ │ │ - this._setChildNode("thread", a); │ │ │ │ │ - return this │ │ │ │ │ -}; │ │ │ │ │ -JSJaCMessage.prototype.getThread = function() { │ │ │ │ │ - return this.getChildVal("thread") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCMessage.prototype.getBody = function() { │ │ │ │ │ - return this.getChildVal("body") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCMessage.prototype.getSubject = function() { │ │ │ │ │ - return this.getChildVal("subject") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCPacket.wrapNode = function(b) { │ │ │ │ │ - var a = null; │ │ │ │ │ - switch (b.nodeName.toLowerCase()) { │ │ │ │ │ - case "presence": │ │ │ │ │ - a = new JSJaCPresence(); │ │ │ │ │ - break; │ │ │ │ │ - case "message": │ │ │ │ │ - a = new JSJaCMessage(); │ │ │ │ │ - break; │ │ │ │ │ - case "iq": │ │ │ │ │ - a = new JSJaCIQ(); │ │ │ │ │ - break │ │ │ │ │ - } │ │ │ │ │ - if (a) { │ │ │ │ │ - a.getDoc().replaceChild(a._importNode(b, true), a.getNode()) │ │ │ │ │ - } │ │ │ │ │ - return a │ │ │ │ │ -}; │ │ │ │ │ - │ │ │ │ │ -function JSJaCConnection(a) { │ │ │ │ │ - if (a && a.oDbg && a.oDbg.log) { │ │ │ │ │ - this.oDbg = a.oDbg │ │ │ │ │ - } else { │ │ │ │ │ - this.oDbg = new Object(); │ │ │ │ │ - this.oDbg.log = function() {} │ │ │ │ │ - } │ │ │ │ │ - if (a && a.timerval) { │ │ │ │ │ - this.setPollInterval(a.timerval) │ │ │ │ │ - } else { │ │ │ │ │ - this.setPollInterval(JSJAC_TIMERVAL) │ │ │ │ │ - } │ │ │ │ │ - if (a && a.httpbase) { │ │ │ │ │ - this._httpbase = a.httpbase │ │ │ │ │ - } │ │ │ │ │ - if (a && a.allow_plain) { │ │ │ │ │ - this.allow_plain = a.allow_plain │ │ │ │ │ - } else { │ │ │ │ │ - this.allow_plain = JSJAC_ALLOW_PLAIN │ │ │ │ │ - } │ │ │ │ │ - if (a && a.cookie_prefix) { │ │ │ │ │ - this._cookie_prefix = a.cookie_prefix │ │ │ │ │ - } else { │ │ │ │ │ - this._cookie_prefix = "" │ │ │ │ │ - } │ │ │ │ │ - this._connected = false; │ │ │ │ │ - this._events = new Array(); │ │ │ │ │ - this._keys = null; │ │ │ │ │ - this._ID = 0; │ │ │ │ │ - this._inQ = new Array(); │ │ │ │ │ - this._pQueue = new Array(); │ │ │ │ │ - this._regIDs = new Array(); │ │ │ │ │ - this._req = new Array(); │ │ │ │ │ - this._status = "intialized"; │ │ │ │ │ - this._errcnt = 0; │ │ │ │ │ - this._inactivity = JSJAC_INACTIVITY; │ │ │ │ │ - this._sendRawCallbacks = new Array() │ │ │ │ │ -} │ │ │ │ │ -JSJaCConnection.prototype.connect = function(a) { │ │ │ │ │ - this._setStatus("connecting"); │ │ │ │ │ - this.domain = a.domain || "localhost"; │ │ │ │ │ - this.username = a.username; │ │ │ │ │ - this.resource = a.resource; │ │ │ │ │ - this.pass = a.pass; │ │ │ │ │ - this.register = a.register; │ │ │ │ │ - this.authhost = a.authhost || this.domain; │ │ │ │ │ - this.authtype = a.authtype || "sasl"; │ │ │ │ │ - if (a.xmllang && a.xmllang != "") { │ │ │ │ │ - this._xmllang = a.xmllang │ │ │ │ │ - } │ │ │ │ │ - this.host = a.host || this.domain; │ │ │ │ │ - this.port = a.port || 5222; │ │ │ │ │ - if (a.secure) { │ │ │ │ │ - this.secure = "true" │ │ │ │ │ - } else { │ │ │ │ │ - this.secure = "false" │ │ │ │ │ - } │ │ │ │ │ - if (a.wait) { │ │ │ │ │ - this._wait = a.wait │ │ │ │ │ - } │ │ │ │ │ - this.jid = this.username + "@" + this.domain; │ │ │ │ │ - this.fulljid = this.jid + "/" + this.resource; │ │ │ │ │ - this._rid = Math.round(100000.5 + (((900000.49999) - (100000.5)) * Math.random())); │ │ │ │ │ - var c = this._getFreeSlot(); │ │ │ │ │ - this._req[c] = this._setupRequest(true); │ │ │ │ │ - var b = this._getInitialRequestString(); │ │ │ │ │ - this.oDbg.log(b, 4); │ │ │ │ │ - this._req[c].r.onreadystatechange = JSJaC.bind(function() { │ │ │ │ │ - if (this._req[c].r.readyState == 4) { │ │ │ │ │ - this.oDbg.log("async recv: " + this._req[c].r.responseText, 4); │ │ │ │ │ - this._handleInitialResponse(c) │ │ │ │ │ - } │ │ │ │ │ - }, this); │ │ │ │ │ - if (typeof(this._req[c].r.onerror) != "undefined") { │ │ │ │ │ - this._req[c].r.onerror = JSJaC.bind(function(d) { │ │ │ │ │ - this.oDbg.log("XmlHttpRequest error", 1); │ │ │ │ │ - return false │ │ │ │ │ - }, this) │ │ │ │ │ - } │ │ │ │ │ - this._req[c].r.send(b) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.connected = function() { │ │ │ │ │ - return this._connected │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.disconnect = function() { │ │ │ │ │ - this._setStatus("disconnecting"); │ │ │ │ │ - if (!this.connected()) { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - this._connected = false; │ │ │ │ │ - clearInterval(this._interval); │ │ │ │ │ - clearInterval(this._inQto); │ │ │ │ │ - if (this._timeout) { │ │ │ │ │ - clearTimeout(this._timeout) │ │ │ │ │ - } │ │ │ │ │ - var b = this._getFreeSlot(); │ │ │ │ │ - this._req[b] = this._setupRequest(false); │ │ │ │ │ - request = this._getRequestString(false, true); │ │ │ │ │ - this.oDbg.log("Disconnecting: " + request, 4); │ │ │ │ │ - this._req[b].r.send(request); │ │ │ │ │ - try { │ │ │ │ │ - JSJaCCookie.read(this._cookie_prefix + "JSJaC_State").erase() │ │ │ │ │ - } catch (a) {} │ │ │ │ │ - this.oDbg.log("Disconnected: " + this._req[b].r.responseText, 2); │ │ │ │ │ - this._handleEvent("ondisconnect") │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.getPollInterval = function() { │ │ │ │ │ - return this._timerval │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.registerHandler = function(event) { │ │ │ │ │ - event = event.toLowerCase(); │ │ │ │ │ - var eArg = { │ │ │ │ │ - handler: arguments[arguments.length - 1], │ │ │ │ │ - childName: "*", │ │ │ │ │ - childNS: "*", │ │ │ │ │ - type: "*" │ │ │ │ │ - }; │ │ │ │ │ - if (arguments.length > 2) { │ │ │ │ │ - eArg.childName = arguments[1] │ │ │ │ │ - } │ │ │ │ │ - if (arguments.length > 3) { │ │ │ │ │ - eArg.childNS = arguments[2] │ │ │ │ │ - } │ │ │ │ │ - if (arguments.length > 4) { │ │ │ │ │ - eArg.type = arguments[3] │ │ │ │ │ - } │ │ │ │ │ - if (!this._events[event]) { │ │ │ │ │ - this._events[event] = new Array(eArg) │ │ │ │ │ - } else { │ │ │ │ │ - this._events[event] = this._events[event].concat(eArg) │ │ │ │ │ - } │ │ │ │ │ - this._events[event] = this._events[event].sort(function(a, b) { │ │ │ │ │ - var aRank = 0; │ │ │ │ │ - var bRank = 0; │ │ │ │ │ - with(a) { │ │ │ │ │ - if (type == "*") { │ │ │ │ │ - aRank++ │ │ │ │ │ - } │ │ │ │ │ - if (childNS == "*") { │ │ │ │ │ - aRank++ │ │ │ │ │ - } │ │ │ │ │ - if (childName == "*") { │ │ │ │ │ - aRank++ │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - with(b) { │ │ │ │ │ - if (type == "*") { │ │ │ │ │ - bRank++ │ │ │ │ │ - } │ │ │ │ │ - if (childNS == "*") { │ │ │ │ │ - bRank++ │ │ │ │ │ - } │ │ │ │ │ - if (childName == "*") { │ │ │ │ │ - bRank++ │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - if (aRank > bRank) { │ │ │ │ │ - return 1 │ │ │ │ │ - } │ │ │ │ │ - if (aRank < bRank) { │ │ │ │ │ - return -1 │ │ │ │ │ - } │ │ │ │ │ - return 0 │ │ │ │ │ - }); │ │ │ │ │ - this.oDbg.log("registered handler for event '" + event + "'", 2) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.unregisterHandler = function(e, d) { │ │ │ │ │ - e = e.toLowerCase(); │ │ │ │ │ - if (!this._events[e]) { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - var a = this._events[e], │ │ │ │ │ - c = new Array(); │ │ │ │ │ - for (var b = 0; b < a.length; b++) { │ │ │ │ │ - if (a[b].handler != d) { │ │ │ │ │ - c.push(a[b]) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - if (a.length != c.length) { │ │ │ │ │ - this._events[e] = c; │ │ │ │ │ - this.oDbg.log("unregistered handler for event '" + e + "'", 2) │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.registerIQGet = function(a, b, c) { │ │ │ │ │ - this.registerHandler("iq", a, b, "get", c) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.registerIQSet = function(a, b, c) { │ │ │ │ │ - this.registerHandler("iq", a, b, "set", c) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.resume = function() { │ │ │ │ │ - try { │ │ │ │ │ - var a = JSJaCCookie.read(this._cookie_prefix + "JSJaC_State").getValue(); │ │ │ │ │ - this.oDbg.log("read cookie: " + a, 2); │ │ │ │ │ - JSJaCCookie.read(this._cookie_prefix + "JSJaC_State").erase(); │ │ │ │ │ - return this.resumeFromData(JSJaCJSON.parse(a)) │ │ │ │ │ - } catch (b) {} │ │ │ │ │ - return false │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.resumeFromData = function(c) { │ │ │ │ │ - try { │ │ │ │ │ - this._setStatus("resuming"); │ │ │ │ │ - for (var b in c) { │ │ │ │ │ - if (c.hasOwnProperty(b)) { │ │ │ │ │ - this[b] = c[b] │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - if (this._keys) { │ │ │ │ │ - this._keys2 = new JSJaCKeys(); │ │ │ │ │ - var a = this._keys2._getSuspendVars(); │ │ │ │ │ - for (var b = 0; b < a.length; b++) { │ │ │ │ │ - this._keys2[a[b]] = this._keys[a[b]] │ │ │ │ │ - } │ │ │ │ │ - this._keys = this._keys2 │ │ │ │ │ - } │ │ │ │ │ - if (this._connected) { │ │ │ │ │ - this._handleEvent("onresume"); │ │ │ │ │ - setTimeout(JSJaC.bind(this._resume, this), this.getPollInterval()); │ │ │ │ │ - this._interval = setInterval(JSJaC.bind(this._checkQueue, this), JSJAC_CHECKQUEUEINTERVAL); │ │ │ │ │ - this._inQto = setInterval(JSJaC.bind(this._checkInQ, this), JSJAC_CHECKINQUEUEINTERVAL) │ │ │ │ │ - } │ │ │ │ │ - return (this._connected === true) │ │ │ │ │ - } catch (d) { │ │ │ │ │ - if (d.message) { │ │ │ │ │ - this.oDbg.log("Resume failed: " + d.message, 1) │ │ │ │ │ - } else { │ │ │ │ │ - this.oDbg.log("Resume failed: " + d, 1) │ │ │ │ │ - } │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.send = function(d, b, a) { │ │ │ │ │ - if (!d || !d.pType) { │ │ │ │ │ - this.oDbg.log("no packet: " + d, 1); │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - if (!this.connected()) { │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - if (b) { │ │ │ │ │ - if (!d.getID()) { │ │ │ │ │ - d.setID("JSJaCID_" + this._ID++) │ │ │ │ │ - } │ │ │ │ │ - this._registerPID(d.getID(), b, a) │ │ │ │ │ - } │ │ │ │ │ - try { │ │ │ │ │ - this._handleEvent(d.pType() + "_out", d); │ │ │ │ │ - this._handleEvent("packet_out", d); │ │ │ │ │ - this._pQueue = this._pQueue.concat(d.xml()) │ │ │ │ │ - } catch (c) { │ │ │ │ │ - this.oDbg.log(c.toString(), 1); │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - return true │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.sendIQ = function(e, c, a) { │ │ │ │ │ - if (!e || e.pType() != "iq") { │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - c = c || {}; │ │ │ │ │ - var b = c.error_handler || JSJaC.bind(function(g) { │ │ │ │ │ - this.oDbg.log(g.xml(), 1) │ │ │ │ │ - }, this); │ │ │ │ │ - var d = c.result_handler || JSJaC.bind(function(g) { │ │ │ │ │ - this.oDbg.log(g.xml(), 2) │ │ │ │ │ - }, this); │ │ │ │ │ - var f = function(h, g) { │ │ │ │ │ - switch (h.getType()) { │ │ │ │ │ - case "error": │ │ │ │ │ - b(h); │ │ │ │ │ - break; │ │ │ │ │ - case "result": │ │ │ │ │ - d(h, g); │ │ │ │ │ - break │ │ │ │ │ - } │ │ │ │ │ - }; │ │ │ │ │ - return this.send(e, f, a) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.setPollInterval = function(a) { │ │ │ │ │ - if (a && !isNaN(a)) { │ │ │ │ │ - this._timerval = a │ │ │ │ │ - } │ │ │ │ │ - return this._timerval │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.status = function() { │ │ │ │ │ - return this._status │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.suspend = function() { │ │ │ │ │ - var b = this.suspendToData(); │ │ │ │ │ - try { │ │ │ │ │ - var f = new JSJaCCookie(this._cookie_prefix + "JSJaC_State", JSJaCJSON.toString(b)); │ │ │ │ │ - this.oDbg.log("writing cookie: " + f.getValue() + "\n(length:" + f.getValue().length + ")", 2); │ │ │ │ │ - f.write(); │ │ │ │ │ - var a = JSJaCCookie.get(this._cookie_prefix + "JSJaC_State"); │ │ │ │ │ - if (f.getValue() != a) { │ │ │ │ │ - this.oDbg.log("Suspend failed writing cookie.\nread: " + a, 1); │ │ │ │ │ - f.erase(); │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - return true │ │ │ │ │ - } catch (d) { │ │ │ │ │ - this.oDbg.log("Failed creating cookie '" + this._cookie_prefix + "JSJaC_State': " + d.message, 1) │ │ │ │ │ - } │ │ │ │ │ - return false │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype.suspendToData = function() { │ │ │ │ │ - clearTimeout(this._timeout); │ │ │ │ │ - clearInterval(this._interval); │ │ │ │ │ - clearInterval(this._inQto); │ │ │ │ │ - this._suspend(); │ │ │ │ │ - var c = ("_connected,_keys,_ID,_inQ,_pQueue,_regIDs,_errcnt,_inactivity,domain,username,resource,jid,fulljid,_sid,_httpbase,_timerval,_is_polling").split(","); │ │ │ │ │ - c = c.concat(this._getSuspendVars()); │ │ │ │ │ - var e = new Object(); │ │ │ │ │ - for (var d = 0; d < c.length; d++) { │ │ │ │ │ - if (!this[c[d]]) { │ │ │ │ │ - continue │ │ │ │ │ - } │ │ │ │ │ - if (this[c[d]]._getSuspendVars) { │ │ │ │ │ - var a = this[c[d]]._getSuspendVars(); │ │ │ │ │ - var f = new Object(); │ │ │ │ │ - for (var b = 0; b < a.length; b++) { │ │ │ │ │ - f[a[b]] = this[c[d]][a[b]] │ │ │ │ │ - } │ │ │ │ │ - } else { │ │ │ │ │ - var f = this[c[d]] │ │ │ │ │ - } │ │ │ │ │ - e[c[d]] = f │ │ │ │ │ - } │ │ │ │ │ - this._connected = false; │ │ │ │ │ - this._setStatus("suspending"); │ │ │ │ │ - return e │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._abort = function() { │ │ │ │ │ - clearTimeout(this._timeout); │ │ │ │ │ - clearInterval(this._inQto); │ │ │ │ │ - clearInterval(this._interval); │ │ │ │ │ - this._connected = false; │ │ │ │ │ - this._setStatus("aborted"); │ │ │ │ │ - this.oDbg.log("Disconnected.", 1); │ │ │ │ │ - this._handleEvent("ondisconnect"); │ │ │ │ │ - this._handleEvent("onerror", JSJaCError("500", "cancel", "service-unavailable")) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._checkInQ = function() { │ │ │ │ │ - for (var a = 0; a < this._inQ.length && a < 10; a++) { │ │ │ │ │ - var b = this._inQ[0]; │ │ │ │ │ - this._inQ = this._inQ.slice(1, this._inQ.length); │ │ │ │ │ - var c = JSJaCPacket.wrapNode(b); │ │ │ │ │ - if (!c) { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - this._handleEvent("packet_in", c); │ │ │ │ │ - if (c.pType && !this._handlePID(c)) { │ │ │ │ │ - this._handleEvent(c.pType() + "_in", c); │ │ │ │ │ - this._handleEvent(c.pType(), c) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._checkQueue = function() { │ │ │ │ │ - if (this._pQueue.length != 0) { │ │ │ │ │ - this._process() │ │ │ │ │ - } │ │ │ │ │ - return true │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doAuth = function() { │ │ │ │ │ - if (this.has_sasl && this.authtype == "nonsasl") { │ │ │ │ │ - this.oDbg.log("Warning: SASL present but not used", 1) │ │ │ │ │ - } │ │ │ │ │ - if (!this._doSASLAuth() && !this._doLegacyAuth()) { │ │ │ │ │ - this.oDbg.log("Auth failed for authtype " + this.authtype, 1); │ │ │ │ │ - this.disconnect(); │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - return true │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doInBandReg = function() { │ │ │ │ │ - if (this.authtype == "saslanon" || this.authtype == "anonymous") { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - var a = new JSJaCIQ(); │ │ │ │ │ - a.setType("set"); │ │ │ │ │ - a.setID("reg1"); │ │ │ │ │ - a.appendNode("query", { │ │ │ │ │ - xmlns: "jabber:iq:register" │ │ │ │ │ - }, [ │ │ │ │ │ - ["username", this.username], │ │ │ │ │ - ["password", this.pass] │ │ │ │ │ - ]); │ │ │ │ │ - this.send(a, this._doInBandRegDone) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doInBandRegDone = function(a) { │ │ │ │ │ - if (a && a.getType() == "error") { │ │ │ │ │ - this.oDbg.log("registration failed for " + this.username, 0); │ │ │ │ │ - this._handleEvent("onerror", a.getChild("error")); │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - this.oDbg.log(this.username + " registered succesfully", 0); │ │ │ │ │ - this._doAuth() │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doLegacyAuth = function() { │ │ │ │ │ - if (this.authtype != "nonsasl" && this.authtype != "anonymous") { │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - var a = new JSJaCIQ(); │ │ │ │ │ - a.setIQ(this.server, "get", "auth1"); │ │ │ │ │ - a.appendNode("query", { │ │ │ │ │ - xmlns: "jabber:iq:auth" │ │ │ │ │ - }, [ │ │ │ │ │ - ["username", this.username] │ │ │ │ │ - ]); │ │ │ │ │ - this.send(a, this._doLegacyAuth2); │ │ │ │ │ - return true │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doLegacyAuth2 = function(b) { │ │ │ │ │ - if (!b || b.getType() != "result") { │ │ │ │ │ - if (b && b.getType() == "error") { │ │ │ │ │ - this._handleEvent("onerror", b.getChild("error")) │ │ │ │ │ - } │ │ │ │ │ - this.disconnect(); │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - var a = (b.getChild("digest") != null); │ │ │ │ │ - var b = new JSJaCIQ(); │ │ │ │ │ - b.setIQ(this.server, "set", "auth2"); │ │ │ │ │ - query = b.appendNode("query", { │ │ │ │ │ - xmlns: "jabber:iq:auth" │ │ │ │ │ - }, [ │ │ │ │ │ - ["username", this.username], │ │ │ │ │ - ["resource", this.resource] │ │ │ │ │ - ]); │ │ │ │ │ - if (a) { │ │ │ │ │ - query.appendChild(b.buildNode("digest", { │ │ │ │ │ - xmlns: "jabber:iq:auth" │ │ │ │ │ - }, hex_sha1(this.streamid + this.pass))) │ │ │ │ │ - } else { │ │ │ │ │ - if (this.allow_plain) { │ │ │ │ │ - query.appendChild(b.buildNode("password", { │ │ │ │ │ - xmlns: "jabber:iq:auth" │ │ │ │ │ - }, this.pass)) │ │ │ │ │ - } else { │ │ │ │ │ - this.oDbg.log("no valid login mechanism found", 1); │ │ │ │ │ - this.disconnect(); │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - this.send(b, this._doLegacyAuthDone) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doLegacyAuthDone = function(a) { │ │ │ │ │ - if (a.getType() != "result") { │ │ │ │ │ - if (a.getType() == "error") { │ │ │ │ │ - this._handleEvent("onerror", a.getChild("error")) │ │ │ │ │ - } │ │ │ │ │ - this.disconnect() │ │ │ │ │ - } else { │ │ │ │ │ - this._handleEvent("onconnect") │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doSASLAuth = function() { │ │ │ │ │ - if (this.authtype == "nonsasl" || this.authtype == "anonymous") { │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - if (this.authtype == "saslanon") { │ │ │ │ │ - if (this.mechs.ANONYMOUS) { │ │ │ │ │ - this.oDbg.log("SASL using mechanism 'ANONYMOUS'", 2); │ │ │ │ │ - return this._sendRaw("", this._doSASLAuthDone) │ │ │ │ │ - } │ │ │ │ │ - this.oDbg.log("SASL ANONYMOUS requested but not supported", 1) │ │ │ │ │ - } else { │ │ │ │ │ - if (this.mechs["DIGEST-MD5"]) { │ │ │ │ │ - this.oDbg.log("SASL using mechanism 'DIGEST-MD5'", 2); │ │ │ │ │ - return this._sendRaw("", this._doSASLAuthDigestMd5S1) │ │ │ │ │ - } else { │ │ │ │ │ - if (this.allow_plain && this.mechs.PLAIN) { │ │ │ │ │ - this.oDbg.log("SASL using mechanism 'PLAIN'", 2); │ │ │ │ │ - var a = this.username + "@" + this.domain + String.fromCharCode(0) + this.username + String.fromCharCode(0) + this.pass; │ │ │ │ │ - this.oDbg.log("authenticating with '" + a + "'", 2); │ │ │ │ │ - a = btoa(a); │ │ │ │ │ - return this._sendRaw("" + a + "", this._doSASLAuthDone) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - this.oDbg.log("No SASL mechanism applied", 1); │ │ │ │ │ - this.authtype = "nonsasl" │ │ │ │ │ - } │ │ │ │ │ - return false │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doSASLAuthDigestMd5S1 = function(e) { │ │ │ │ │ - if (e.nodeName != "challenge") { │ │ │ │ │ - this.oDbg.log("challenge missing", 1); │ │ │ │ │ - this._handleEvent("onerror", JSJaCError("401", "auth", "not-authorized")); │ │ │ │ │ - this.disconnect() │ │ │ │ │ - } else { │ │ │ │ │ - var d = atob(e.firstChild.nodeValue); │ │ │ │ │ - this.oDbg.log("got challenge: " + d, 2); │ │ │ │ │ - this._nonce = d.substring(d.indexOf("nonce=") + 7); │ │ │ │ │ - this._nonce = this._nonce.substring(0, this._nonce.indexOf('"')); │ │ │ │ │ - this.oDbg.log("nonce: " + this._nonce, 2); │ │ │ │ │ - if (this._nonce == "" || this._nonce.indexOf('"') != -1) { │ │ │ │ │ - this.oDbg.log("nonce not valid, aborting", 1); │ │ │ │ │ - this.disconnect(); │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - this._digest_uri = "xmpp/"; │ │ │ │ │ - this._digest_uri += this.domain; │ │ │ │ │ - this._cnonce = cnonce(14); │ │ │ │ │ - this._nc = "00000001"; │ │ │ │ │ - var c = str_md5(this.username + ":" + this.domain + ":" + this.pass) + ":" + this._nonce + ":" + this._cnonce; │ │ │ │ │ - var b = "AUTHENTICATE:" + this._digest_uri; │ │ │ │ │ - var a = hex_md5(hex_md5(c) + ":" + this._nonce + ":" + this._nc + ":" + this._cnonce + ":auth:" + hex_md5(b)); │ │ │ │ │ - var f = 'username="' + this.username + '",realm="' + this.domain + '",nonce="' + this._nonce + '",cnonce="' + this._cnonce + '",nc="' + this._nc + '",qop=auth,digest-uri="' + this._digest_uri + '",response="' + a + '",charset="utf-8"'; │ │ │ │ │ - this.oDbg.log("response: " + f, 2); │ │ │ │ │ - this._sendRaw("" + binb2b64(str2binb(f)) + "", this._doSASLAuthDigestMd5S2) │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doSASLAuthDigestMd5S2 = function(e) { │ │ │ │ │ - if (e.nodeName == "failure") { │ │ │ │ │ - if (e.xml) { │ │ │ │ │ - this.oDbg.log("auth error: " + e.xml, 1) │ │ │ │ │ - } else { │ │ │ │ │ - this.oDbg.log("auth error", 1) │ │ │ │ │ - } │ │ │ │ │ - this._handleEvent("onerror", JSJaCError("401", "auth", "not-authorized")); │ │ │ │ │ - this.disconnect(); │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - var c = atob(e.firstChild.nodeValue); │ │ │ │ │ - this.oDbg.log("response: " + c, 2); │ │ │ │ │ - var f = c.substring(c.indexOf("rspauth=") + 8); │ │ │ │ │ - this.oDbg.log("rspauth: " + f, 2); │ │ │ │ │ - var d = str_md5(this.username + ":" + this.domain + ":" + this.pass) + ":" + this._nonce + ":" + this._cnonce; │ │ │ │ │ - var b = ":" + this._digest_uri; │ │ │ │ │ - var a = hex_md5(hex_md5(d) + ":" + this._nonce + ":" + this._nc + ":" + this._cnonce + ":auth:" + hex_md5(b)); │ │ │ │ │ - this.oDbg.log("rsptest: " + a, 2); │ │ │ │ │ - if (a != f) { │ │ │ │ │ - this.oDbg.log("SASL Digest-MD5: server repsonse with wrong rspauth", 1); │ │ │ │ │ - this.disconnect(); │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - if (e.nodeName == "success") { │ │ │ │ │ - this._reInitStream(this.domain, this._doStreamBind) │ │ │ │ │ - } else { │ │ │ │ │ - this._sendRaw("", this._doSASLAuthDone) │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doSASLAuthDone = function(a) { │ │ │ │ │ - if (a.nodeName != "success") { │ │ │ │ │ - this.oDbg.log("auth failed", 1); │ │ │ │ │ - this._handleEvent("onerror", JSJaCError("401", "auth", "not-authorized")); │ │ │ │ │ - this.disconnect() │ │ │ │ │ - } else { │ │ │ │ │ - this._reInitStream(this.domain, this._doStreamBind) │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doStreamBind = function() { │ │ │ │ │ - var a = new JSJaCIQ(); │ │ │ │ │ - a.setIQ(null, "set", "bind_1"); │ │ │ │ │ - a.appendNode("bind", { │ │ │ │ │ - xmlns: "urn:ietf:params:xml:ns:xmpp-bind" │ │ │ │ │ - }, [ │ │ │ │ │ - ["resource", this.resource] │ │ │ │ │ - ]); │ │ │ │ │ - this.oDbg.log(a.xml()); │ │ │ │ │ - this.send(a, this._doXMPPSess) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doXMPPSess = function(a) { │ │ │ │ │ - if (a.getType() != "result" || a.getType() == "error") { │ │ │ │ │ - this.disconnect(); │ │ │ │ │ - if (a.getType() == "error") { │ │ │ │ │ - this._handleEvent("onerror", a.getChild("error")) │ │ │ │ │ - } │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - this.fulljid = a.getChildVal("jid"); │ │ │ │ │ - this.jid = this.fulljid.substring(0, this.fulljid.lastIndexOf("/")); │ │ │ │ │ - a = new JSJaCIQ(); │ │ │ │ │ - a.setIQ(this.domain, "set", "sess_1"); │ │ │ │ │ - a.appendNode("session", { │ │ │ │ │ - xmlns: "urn:ietf:params:xml:ns:xmpp-session" │ │ │ │ │ - }, []); │ │ │ │ │ - this.oDbg.log(a.xml()); │ │ │ │ │ - this.send(a, this._doXMPPSessDone) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._doXMPPSessDone = function(a) { │ │ │ │ │ - if (a.getType() != "result" || a.getType() == "error") { │ │ │ │ │ - this.disconnect(); │ │ │ │ │ - if (a.getType() == "error") { │ │ │ │ │ - this._handleEvent("onerror", a.getChild("error")) │ │ │ │ │ - } │ │ │ │ │ - return │ │ │ │ │ - } else { │ │ │ │ │ - this._handleEvent("onconnect") │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._handleEvent = function(d, a) { │ │ │ │ │ - d = d.toLowerCase(); │ │ │ │ │ - this.oDbg.log("incoming event '" + d + "'", 3); │ │ │ │ │ - if (!this._events[d]) { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - this.oDbg.log("handling event '" + d + "'", 2); │ │ │ │ │ - for (var b = 0; b < this._events[d].length; b++) { │ │ │ │ │ - var c = this._events[d][b]; │ │ │ │ │ - if (typeof c.handler == "function") { │ │ │ │ │ - try { │ │ │ │ │ - if (a) { │ │ │ │ │ - if (a.pType) { │ │ │ │ │ - if ((!a.getNode().hasChildNodes() && c.childName != "*") || (a.getNode().hasChildNodes() && !a.getChild(c.childName, c.childNS))) { │ │ │ │ │ - continue │ │ │ │ │ - } │ │ │ │ │ - if (c.type != "*" && a.getType() != c.type) { │ │ │ │ │ - continue │ │ │ │ │ - } │ │ │ │ │ - this.oDbg.log(c.childName + "/" + c.childNS + "/" + c.type + " => match for handler " + c.handler, 3) │ │ │ │ │ - } │ │ │ │ │ - if (c.handler(a)) { │ │ │ │ │ - break │ │ │ │ │ - } │ │ │ │ │ - } else { │ │ │ │ │ - if (c.handler()) { │ │ │ │ │ - break │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } catch (f) { │ │ │ │ │ - if (f.fileName && f.lineNumber) { │ │ │ │ │ - this.oDbg.log(c.handler + "\n>>>" + f.name + ": " + f.message + " in " + f.fileName + " line " + f.lineNumber, 1) │ │ │ │ │ - } else { │ │ │ │ │ - this.oDbg.log(c.handler + "\n>>>" + f.name + ": " + f.message, 1) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._handlePID = function(d) { │ │ │ │ │ - if (!d.getID()) { │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - for (var b in this._regIDs) { │ │ │ │ │ - if (this._regIDs.hasOwnProperty(b) && this._regIDs[b] && b == d.getID()) { │ │ │ │ │ - var a = d.getID(); │ │ │ │ │ - this.oDbg.log("handling " + a, 3); │ │ │ │ │ - try { │ │ │ │ │ - if (this._regIDs[b].cb.call(this, d, this._regIDs[b].arg) === false) { │ │ │ │ │ - return false │ │ │ │ │ - } else { │ │ │ │ │ - this._unregisterPID(a); │ │ │ │ │ - return true │ │ │ │ │ - } │ │ │ │ │ - } catch (c) { │ │ │ │ │ - this.oDbg.log(c.name + ": " + c.message, 1); │ │ │ │ │ - this._unregisterPID(a); │ │ │ │ │ - return true │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - return false │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._handleResponse = function(d) { │ │ │ │ │ - var c = this._parseResponse(d); │ │ │ │ │ - if (!c) { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - for (var b = 0; b < c.childNodes.length; b++) { │ │ │ │ │ - if (this._sendRawCallbacks.length) { │ │ │ │ │ - var a = this._sendRawCallbacks[0]; │ │ │ │ │ - this._sendRawCallbacks = this._sendRawCallbacks.slice(1, this._sendRawCallbacks.length); │ │ │ │ │ - a.fn.call(this, c.childNodes.item(b), a.arg); │ │ │ │ │ - continue │ │ │ │ │ - } │ │ │ │ │ - this._inQ = this._inQ.concat(c.childNodes.item(b)) │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._parseStreamFeatures = function(f) { │ │ │ │ │ - if (!f) { │ │ │ │ │ - this.oDbg.log("nothing to parse ... aborting", 1); │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - var e; │ │ │ │ │ - if (f.getElementsByTagNameNS) { │ │ │ │ │ - e = f.getElementsByTagNameNS("http://etherx.jabber.org/streams", "error").item(0) │ │ │ │ │ - } else { │ │ │ │ │ - var g = f.getElementsByTagName("error"); │ │ │ │ │ - for (var b = 0; b < g.length; b++) { │ │ │ │ │ - if (g.item(b).namespaceURI == "http://etherx.jabber.org/streams") { │ │ │ │ │ - e = g.item(b); │ │ │ │ │ - break │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - if (e) { │ │ │ │ │ - this._setStatus("internal_server_error"); │ │ │ │ │ - clearTimeout(this._timeout); │ │ │ │ │ - clearInterval(this._interval); │ │ │ │ │ - clearInterval(this._inQto); │ │ │ │ │ - this._handleEvent("onerror", JSJaCError("503", "cancel", "session-terminate")); │ │ │ │ │ - this._connected = false; │ │ │ │ │ - this.oDbg.log("Disconnected.", 1); │ │ │ │ │ - this._handleEvent("ondisconnect"); │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - this.mechs = new Object(); │ │ │ │ │ - var d = f.getElementsByTagName("mechanisms"); │ │ │ │ │ - this.has_sasl = false; │ │ │ │ │ - for (var b = 0; b < d.length; b++) { │ │ │ │ │ - if (d.item(b).getAttribute("xmlns") == "urn:ietf:params:xml:ns:xmpp-sasl") { │ │ │ │ │ - this.has_sasl = true; │ │ │ │ │ - var c = d.item(b).getElementsByTagName("mechanism"); │ │ │ │ │ - for (var a = 0; a < c.length; a++) { │ │ │ │ │ - this.mechs[c.item(a).firstChild.nodeValue] = true │ │ │ │ │ - } │ │ │ │ │ - break │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - if (this.has_sasl) { │ │ │ │ │ - this.oDbg.log("SASL detected", 2) │ │ │ │ │ - } else { │ │ │ │ │ - this.oDbg.log("No support for SASL detected", 2); │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - return true │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._process = function(a) { │ │ │ │ │ - if (!this.connected()) { │ │ │ │ │ - this.oDbg.log("Connection lost ...", 1); │ │ │ │ │ - if (this._interval) { │ │ │ │ │ - clearInterval(this._interval) │ │ │ │ │ - } │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - this.setPollInterval(a); │ │ │ │ │ - if (this._timeout) { │ │ │ │ │ - clearTimeout(this._timeout) │ │ │ │ │ - } │ │ │ │ │ - var d = this._getFreeSlot(); │ │ │ │ │ - if (d < 0) { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - if (typeof(this._req[d]) != "undefined" && typeof(this._req[d].r) != "undefined" && this._req[d].r.readyState != 4) { │ │ │ │ │ - this.oDbg.log("Slot " + d + " is not ready"); │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - if (!this.isPolling() && this._pQueue.length == 0 && this._req[(d + 1) % 2] && this._req[(d + 1) % 2].r.readyState != 4) { │ │ │ │ │ - this.oDbg.log("all slots busy, standby ...", 2); │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - if (!this.isPolling()) { │ │ │ │ │ - this.oDbg.log("Found working slot at " + d, 2) │ │ │ │ │ - } │ │ │ │ │ - this._req[d] = this._setupRequest(true); │ │ │ │ │ - this._req[d].r.onreadystatechange = JSJaC.bind(function() { │ │ │ │ │ - if (!this.connected()) { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - if (this._req[d].r.readyState == 4) { │ │ │ │ │ - this._setStatus("processing"); │ │ │ │ │ - this.oDbg.log("async recv: " + this._req[d].r.responseText, 4); │ │ │ │ │ - this._handleResponse(this._req[d]); │ │ │ │ │ - if (this._pQueue.length) { │ │ │ │ │ - this._timeout = setTimeout(JSJaC.bind(this._process, this), 100) │ │ │ │ │ - } else { │ │ │ │ │ - this.oDbg.log("scheduling next poll in " + this.getPollInterval() + " msec", 4); │ │ │ │ │ - this._timeout = setTimeout(JSJaC.bind(this._process, this), this.getPollInterval()) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - }, this); │ │ │ │ │ - try { │ │ │ │ │ - this._req[d].r.onerror = JSJaC.bind(function() { │ │ │ │ │ - if (!this.connected()) { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - this._errcnt++; │ │ │ │ │ - this.oDbg.log("XmlHttpRequest error (" + this._errcnt + ")", 1); │ │ │ │ │ - if (this._errcnt > JSJAC_ERR_COUNT) { │ │ │ │ │ - this._abort(); │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - this._setStatus("onerror_fallback"); │ │ │ │ │ - setTimeout(JSJaC.bind(this._resume, this), this.getPollInterval()); │ │ │ │ │ - return false │ │ │ │ │ - }, this) │ │ │ │ │ - } catch (b) {} │ │ │ │ │ - var c = this._getRequestString(); │ │ │ │ │ - if (typeof(this._rid) != "undefined") { │ │ │ │ │ - this._req[d].rid = this._rid │ │ │ │ │ - } │ │ │ │ │ - this.oDbg.log("sending: " + c, 4); │ │ │ │ │ - this._req[d].r.send(c) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._registerPID = function(c, b, a) { │ │ │ │ │ - if (!c || !b) { │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - this._regIDs[c] = new Object(); │ │ │ │ │ - this._regIDs[c].cb = b; │ │ │ │ │ - if (a) { │ │ │ │ │ - this._regIDs[c].arg = a │ │ │ │ │ - } │ │ │ │ │ - this.oDbg.log("registered " + c, 3); │ │ │ │ │ - return true │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._sendEmpty = function JSJaCSendEmpty() { │ │ │ │ │ - var b = this._getFreeSlot(); │ │ │ │ │ - this._req[b] = this._setupRequest(true); │ │ │ │ │ - this._req[b].r.onreadystatechange = JSJaC.bind(function() { │ │ │ │ │ - if (this._req[b].r.readyState == 4) { │ │ │ │ │ - this.oDbg.log("async recv: " + this._req[b].r.responseText, 4); │ │ │ │ │ - this._getStreamID(b) │ │ │ │ │ - } │ │ │ │ │ - }, this); │ │ │ │ │ - if (typeof(this._req[b].r.onerror) != "undefined") { │ │ │ │ │ - this._req[b].r.onerror = JSJaC.bind(function(c) { │ │ │ │ │ - this.oDbg.log("XmlHttpRequest error", 1); │ │ │ │ │ - return false │ │ │ │ │ - }, this) │ │ │ │ │ - } │ │ │ │ │ - var a = this._getRequestString(); │ │ │ │ │ - this.oDbg.log("sending: " + a, 4); │ │ │ │ │ - this._req[b].r.send(a) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._sendRaw = function(c, b, a) { │ │ │ │ │ - if (b) { │ │ │ │ │ - this._sendRawCallbacks.push({ │ │ │ │ │ - fn: b, │ │ │ │ │ - arg: a │ │ │ │ │ - }) │ │ │ │ │ - } │ │ │ │ │ - this._pQueue.push(c); │ │ │ │ │ - this._process(); │ │ │ │ │ - return true │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._setStatus = function(a) { │ │ │ │ │ - if (!a || a == "") { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - if (a != this._status) { │ │ │ │ │ - this._status = a; │ │ │ │ │ - this._handleEvent("onstatuschanged", a); │ │ │ │ │ - this._handleEvent("status_changed", a) │ │ │ │ │ - } │ │ │ │ │ -}; │ │ │ │ │ -JSJaCConnection.prototype._unregisterPID = function(a) { │ │ │ │ │ - if (!this._regIDs[a]) { │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - this._regIDs[a] = null; │ │ │ │ │ - this.oDbg.log("unregistered " + a, 3); │ │ │ │ │ - return true │ │ │ │ │ -}; │ │ │ │ │ - │ │ │ │ │ -function JSJaCHttpBindingConnection(a) { │ │ │ │ │ - this.base = JSJaCConnection; │ │ │ │ │ - this.base(a); │ │ │ │ │ - this._hold = JSJACHBC_MAX_HOLD; │ │ │ │ │ - this._inactivity = 0; │ │ │ │ │ - this._last_requests = new Object(); │ │ │ │ │ - this._last_rid = 0; │ │ │ │ │ - this._min_polling = 0; │ │ │ │ │ - this._pause = 0; │ │ │ │ │ - this._wait = JSJACHBC_MAX_WAIT │ │ │ │ │ -} │ │ │ │ │ -JSJaCHttpBindingConnection.prototype = new JSJaCConnection(); │ │ │ │ │ -JSJaCHttpBindingConnection.prototype.inherit = function(a) { │ │ │ │ │ - if (a.jid) { │ │ │ │ │ - var b = new JSJaCJID(a.jid); │ │ │ │ │ - this.domain = b.getDomain(); │ │ │ │ │ - this.username = b.getNode(); │ │ │ │ │ - this.resource = b.getResource() │ │ │ │ │ - } else { │ │ │ │ │ - this.domain = a.domain || "localhost"; │ │ │ │ │ - this.username = a.username; │ │ │ │ │ - this.resource = a.resource │ │ │ │ │ - } │ │ │ │ │ - this._sid = a.sid; │ │ │ │ │ - this._rid = a.rid; │ │ │ │ │ - this._min_polling = a.polling; │ │ │ │ │ - this._inactivity = a.inactivity; │ │ │ │ │ - this._setHold(a.requests - 1); │ │ │ │ │ - this.setPollInterval(this._timerval); │ │ │ │ │ - if (a.wait) { │ │ │ │ │ - this._wait = a.wait │ │ │ │ │ - } │ │ │ │ │ - this._connected = true; │ │ │ │ │ - this._handleEvent("onconnect"); │ │ │ │ │ - this._interval = setInterval(JSJaC.bind(this._checkQueue, this), JSJAC_CHECKQUEUEINTERVAL); │ │ │ │ │ - this._inQto = setInterval(JSJaC.bind(this._checkInQ, this), JSJAC_CHECKINQUEUEINTERVAL); │ │ │ │ │ - this._timeout = setTimeout(JSJaC.bind(this._process, this), this.getPollInterval()) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype.setPollInterval = function(a) { │ │ │ │ │ - if (a && !isNaN(a)) { │ │ │ │ │ - if (!this.isPolling()) { │ │ │ │ │ - this._timerval = 100 │ │ │ │ │ - } else { │ │ │ │ │ - if (this._min_polling && a < this._min_polling * 1000) { │ │ │ │ │ - this._timerval = this._min_polling * 1000 │ │ │ │ │ - } else { │ │ │ │ │ - if (this._inactivity && a > this._inactivity * 1000) { │ │ │ │ │ - this._timerval = this._inactivity * 1000 │ │ │ │ │ - } else { │ │ │ │ │ - this._timerval = a │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - return this._timerval │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype.isPolling = function() { │ │ │ │ │ - return (this._hold == 0) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype._getFreeSlot = function() { │ │ │ │ │ - for (var a = 0; a < this._hold + 1; a++) { │ │ │ │ │ - if (typeof(this._req[a]) == "undefined" || typeof(this._req[a].r) == "undefined" || this._req[a].r.readyState == 4) { │ │ │ │ │ - return a │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - return -1 │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype._getHold = function() { │ │ │ │ │ - return this._hold │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype._getRequestString = function(b, e) { │ │ │ │ │ - b = b || ""; │ │ │ │ │ - var f = ""; │ │ │ │ │ - if (this._rid <= this._last_rid && typeof(this._last_requests[this._rid]) != "undefined") { │ │ │ │ │ - f = this._last_requests[this._rid].xml │ │ │ │ │ - } else { │ │ │ │ │ - var a = ""; │ │ │ │ │ - while (this._pQueue.length) { │ │ │ │ │ - var d = this._pQueue[0]; │ │ │ │ │ - a += d; │ │ │ │ │ - this._pQueue = this._pQueue.slice(1, this._pQueue.length) │ │ │ │ │ - } │ │ │ │ │ - f = "" │ │ │ │ │ - } else { │ │ │ │ │ - f += "/>" │ │ │ │ │ - } │ │ │ │ │ - this._last_requests[this._rid] = new Object(); │ │ │ │ │ - this._last_requests[this._rid].xml = f; │ │ │ │ │ - this._last_rid = this._rid; │ │ │ │ │ - for (var c in this._last_requests) { │ │ │ │ │ - if (this._last_requests.hasOwnProperty(c) && c < this._rid - this._hold) { │ │ │ │ │ - delete(this._last_requests[c]) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - return f │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype._getInitialRequestString = function() { │ │ │ │ │ - var a = " JSJAC_ERR_COUNT) { │ │ │ │ │ - this._abort(); │ │ │ │ │ - return null │ │ │ │ │ - } │ │ │ │ │ - if (this.connected()) { │ │ │ │ │ - this.oDbg.log("repeating (" + this._errcnt + ")", 1); │ │ │ │ │ - this._setStatus("proto_error_fallback"); │ │ │ │ │ - setTimeout(JSJaC.bind(this._resume, this), this.getPollInterval()) │ │ │ │ │ - } │ │ │ │ │ - return null │ │ │ │ │ - } │ │ │ │ │ - } catch (d) { │ │ │ │ │ - this.oDbg.log("XMLHttpRequest error: status not available", 1); │ │ │ │ │ - this._errcnt++; │ │ │ │ │ - if (this._errcnt > JSJAC_ERR_COUNT) { │ │ │ │ │ - this._abort() │ │ │ │ │ - } else { │ │ │ │ │ - if (this.connected()) { │ │ │ │ │ - this.oDbg.log("repeating (" + this._errcnt + ")", 1); │ │ │ │ │ - this._setStatus("proto_error_fallback"); │ │ │ │ │ - setTimeout(JSJaC.bind(this._resume, this), this.getPollInterval()) │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - return null │ │ │ │ │ - } │ │ │ │ │ - var a = b.responseXML.documentElement; │ │ │ │ │ - if (!a || a.tagName != "body" || a.namespaceURI != "http://jabber.org/protocol/httpbind") { │ │ │ │ │ - this.oDbg.log("invalid response:\n" + b.responseText, 1); │ │ │ │ │ - clearTimeout(this._timeout); │ │ │ │ │ - clearInterval(this._interval); │ │ │ │ │ - clearInterval(this._inQto); │ │ │ │ │ - this._connected = false; │ │ │ │ │ - this.oDbg.log("Disconnected.", 1); │ │ │ │ │ - this._handleEvent("ondisconnect"); │ │ │ │ │ - this._setStatus("internal_server_error"); │ │ │ │ │ - this._handleEvent("onerror", JSJaCError("500", "wait", "internal-server-error")); │ │ │ │ │ - return null │ │ │ │ │ - } │ │ │ │ │ - if (typeof(c.rid) != "undefined" && this._last_requests[c.rid]) { │ │ │ │ │ - if (this._last_requests[c.rid].handled) { │ │ │ │ │ - this.oDbg.log("already handled " + c.rid, 2); │ │ │ │ │ - return null │ │ │ │ │ - } else { │ │ │ │ │ - this._last_requests[c.rid].handled = true │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - if (a.getAttribute("type") == "terminate") { │ │ │ │ │ - this.oDbg.log("session terminated:\n" + b.responseText, 1); │ │ │ │ │ - clearTimeout(this._timeout); │ │ │ │ │ - clearInterval(this._interval); │ │ │ │ │ - clearInterval(this._inQto); │ │ │ │ │ - var f = a.getAttribute("condition"); │ │ │ │ │ - if (f == "remote-stream-error") { │ │ │ │ │ - if (a.getElementsByTagName("conflict").length > 0) { │ │ │ │ │ - this._setStatus("session-terminate-conflict") │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - if (f == null) { │ │ │ │ │ - f = "session-terminate" │ │ │ │ │ - } │ │ │ │ │ - this._handleEvent("onerror", JSJaCError("503", "cancel", f)); │ │ │ │ │ - this._connected = false; │ │ │ │ │ - this.oDbg.log("Disconnected.", 1); │ │ │ │ │ - this._handleEvent("ondisconnect"); │ │ │ │ │ - return null │ │ │ │ │ - } │ │ │ │ │ - this._errcnt = 0; │ │ │ │ │ - return b.responseXML.documentElement │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype._reInitStream = function(c, b, a) { │ │ │ │ │ - this._reinit = true; │ │ │ │ │ - b.call(this, a) │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype._resume = function() { │ │ │ │ │ - if (this._pause == 0 && this._rid >= this._last_rid) { │ │ │ │ │ - this._rid = this._last_rid - 1 │ │ │ │ │ - } │ │ │ │ │ - this._process() │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype._setHold = function(a) { │ │ │ │ │ - if (!a || isNaN(a) || a < 0) { │ │ │ │ │ - a = 0 │ │ │ │ │ - } else { │ │ │ │ │ - if (a > JSJACHBC_MAX_HOLD) { │ │ │ │ │ - a = JSJACHBC_MAX_HOLD │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - this._hold = a; │ │ │ │ │ - return this._hold │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype._setupRequest = function(a) { │ │ │ │ │ - var c = new Object(); │ │ │ │ │ - var b = XmlHttp.create(); │ │ │ │ │ - try { │ │ │ │ │ - b.open("POST", this._httpbase, a); │ │ │ │ │ - b.setRequestHeader("Content-Type", "text/xml; charset=utf-8") │ │ │ │ │ - } catch (d) { │ │ │ │ │ - this.oDbg.log(d, 1) │ │ │ │ │ - } │ │ │ │ │ - c.r = b; │ │ │ │ │ - this._rid++; │ │ │ │ │ - c.rid = this._rid; │ │ │ │ │ - return c │ │ │ │ │ -}; │ │ │ │ │ -JSJaCHttpBindingConnection.prototype._suspend = function() { │ │ │ │ │ - if (this._pause == 0) { │ │ │ │ │ - return │ │ │ │ │ - } │ │ │ │ │ - var c = this._getFreeSlot(); │ │ │ │ │ - this._req[c] = this._setupRequest(false); │ │ │ │ │ - var b = "