]> git.mxchange.org Git - friendica.git/commitdiff
rino: settings in admin, choose lowest common on notify
authorFabrixxm <fabrix.xm@gmail.com>
Tue, 23 Jun 2015 15:36:26 +0000 (17:36 +0200)
committerFabrixxm <fabrix.xm@gmail.com>
Tue, 23 Jun 2015 15:36:26 +0000 (17:36 +0200)
include/items.php
mod/admin.php
mod/dfrn_notify.php
view/templates/admin_site.tpl

index 2feab3ea18e8bd2d4c99a1d9d6c5155bd77438cd..a13abf28656808d6a50a616c5544fd77bead158b 100644 (file)
@@ -1987,12 +1987,8 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
 
     
        $rino = get_config('system','rino_encrypt');
-       
-       if(! $rino) {
-               $rino = 0;
-       } else {
-               $rino = 2;
-       }
+       $rino = intval($rino);
+
    
 
        
@@ -2104,6 +2100,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
        if($page)
                $postvars['page'] = $page;
 
+
        if($rino>0 && $rino_remote_version>0 && (! $dissolve)) {
                logger('rino version: '. $rino_remote_version);
 
index 78735262c27b26129716cc69d64f4ffc63211b63..fbbd6ffe4eb78f6490ce6c212305365494ecde12 100644 (file)
@@ -379,7 +379,9 @@ function admin_page_site_post(&$a){
        $proxy_disabled         =       ((x($_POST,'proxy_disabled'))           ? True                                          : False);
        $old_pager              =       ((x($_POST,'old_pager'))                ? True                                          : False);
        $only_tag_search        =       ((x($_POST,'only_tag_search'))          ? True                                          : False);
-
+       $rino                   =       ((x($_POST,'rino'))                             ? intval($_POST['rino'])                                : 0);
+       
+       
        if($ssl_policy != intval(get_config('system','ssl_policy'))) {
                if($ssl_policy == SSL_POLICY_FULL) {
                        q("update `contact` set
@@ -432,6 +434,7 @@ function admin_page_site_post(&$a){
        set_config('system','suppress_tags',$suppress_tags);
        set_config('system','shortcut_icon',$shortcut_icon);
        set_config('system','touch_icon',$touch_icon);
+       
        if ($banner==""){
                // don't know why, but del_config doesn't work...
                q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1",
@@ -515,6 +518,9 @@ function admin_page_site_post(&$a){
        set_config('system','old_pager', $old_pager);
        set_config('system','only_tag_search', $only_tag_search);
 
+       set_config('system','rino_encrypt', $rino);
+       
+       
        info( t('Site settings updated.') . EOL);
        goaway($a->get_baseurl(true) . '/admin/site' );
        return; // NOTREACHED
@@ -695,7 +701,10 @@ function admin_page_site(&$a) {
                '$only_tag_search'      => array('only_tag_search', t("Only search in tags"), get_config('system','only_tag_search'), t("On large systems the text search can slow down the system extremely.")),
 
                '$relocate_url'     => array('relocate_url', t("New base url"), $a->get_baseurl(), "Change base url for this server. Sends relocate message to all DFRN contacts of all users."),
-       '$form_security_token' => get_form_security_token("admin_site")
+               
+               '$rino'                 => array('rino', t("RINO Encription"), intval(get_config('system','rino_encrypt')), t("Encription layer between nodes."), array("Disabled", "RINO1 (deprecated)", "RINO2")),
+               
+               '$form_security_token' => get_form_security_token("admin_site")
 
        ));
 
index c8b7438c19919884b69c0c35d9595820a3f75ffb..874f17c77202a97b25c084603dd3b2c5f5aaf8e5 100644 (file)
@@ -134,6 +134,14 @@ function dfrn_notify_post(&$a) {
 
        
        if(strlen($key)) {
+               
+               // if local rino is lower than remote rino, abort: should not happen!
+               // but only for $remote_rino > 1, because old code did't send rino version
+               if ($rino_remote_version > 1 && $rino < $rino_remote) {
+                       logger("rino version '$rino_remote' is lower than supported '$rino'");
+                       xml_status(0,"rino version '$rino_remote' is lower than supported '$rino'");
+               }
+               
                $rawkey = hex2bin(trim($key));
                logger('rino: md5 raw key: ' . md5($rawkey));
                $final_key = '';
@@ -208,6 +216,7 @@ function dfrn_notify_content(&$a) {
 
                $dfrn_id = notags(trim($_GET['dfrn_id']));
                $dfrn_version = (float) $_GET['dfrn_version'];
+               $rino_remote = ((x($_GET,'rino')) ? intval($_GET['rino']) : 0);
                $type = "";
                $last_update = "";
 
@@ -288,12 +297,11 @@ function dfrn_notify_content(&$a) {
 
                
                $rino = get_config('system','rino_encrypt');
-
-               if(! $rino){
-                       $rino = 0;
-               } else {
-                       $rino = 2;
-               }
+               $rino = intval($rino);
+               
+               // if requested rino is lower than enabled local rino, lower local rino version
+               // if requested rino is higher than enabled local rino, reply with local rino
+               if ($rino_remote < $rino) $rino = $rino_remote;
                
                if((($r[0]['rel']) && ($r[0]['rel'] != CONTACT_IS_SHARING)) || ($r[0]['page-flags'] == PAGE_COMMUNITY)) {
                        $perm = 'rw';
index bcaed585c21216434d6bda92c22b50e3f8cd2cb7..34c590b2ea0eb655016b4a01b1b078442903ec77 100644 (file)
@@ -99,6 +99,7 @@
        <div class="submit"><input type="submit" name="page_site" value="{{$submit|escape:'html'}}" /></div>
        
        <h3>{{$advanced}}</h3>
+    {{include file="field_select.tpl" field=$rino}}
        {{include file="field_checkbox.tpl" field=$no_utf}}
        {{include file="field_checkbox.tpl" field=$verifyssl}}
        {{include file="field_input.tpl" field=$proxy}}