Changeset 1123

Show
Ignore:
Timestamp:
11/07/06 20:01:55 (7 years ago)
Author:
benoitg
Message:

* Fix # 268, #269 as well as greg's problems by moving all token and
registration date arithmetics

to the database, and standardize on SQL-standard

CURRENT_TIMESTAMP.

Fixes operational problems when PHP and PostGres? don't have the

same timezone

(which appears to be the case on Fedora by default).
Note that the page.php script still has PHP date arithmetics,

but at least should be self-consistent.

Location:
trunk/wifidog-auth
Files:
21 modified

Legend:

Unmodified
Added
Removed
  • trunk/wifidog-auth/CHANGELOG

    r1122 r1123  
     12006-11-07 Benoit Grégoire  <bock@step.polymtl.ca> 
     2        * Fix # 268, #269 as well as greg's problems by moving all token and registration date arithmetics 
     3         to the database, and standardize on SQL-standard CURRENT_TIMESTAMP.   
     4        Fixes operational problems when PHP and PostGres don't have the same timezone  
     5        (which appears to be the case on Fedora by default).  
     6        Note that the page.php script still has PHP date arithmetics, but at least should be self-consistent. 
     7 
    182006-10-24 Benoit Grégoire  <bock@step.polymtl.ca> 
    29        * auth/index.php: Add some defensive coding and debug output when the token is invalid. 
  • trunk/wifidog-auth/wifidog/admin/import_user_database.php

    r1117 r1123  
    196196          $status = ACCOUNT_STATUS_ALLOWED; 
    197197          $token = User::generateToken(); 
    198           $reg_date = iso8601_date(time()); 
    199198          $password_hash = $db->escapeString($user['passwd_hash']); 
    200199          $username =  $db->escapeString($username); 
    201200          $email =  $db->escapeString($user['email']); 
    202           $sql = "INSERT INTO users (user_id, username,email,pass,account_status,validation_token,reg_date) VALUES ('".get_guid()."','$username','$email','$password_hash','{$status}','{$token}','{$reg_date}')"; 
     201          $sql = "INSERT INTO users (user_id, username,email,pass,account_status,validation_token,reg_date) VALUES ('".get_guid()."','$username','$email','$password_hash','{$status}','{$token}',CURRENT_TIMESTAMP)"; 
    203202          $update_successful = $db->execSqlUpdate($sql); 
    204203          if ($update_successful) 
  • trunk/wifidog-auth/wifidog/auth/index.php

    r1122 r1123  
    6161} 
    6262 
    63 $db->execSqlUniqueRes("SELECT NOW(), *, CASE WHEN ((NOW() - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.token='$token'", $info, false); 
     63$db->execSqlUniqueRes("SELECT CURRENT_TIMESTAMP, *, CASE WHEN ((CURRENT_TIMESTAMP - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.token='$token'", $info, false); 
    6464 
    6565if ($info != null) 
  • trunk/wifidog-auth/wifidog/classes/Authenticator.php

    r1090 r1123  
    127127 
    128128        if (!empty ($conn_id)) { 
    129             $db->execSqlUniqueRes("SELECT NOW(), *, CASE WHEN ((NOW() - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.conn_id='$conn_id'", $info, false); 
     129            $db->execSqlUniqueRes("SELECT CURRENT_TIMESTAMP, *, CASE WHEN ((CURRENT_TIMESTAMP - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.conn_id='$conn_id'", $info, false); 
    130130 
    131131            $user = User::getObject($info['user_id']); 
     
    188188 
    189189        $conn_id = $db->escapeString($conn_id); 
    190         $db->execSqlUniqueRes("SELECT NOW(), *, CASE WHEN ((NOW() - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.conn_id='$conn_id'", $info, false); 
     190        $db->execSqlUniqueRes("SELECT CURRENT_TIMESTAMP, *, CASE WHEN ((CURRENT_TIMESTAMP - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.conn_id='$conn_id'", $info, false); 
    191191        $network = Network::getObject($info['network_id']); 
    192192        $splash_user_id = $network->getSplashOnlyUser()->getId(); 
     
    196196        $mac = $db->escapeString($_REQUEST['mac']); 
    197197        $ip = $db->escapeString($_REQUEST['ip']); 
    198         $sql = "UPDATE connections SET "."token_status='".TOKEN_INUSE."',"."user_mac='$mac',"."user_ip='$ip',"."last_updated=NOW()"."WHERE conn_id='{$conn_id}';"; 
     198        $sql = "UPDATE connections SET "."token_status='".TOKEN_INUSE."',"."user_mac='$mac',"."user_ip='$ip',"."last_updated=CURRENT_TIMESTAMP"."WHERE conn_id='{$conn_id}';"; 
    199199        $db->execSqlUpdate($sql, false); 
    200200 
     
    241241        // Write traffic counters to database 
    242242        $conn_id = $db->escapeString($conn_id); 
    243         $db->execSqlUpdate("UPDATE connections SET "."incoming='$incoming',"."outgoing='$outgoing',"."last_updated=NOW() "."WHERE conn_id='{$conn_id}'"); 
     243        $db->execSqlUpdate("UPDATE connections SET "."incoming='$incoming',"."outgoing='$outgoing',"."last_updated=CURRENT_TIMESTAMP "."WHERE conn_id='{$conn_id}'"); 
    244244    } 
    245245 
     
    259259        // Stop traffic counters update 
    260260        $conn_id = $db->escapeString($conn_id); 
    261         $db->execSqlUpdate("UPDATE connections SET "."timestamp_out=NOW(),"."token_status='".TOKEN_USED."' "."WHERE conn_id='{$conn_id}';\n", false); 
     261        $db->execSqlUpdate("UPDATE connections SET "."timestamp_out=CURRENT_TIMESTAMP,"."token_status='".TOKEN_USED."' "."WHERE conn_id='{$conn_id}';\n", false); 
    262262    } 
    263263 
  • trunk/wifidog-auth/wifidog/classes/Authenticators/AuthenticatorRadius.php

    r1090 r1123  
    316316        if (Dependencies::check("Radius", $errmsg)) { 
    317317            $conn_id = $db->escapeString($conn_id); 
    318             $db->execSqlUniqueRes("SELECT NOW(), *, CASE WHEN ((NOW() - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.conn_id=$conn_id", $info, false); 
     318            $db->execSqlUniqueRes("SELECT CURRENT_TIMESTAMP, *, CASE WHEN ((CURRENT_TIMESTAMP - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.conn_id=$conn_id", $info, false); 
    319319 
    320320            // RADIUS accounting start 
     
    386386 
    387387        if (Dependencies::check("Radius", $errmsg)) { 
    388             $db->execSqlUniqueRes("SELECT NOW(), *, CASE WHEN ((NOW() - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.conn_id=$conn_id", $info, false); 
     388            $db->execSqlUniqueRes("SELECT CURRENT_TIMESTAMP, *, CASE WHEN ((CURRENT_TIMESTAMP - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.conn_id=$conn_id", $info, false); 
    389389 
    390390            // RADIUS accounting ping 
     
    456456 
    457457        if (Dependencies::check("Radius", $errmsg)) { 
    458             $db->execSqlUniqueRes("SELECT NOW(), *, CASE WHEN ((NOW() - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.conn_id=$conn_id", $info, false); 
     458            $db->execSqlUniqueRes("SELECT CURRENT_TIMESTAMP, *, CASE WHEN ((CURRENT_TIMESTAMP - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired FROM connections JOIN users ON (users.user_id=connections.user_id) JOIN networks ON (users.account_origin = networks.network_id) WHERE connections.conn_id=$conn_id", $info, false); 
    459459 
    460460            // RADIUS accounting stop 
  • trunk/wifidog-auth/wifidog/classes/Content.php

    r1118 r1123  
    11251125                $db->execSql($sql, $log_rows, false); 
    11261126                if ($log_rows != null) { 
    1127                     $sql = "UPDATE content_display_log SET last_display_timestamp = NOW() WHERE user_id='$user_id' AND content_id='$this->id' AND node_id='$node_id'"; 
     1127                    $sql = "UPDATE content_display_log SET last_display_timestamp = CURRENT_TIMESTAMP WHERE user_id='$user_id' AND content_id='$this->id' AND node_id='$node_id'"; 
    11281128                } else { 
    11291129                    $sql = "INSERT INTO content_display_log (user_id, content_id, node_id) VALUES ('$user_id', '$this->id', '$node_id')"; 
  • trunk/wifidog-auth/wifidog/classes/Content/File/File.php

    r1090 r1123  
    233233    public function touch() 
    234234    { 
    235                 $this->mBd->execSqlUpdate("UPDATE content_file SET last_update_date = NOW() WHERE files_id='".$this->getId()."'", false); 
     235                $this->mBd->execSqlUpdate("UPDATE content_file SET last_update_date = CURRENT_TIMESTAMP WHERE files_id='".$this->getId()."'", false); 
    236236        $this->refresh(); 
    237237    } 
  • trunk/wifidog-auth/wifidog/classes/Content/FlickrPhotostream/FlickrPhotostream.php

    r1099 r1123  
    117117            $content_id = $db->escapeString($content_id); 
    118118 
    119             $sql = "SELECT *, EXTRACT(EPOCH FROM AGE(NOW(), cache_update_timestamp)) as cache_age FROM content_flickr_photostream WHERE flickr_photostream_id='$content_id'"; 
     119            $sql = "SELECT *, EXTRACT(EPOCH FROM AGE(CURRENT_TIMESTAMP, cache_update_timestamp)) as cache_age FROM content_flickr_photostream WHERE flickr_photostream_id='$content_id'"; 
    120120            $db->execSqlUniqueRes($sql, $row, false); 
    121121            if ($row == null) 
     
    163163            $age = is_null($this->flickr_photostream_row['cache_age']) ? self :: MAX_CACHE_AGE : $this->flickr_photostream_row['cache_age']; 
    164164            if ($force_overwrite === true || ($age >= self :: MAX_CACHE_AGE) || ($new_cache !== $old_cache)) 
    165                 $this->mBd->execSqlUpdate("UPDATE content_flickr_photostream SET cache_update_timestamp = NOW(), requests_cache = '".$this->mBd->escapeBinaryString($new_cache)."' WHERE flickr_photostream_id = '".$this->getId()."'", false); 
     165                $this->mBd->execSqlUpdate("UPDATE content_flickr_photostream SET cache_update_timestamp = CURRENT_TIMESTAMP, requests_cache = '".$this->mBd->escapeBinaryString($new_cache)."' WHERE flickr_photostream_id = '".$this->getId()."'", false); 
    166166        } 
    167167    } 
  • trunk/wifidog-auth/wifidog/classes/Network.php

    r1091 r1123  
    13571357 
    13581358            if ($nonMonitoredOnly) { 
    1359                 $db->execSqlUniqueRes("SELECT COUNT(node_id) FROM nodes WHERE network_id = '$_network_id' AND node_deployment_status = 'NON_WIFIDOG_NODE' AND ((NOW()-last_heartbeat_timestamp) >= interval '5 minutes')", $_row, false); 
     1359                $db->execSqlUniqueRes("SELECT COUNT(node_id) FROM nodes WHERE network_id = '$_network_id' AND node_deployment_status = 'NON_WIFIDOG_NODE' AND ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) >= interval '5 minutes')", $_row, false); 
    13601360            } else { 
    1361                 $db->execSqlUniqueRes("SELECT COUNT(node_id) FROM nodes WHERE network_id = '$_network_id' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') AND ((NOW()-last_heartbeat_timestamp) < interval '5 minutes')", $_row, false); 
     1361                $db->execSqlUniqueRes("SELECT COUNT(node_id) FROM nodes WHERE network_id = '$_network_id' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') AND ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) < interval '5 minutes')", $_row, false); 
    13621362            } 
    13631363 
  • trunk/wifidog-auth/wifidog/classes/Node.php

    r1092 r1123  
    232232            } 
    233233 
    234             $sql = "INSERT INTO nodes (node_id, network_id, creation_date, node_deployment_status, name) VALUES ('$node_id', '$network_id', NOW(),'$node_deployment_status', '$node_name')"; 
     234            $sql = "INSERT INTO nodes (node_id, network_id, creation_date, node_deployment_status, name) VALUES ('$node_id', '$network_id', CURRENT_TIMESTAMP,'$node_deployment_status', '$node_name')"; 
    235235 
    236236            if (!$db->execSqlUpdate($sql, false)) { 
  • trunk/wifidog-auth/wifidog/classes/NodeLists/NodeListHTML.php

    r1090 r1123  
    126126 
    127127        // Query the database, sorting by node name 
    128         $db->execSql("SELECT *, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((NOW()-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(name)", $this->_nodes, false); 
     128        $db->execSql("SELECT *, (CURRENT_TIMESTAMP-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(name)", $this->_nodes, false); 
    129129    } 
    130130 
  • trunk/wifidog-auth/wifidog/classes/NodeLists/NodeListJiWireCSV.php

    r1090 r1123  
    9696 
    9797        // Query the database, sorting by node name 
    98         $db->execSql("SELECT *, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((NOW()-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(name)", $this->_nodes, false); 
     98        $db->execSql("SELECT *, (CURRENT_TIMESTAMP-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(name)", $this->_nodes, false); 
    9999    } 
    100100 
  • trunk/wifidog-auth/wifidog/classes/NodeLists/NodeListKML.php

    r1090 r1123  
    103103 
    104104        // Query the database, sorting by node name 
    105         $db->execSql("SELECT *, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((NOW()-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(name)", $this->_nodes, false); 
     105        $db->execSql("SELECT *, (CURRENT_TIMESTAMP-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(name)", $this->_nodes, false); 
    106106    } 
    107107 
  • trunk/wifidog-auth/wifidog/classes/NodeLists/NodeListPDF.php

    r1090 r1123  
    978978 
    979979        // Query the database, sorting by node name 
    980         $db->execSql("SELECT *, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((NOW()-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(" . $this->_pdfSort . ")", $this->_nodes, false); 
     980        $db->execSql("SELECT *, (CURRENT_TIMESTAMP-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(" . $this->_pdfSort . ")", $this->_nodes, false); 
    981981    } 
    982982 
  • trunk/wifidog-auth/wifidog/classes/NodeLists/NodeListRSS.php

    r1090 r1123  
    102102 
    103103        // Query the database, sorting by node name 
    104         $db->execSql("SELECT *, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((NOW()-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(name)", $this->_nodes, false); 
     104        $db->execSql("SELECT *, (CURRENT_TIMESTAMP-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(name)", $this->_nodes, false); 
    105105    } 
    106106 
  • trunk/wifidog-auth/wifidog/classes/NodeLists/NodeListXML.php

    r1090 r1123  
    101101 
    102102        // Query the database, sorting by node name 
    103         $db->execSql("SELECT *, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((NOW()-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(name)", $this->_nodes, false); 
     103        $db->execSql("SELECT *, (CURRENT_TIMESTAMP-last_heartbeat_timestamp) AS since_last_heartbeat, EXTRACT(epoch FROM creation_date) as creation_date_epoch, CASE WHEN ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up FROM nodes WHERE network_id = '" . $db->escapeString($this->_network->getId()) . "' AND (node_deployment_status = 'DEPLOYED' OR node_deployment_status = 'NON_WIFIDOG_NODE') ORDER BY lower(name)", $this->_nodes, false); 
    104104    } 
    105105 
  • trunk/wifidog-auth/wifidog/classes/StatisticReport/NodeStatus.php

    r1037 r1123  
    100100                $html .= "<table>"; 
    101101 
    102                 $db->execSql("SELECT node_id, name, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, last_heartbeat_ip, CASE WHEN ((NOW()-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up, creation_date FROM nodes WHERE node_id = '{$node_id}'", $rows, false); 
     102                $db->execSql("SELECT node_id, name, (CURRENT_TIMESTAMP-last_heartbeat_timestamp) AS since_last_heartbeat, last_heartbeat_ip, CASE WHEN ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS is_up, creation_date FROM nodes WHERE node_id = '{$node_id}'", $rows, false); 
    103103 
    104104                $html .= ($rows[0]['is_up'] == 't') ? "<tr class='even'>" : "<tr class='red'>"; 
     
    205205                $html .= "<table>"; 
    206206                $date_constraint = $this->stats->getSqlDateConstraint(); 
    207                 $db->execSql("SELECT round(CAST( (SELECT SUM(daily_connections) FROM (SELECT COUNT(DISTINCT user_id) AS daily_connections, date_trunc('day', timestamp_in) FROM connections WHERE node_id='${node_id}' AND (incoming!=0 OR outgoing!=0) {$date_constraint} GROUP BY date_trunc('day', timestamp_in)) AS daily_connections_table) / (EXTRACT(EPOCH FROM (NOW()-(SELECT timestamp_in FROM connections WHERE node_id='${node_id}' AND (incoming!=0 OR outgoing!=0) ORDER BY timestamp_in LIMIT 1)) )/(3600*24)) AS numeric),2) AS connections_per_day", $rows, false); 
     207                $db->execSql("SELECT round(CAST( (SELECT SUM(daily_connections) FROM (SELECT COUNT(DISTINCT user_id) AS daily_connections, date_trunc('day', timestamp_in) FROM connections WHERE node_id='${node_id}' AND (incoming!=0 OR outgoing!=0) {$date_constraint} GROUP BY date_trunc('day', timestamp_in)) AS daily_connections_table) / (EXTRACT(EPOCH FROM (CURRENT_TIMESTAMP-(SELECT timestamp_in FROM connections WHERE node_id='${node_id}' AND (incoming!=0 OR outgoing!=0) ORDER BY timestamp_in LIMIT 1)) )/(3600*24)) AS numeric),2) AS connections_per_day", $rows, false); 
    208208                $html .= "<tr class='even'>"; 
    209209                $html .= "  <th>"._("Average visits per day").":</th>"; 
  • trunk/wifidog-auth/wifidog/classes/User.php

    r1093 r1123  
    206206        $token = User :: generateToken(); 
    207207 
    208         $db->execSqlUpdate("INSERT INTO users (user_id,username, account_origin,email,pass,account_status,validation_token,reg_date) VALUES ('$id_str','$username_str','$account_origin_str','$email_str','$password_hash','$status','$token',NOW())"); 
     208        $db->execSqlUpdate("INSERT INTO users (user_id,username, account_origin,email,pass,account_status,validation_token,reg_date) VALUES ('$id_str','$username_str','$account_origin_str','$email_str','$password_hash','$status','$token',CURRENT_TIMESTAMP)"); 
    209209 
    210210        $object = new self($id); 
     
    217217            $days_since_creation = $db->escapeString($days_since_creation); 
    218218     
    219             //$db->execSqlUpdate("INSERT INTO users (user_id,username, account_origin,email,pass,account_status,validation_token,reg_date) VALUES ('$id_str','$username_str','$account_origin_str','$email_str','$password_hash','$status','$token',NOW())"); 
     219            //$db->execSqlUpdate("INSERT INTO users (user_id,username, account_origin,email,pass,account_status,validation_token,reg_date) VALUES ('$id_str','$username_str','$account_origin_str','$email_str','$password_hash','$status','$token',CURRENT_TIMESTAMP)"); 
    220220        }*/ 
    221221 
     
    371371        } else 
    372372            if ($account_status == ACCOUNT_STATUS_VALIDATION) { 
    373                 $sql = "SELECT CASE WHEN ((NOW() - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired, networks.validation_grace_time FROM users  JOIN networks ON (users.account_origin = networks.network_id) WHERE (user_id='{$this->id}')"; 
     373                $sql = "SELECT CASE WHEN ((CURRENT_TIMESTAMP - reg_date) > networks.validation_grace_time) THEN true ELSE false END AS validation_grace_time_expired, networks.validation_grace_time FROM users  JOIN networks ON (users.account_origin = networks.network_id) WHERE (user_id='{$this->id}')"; 
    374374                $db->execSqlUniqueRes($sql, $user_info, false); 
    375375 
     
    449449            if ($session && $node_ip && $session->get(SESS_GW_ID_VAR)) { 
    450450                $node_id = $db->escapeString($session->get(SESS_GW_ID_VAR)); 
    451                 $db->execSqlUpdate("INSERT INTO connections (user_id, token, token_status, timestamp_in, node_id, node_ip, last_updated) VALUES ('" . $this->getId() . "', '$token', '" . TOKEN_UNUSED . "', NOW(), '$node_id', '$node_ip', NOW())", false); 
     451                $db->execSqlUpdate("INSERT INTO connections (user_id, token, token_status, timestamp_in, node_id, node_ip, last_updated) VALUES ('" . $this->getId() . "', '$token', '" . TOKEN_UNUSED . "', CURRENT_TIMESTAMP, '$node_id', '$node_ip', CURRENT_TIMESTAMP)", false); 
    452452                $retval = $token; 
    453453            } else 
  • trunk/wifidog-auth/wifidog/include/common.php

    r1096 r1123  
    193193} 
    194194 
    195 function iso8601_date($unix_timestamp) { 
    196     $tzd = date('O', $unix_timestamp); 
    197     $tzd = substr(chunk_split($tzd, 3, ':'), 0, 6); 
    198     $date = date('Y-m-d\TH:i:s', $unix_timestamp) . $tzd; 
    199     return $date; 
    200 } 
    201  
    202195/** Cleanup dangling tokens and connections from the database, left if a gateway crashed, etc. */ 
    203196function garbage_collect() { 
     
    205198 
    206199    // 10 minutes 
    207     $expiration = time() - 60 * 10; 
    208     $expiration = iso8601_date($expiration); 
    209     $db->execSqlUpdate("UPDATE connections SET token_status='" . TOKEN_USED . "' WHERE last_updated < '$expiration' AND token_status = '" . TOKEN_INUSE . "'", false); 
     200    $expiration = '10 minutes'; 
     201    $db->execSqlUpdate("UPDATE connections SET token_status='" . TOKEN_USED . "' WHERE last_updated < (CURRENT_TIMESTAMP - interval '$expiration') AND token_status = '" . TOKEN_INUSE . "';", false); 
    210202} 
    211203 
  • trunk/wifidog-auth/wifidog/node_list.php

    r1089 r1123  
    9898// Sort according to above instructions 
    9999if ($sort_by_using_sql === true) 
    100     $sql = "SELECT node_id, name, last_heartbeat_user_agent, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, last_heartbeat_ip, CASE WHEN ((NOW()-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS online, creation_date, node_deployment_status FROM nodes WHERE node_deployment_status != 'PERMANENTLY_CLOSED' ORDER BY {$sort_by_param}"; 
     100    $sql = "SELECT node_id, name, last_heartbeat_user_agent, (CURRENT_TIMESTAMP-last_heartbeat_timestamp) AS since_last_heartbeat, last_heartbeat_ip, CASE WHEN ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS online, creation_date, node_deployment_status FROM nodes WHERE node_deployment_status != 'PERMANENTLY_CLOSED' ORDER BY {$sort_by_param}"; 
    101101else 
    102     $sql = "SELECT node_id, name, last_heartbeat_user_agent, (NOW()-last_heartbeat_timestamp) AS since_last_heartbeat, last_heartbeat_ip, CASE WHEN ((NOW()-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS online, creation_date, node_deployment_status FROM nodes WHERE node_deployment_status != 'PERMANENTLY_CLOSED' ORDER BY ".DEFAULT_SORT_BY_PARAM; 
     102    $sql = "SELECT node_id, name, last_heartbeat_user_agent, (CURRENT_TIMESTAMP-last_heartbeat_timestamp) AS since_last_heartbeat, last_heartbeat_ip, CASE WHEN ((CURRENT_TIMESTAMP-last_heartbeat_timestamp) < interval '5 minutes') THEN true ELSE false END AS online, creation_date, node_deployment_status FROM nodes WHERE node_deployment_status != 'PERMANENTLY_CLOSED' ORDER BY ".DEFAULT_SORT_BY_PARAM; 
    103103$nodes_results = null; 
    104104$db->execSql($sql, $nodes_results, false); 
  • trunk/wifidog-auth/wifidog/ping/index.php

    r916 r1123  
    5454$node_id = $db->escapeString($_REQUEST['gw_id']); 
    5555$user_agent =  $db->escapeString($_SERVER['HTTP_USER_AGENT']); 
    56 $db->execSqlUpdate("UPDATE nodes SET last_heartbeat_ip='$_SERVER[REMOTE_ADDR]', last_heartbeat_timestamp=NOW(), last_heartbeat_user_agent='$user_agent' WHERE node_id='$node_id'"); 
     56$db->execSqlUpdate("UPDATE nodes SET last_heartbeat_ip='$_SERVER[REMOTE_ADDR]', last_heartbeat_timestamp=CURRENT_TIMESTAMP, last_heartbeat_user_agent='$user_agent' WHERE node_id='$node_id'"); 
    5757 
    5858/*