jappixmini: make BOSH proxy optional
This commit is contained in:
parent
a53167da1a
commit
b4aa673c5d
3 changed files with 38 additions and 23 deletions
|
@ -10,8 +10,9 @@ the Jappix project (https://bind.jappix.com/) is not locked to a specific XMPP
|
||||||
provider, but keep in mind that only personal usage is approved according to
|
provider, but keep in mind that only personal usage is approved according to
|
||||||
http://codingteam.net/project/jappix/doc/BoshServer.
|
http://codingteam.net/project/jappix/doc/BoshServer.
|
||||||
If you have a larger server, it is recommended that you install your own BOSH
|
If you have a larger server, it is recommended that you install your own BOSH
|
||||||
server, add it to the <bosh> tag in jappix/store/conf/hosts.xml, and disable
|
server and recommend it using the configuration help field. If it is on the
|
||||||
the bosh proxy in jappix/store/conf/main.xml.
|
same server, you can also deactivate the BOSH proxy. This should improve the
|
||||||
|
performance.
|
||||||
|
|
||||||
The addon has an experimental autosubscribe and autosuggest functionality which
|
The addon has an experimental autosubscribe and autosuggest functionality which
|
||||||
tries to add your Friendica contacts to your roster automatically.
|
tries to add your Friendica contacts to your roster automatically.
|
||||||
|
|
|
@ -70,7 +70,7 @@ register_hook('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron');
|
||||||
// Jappix source download as required by AGPL
|
// Jappix source download as required by AGPL
|
||||||
register_hook('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_download_source');
|
register_hook('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_download_source');
|
||||||
|
|
||||||
// set standard info text
|
// set standard configuration
|
||||||
$info_text = get_config("jappixmini", "infotext");
|
$info_text = get_config("jappixmini", "infotext");
|
||||||
if (!$info_text) set_config("jappixmini", "infotext",
|
if (!$info_text) set_config("jappixmini", "infotext",
|
||||||
"To get the chat working, you need to know a BOSH host which works with your Jabber account. ".
|
"To get the chat working, you need to know a BOSH host which works with your Jabber account. ".
|
||||||
|
@ -78,6 +78,9 @@ if (!$info_text) set_config("jappixmini", "infotext",
|
||||||
"in mind that the BOSH server can read along all chat messages. If you know that your Jabber ".
|
"in mind that the BOSH server can read along all chat messages. If you know that your Jabber ".
|
||||||
"server also provides an own BOSH server, it is much better to use this one!"
|
"server also provides an own BOSH server, it is much better to use this one!"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$bosh_proxy = get_config("jappixmini", "bosh_proxy");
|
||||||
|
if ($bosh_proxy==="") set_config("jappixmini", "bosh_proxy", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -110,10 +113,18 @@ function jappixmini_plugin_admin(&$a, &$o) {
|
||||||
$cron_run = get_config("jappixmini", "last_cron_execution");
|
$cron_run = get_config("jappixmini", "last_cron_execution");
|
||||||
if (!$cron_run) $o .= "<p><strong>Warning: The cron job has not yet been executed. If this message is still there after some time (usually 10 minutes), this means that autosubscribe and autoaccept will not work.</strong></p>";
|
if (!$cron_run) $o .= "<p><strong>Warning: The cron job has not yet been executed. If this message is still there after some time (usually 10 minutes), this means that autosubscribe and autoaccept will not work.</strong></p>";
|
||||||
|
|
||||||
|
// bosh proxy
|
||||||
|
$bosh_proxy = intval(get_config("jappixmini", "bosh_proxy"));
|
||||||
|
$bosh_proxy = intval($bosh_proxy) ? ' checked="checked"' : '';
|
||||||
|
$o .= '<label for="jappixmini-proxy">Activate BOSH proxy</label>';
|
||||||
|
$o .= ' <input id="jappixmini-proxy" type="checkbox" name="jappixmini-proxy" value="1"'.$bosh_proxy.' /><br />';
|
||||||
|
|
||||||
// info text field
|
// info text field
|
||||||
$o .= '<label for="jappixmini-infotext">Info text to help users with configuration (important if you want to provide your own BOSH host!):</label><br />';
|
|
||||||
$info_text = get_config("jappixmini", "infotext");
|
$info_text = get_config("jappixmini", "infotext");
|
||||||
$o .= '<textarea id="jappixmini-infotext" name="jappixmini-infotext" rows="5" cols="50">'.htmlentities($info_text).'</textarea><br />';
|
$o .= '<p><label for="jappixmini-infotext">Info text to help users with configuration (important if you want to provide your own BOSH host!):</label><br />';
|
||||||
|
$o .= '<textarea id="jappixmini-infotext" name="jappixmini-infotext" rows="5" cols="50">'.htmlentities($info_text).'</textarea></p>';
|
||||||
|
|
||||||
|
// submit button
|
||||||
$o .= '<input type="submit" name="jappixmini-admin-settings" value="OK" />';
|
$o .= '<input type="submit" name="jappixmini-admin-settings" value="OK" />';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,7 +133,9 @@ function jappixmini_plugin_admin_post(&$a) {
|
||||||
$submit = $_REQUEST['jappixmini-admin-settings'];
|
$submit = $_REQUEST['jappixmini-admin-settings'];
|
||||||
if ($submit) {
|
if ($submit) {
|
||||||
$info_text = $_REQUEST['jappixmini-infotext'];
|
$info_text = $_REQUEST['jappixmini-infotext'];
|
||||||
|
$bosh_proxy = intval($_REQUEST['jappixmini-proxy']);
|
||||||
set_config("jappixmini", "infotext", $info_text);
|
set_config("jappixmini", "infotext", $info_text);
|
||||||
|
set_config("jappixmini", "bosh_proxy", $bosh_proxy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -255,13 +268,9 @@ function jappixmini_settings(&$a, &$s) {
|
||||||
$s .= ' <input id="jappixmini-server" type="text" name="jappixmini-server" value="'.$server.'" />';
|
$s .= ' <input id="jappixmini-server" type="text" name="jappixmini-server" value="'.$server.'" />';
|
||||||
$s .= '<br />';
|
$s .= '<br />';
|
||||||
|
|
||||||
$conf = file_get_contents("addon/jappixmini/jappix/store/conf/main.xml");
|
$s .= '<label for="jappixmini-bosh">Jabber BOSH host</label>';
|
||||||
preg_match("/<bosh_proxy>(.*)<\/bosh_proxy>/", $conf, $matches);
|
$s .= ' <input id="jappixmini-bosh" type="text" name="jappixmini-bosh" value="'.$bosh.'" />';
|
||||||
if ($matches[1]=="on") {
|
$s .= '<br />';
|
||||||
$s .= '<label for="jappixmini-bosh">Jabber BOSH host</label>';
|
|
||||||
$s .= ' <input id="jappixmini-bosh" type="text" name="jappixmini-bosh" value="'.$bosh.'" />';
|
|
||||||
$s .= '<br />';
|
|
||||||
}
|
|
||||||
|
|
||||||
$s .= '<label for="jappixmini-password">Jabber password</label>';
|
$s .= '<label for="jappixmini-password">Jabber password</label>';
|
||||||
$s .= ' <input type="hidden" id="jappixmini-password" name="jappixmini-encrypted-password" value="'.$password.'" />';
|
$s .= ' <input type="hidden" id="jappixmini-password" name="jappixmini-encrypted-password" value="'.$password.'" />';
|
||||||
|
@ -410,11 +419,13 @@ function jappixmini_script(&$a,&$s) {
|
||||||
$autosubscribe = get_pconfig(local_user(),'jappixmini','autosubscribe');
|
$autosubscribe = get_pconfig(local_user(),'jappixmini','autosubscribe');
|
||||||
$autosubscribe = intval($autosubscribe);
|
$autosubscribe = intval($autosubscribe);
|
||||||
|
|
||||||
// deactivate bosh host if proxy is off
|
// set proxy if necessary
|
||||||
$conf = file_get_contents("addon/jappixmini/jappix/store/conf/main.xml");
|
$use_proxy = get_config('jappixmini','bosh_proxy');
|
||||||
preg_match("/<bosh_proxy>(.*)<\/bosh_proxy>/", $conf, $matches);
|
if ($use_proxy) {
|
||||||
if ($matches[1]!="on") {
|
$proxy = $a->get_baseurl().'/addon/jappixmini/jappix/php/bosh.php';
|
||||||
$bosh = '';
|
}
|
||||||
|
else {
|
||||||
|
$proxy = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
// get a list of jabber accounts of the contacts
|
// get a list of jabber accounts of the contacts
|
||||||
|
@ -448,7 +459,7 @@ function jappixmini_script(&$a,&$s) {
|
||||||
// add javascript to start Jappix Mini
|
// add javascript to start Jappix Mini
|
||||||
$a->page['htmlhead'] .= "<script type=\"text/javascript\">
|
$a->page['htmlhead'] .= "<script type=\"text/javascript\">
|
||||||
jQuery(document).ready(function() {
|
jQuery(document).ready(function() {
|
||||||
jappixmini_addon_start('$server', '$username', '$bosh', $encrypt, '$password', $nickname, $contacts_json, $autoapprove, $autosubscribe);
|
jappixmini_addon_start('$server', '$username', '$proxy', '$bosh', $encrypt, '$password', $nickname, $contacts_json, $autoapprove, $autosubscribe);
|
||||||
});
|
});
|
||||||
</script>";
|
</script>";
|
||||||
|
|
||||||
|
|
|
@ -170,7 +170,7 @@ function jappixmini_addon_subscribe() {
|
||||||
sendSubscribe(xid, "subscribe");
|
sendSubscribe(xid, "subscribe");
|
||||||
}
|
}
|
||||||
|
|
||||||
function jappixmini_addon_start(server, username, bosh, encrypted, password, nickname, contacts, autoapprove, autosubscribe) {
|
function jappixmini_addon_start(server, username, proxy, bosh, encrypted, password, nickname, contacts, autoapprove, autosubscribe) {
|
||||||
handler = function(password){
|
handler = function(password){
|
||||||
// check if settings have changed, reinitialize jappix mini if this is the case
|
// check if settings have changed, reinitialize jappix mini if this is the case
|
||||||
settings_identifier = str_sha1(server);
|
settings_identifier = str_sha1(server);
|
||||||
|
@ -183,15 +183,18 @@ function jappixmini_addon_start(server, username, bosh, encrypted, password, nic
|
||||||
if (saved_identifier != settings_identifier) removeDB('jappix-mini', 'dom');
|
if (saved_identifier != settings_identifier) removeDB('jappix-mini', 'dom');
|
||||||
setDB("jappix-mini", "settings_identifier", settings_identifier);
|
setDB("jappix-mini", "settings_identifier", settings_identifier);
|
||||||
|
|
||||||
// set bosh host
|
// set HOST_BOSH
|
||||||
if (bosh)
|
if (proxy)
|
||||||
HOST_BOSH = HOST_BOSH+"?host_bosh="+encodeURI(bosh);
|
HOST_BOSH = proxy+"?host_bosh="+encodeURI(bosh);
|
||||||
|
else
|
||||||
|
HOST_BOSH = bosh;
|
||||||
|
|
||||||
// start jappix mini
|
// start jappix mini
|
||||||
MINI_NICKNAME = nickname;
|
MINI_NICKNAME = nickname;
|
||||||
|
LOCK_HOST = "off";
|
||||||
console.log("launchMini");
|
console.log("launchMini");
|
||||||
launchMini(true, false, server, username, password);
|
launchMini(true, false, server, username, password);
|
||||||
jappixmini_manage_roster(contacts, autoapprove, autosubscribe)
|
jappixmini_manage_roster(contacts, autoapprove, autosubscribe)
|
||||||
}
|
}
|
||||||
|
|
||||||
// decrypt password if necessary
|
// decrypt password if necessary
|
||||||
|
|
Loading…
Reference in a new issue