Project

General

Profile

« Previous | Next » 

Revision 1974c2d6

Added by Cyrill B over 12 years ago

Fix: SQlite in CP

View differences:

etc/inc/captiveportal.inc
1217 1217
	else {
1218 1218
		$errormsg = "";
1219 1219
		$DB = @sqlite_open("{$g['vardb_path']}/captiveportal{$cpzone}.db");
1220
		if (@sqlite_exec($DB, "CREATE TABLE captiveportal (allow_time INTEGER, ruleno INTEGER, ip TEXT, mac TEXT, username TEXT, sessionid TEXT, bpassword TEXT, session_timeout INTEGER, idle_timeout INTEGER, session_terminate_time INTEGER) ", $errormsg)) {
1220
		if (@sqlite_exec($DB, "CREATE TABLE captiveportal (allow_time INTEGER, pipeno INTEGER, ip TEXT, mac TEXT, username TEXT, sessionid TEXT, bpassword TEXT, session_timeout INTEGER, idle_timeout INTEGER, session_terminate_time INTEGER) ", $errormsg)) {
1221 1221
			@sqlite_exec($DB, "CREATE UNIQUE INDEX idx_active ON captiveportal (sessionid, username)");
1222 1222
			@sqlite_exec($DB, "CREATE INDEX user ON captiveportal (username)");
1223 1223
			@sqlite_exec($DB, "CREATE INDEX ip ON captiveportal (ip)");
......
1256 1256
	if (!is_array($remove) || empty($remove))
1257 1257
		return;
1258 1258

  
1259
	$query = "DELETE FROM captiveportal WHERE sessiondid in (";
1259
	$query = "DELETE FROM captiveportal WHERE sessionid in (";
1260 1260
	foreach($remove as $idx => $rid) {
1261 1261
		$query .= "'{$unindex}'";
1262 1262
		if ($idx < (count($remove) - 1))
......
1856 1856

  
1857 1857
			if ($attributes['voucher'])
1858 1858
				$attributes['session_timeout'] = $remaining_time;
1859
			
1860
			/* handle empty attributes */
1861
			$session_timeout = (!empty($attributes['session_timeout'])) ? $attributes['session_timeout'] : 'NULL';
1862
			$idle_timeout = (!empty($attributes['idle_timeout'])) ? $attributes['idle_timeout'] : 'NULL';
1863
			$session_terminate_time = (!empty($attributes['session_terminate_time'])) ? $attributes['session_terminate_time'] : 'NULL';
1864

  
1865
			/* escape username */
1866
			$safe_username = sqlite_escape_string($username);
1859 1867

  
1860 1868
			/* encode password in Base64 just in case it contains commas */
1861 1869
			$bpassword = base64_encode($password);
1862 1870
			$cpdb[] = array($allow_time, $pipeno, $clientip, $clientmac, $username, $sessionid, $bpassword,
1863 1871
				$attributes['session_timeout'], $attributes['idle_timeout'], $attributes['session_terminate_time'], $radiusctx);
1864
			$insertquery = "INSERT INTO captiveportal (allow_time, ruleno, ip, mac, username, sessionid, bpassword, session_timeout, idle_timeout, session_terminate_time) ";
1865
			$insertquery .= " VALUES ({$allow_time}, {$ruleno}, '{$clientip}', '{$clientmac}', '{$username}', '{$sessionid}', '{$bpassword}',";
1866
			$insertquery .= "{$attributes['session_timeout']}, {$attributes['idle_timeout']}, {$attributes['session_terminate_time']})";
1872
			$insertquery  = "INSERT INTO captiveportal (allow_time, pipeno, ip, mac, username, sessionid, bpassword, session_timeout, idle_timeout, session_terminate_time) ";
1873
			$insertquery .= "VALUES ({$allow_time}, {$pipeno}, '{$clientip}', '{$clientmac}', '{$safe_username}', '{$sessionid}', '{$bpassword}', ";
1874
			$insertquery .= "{$session_timeout}, {$idle_timeout}, {$session_terminate_time})";
1867 1875

  
1868 1876
			/* store information to database */
1869 1877
			captiveportal_write_db($insertquery);

Also available in: Unified diff