Author: cazfi
Date: Sun Feb 14 12:52:52 2016
New Revision: 31919

URL: http://svn.gna.org/viewcvs/freeciv?rev=31919&view=rev
Log:
Moved database.lua from data/ to lua/ in source tree.

See patch #6929

Added:
    trunk/lua/
    trunk/lua/Makefile.am
    trunk/lua/database.lua
      - copied unchanged from r31918, trunk/data/database.lua
Removed:
    trunk/data/database.lua
Modified:
    trunk/Makefile.am
    trunk/configure.ac
    trunk/data/Makefile.am

Modified: trunk/Makefile.am
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/Makefile.am?rev=31919&r1=31918&r2=31919&view=diff
==============================================================================
--- trunk/Makefile.am   (original)
+++ trunk/Makefile.am   Sun Feb 14 12:52:52 2016
@@ -25,7 +25,7 @@
 DSUBDIRS =
 endif
 
-SUBDIRS = $(DSUBDIRS) dependencies utility common tests win32 $(SSUBDIRS) 
$(CSUBDIRS) translations doc tools gen_headers bootstrap
+SUBDIRS = $(DSUBDIRS) dependencies utility common tests win32 $(SSUBDIRS) 
$(CSUBDIRS) translations doc tools gen_headers lua bootstrap
 
 ## Automake should distribute config.rpath automatically - and new
 ## versions probably do. We still support versions that do not, so

Modified: trunk/configure.ac
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/configure.ac?rev=31919&r1=31918&r2=31919&view=diff
==============================================================================
--- trunk/configure.ac  (original)
+++ trunk/configure.ac  Sun Feb 14 12:52:52 2016
@@ -1646,6 +1646,7 @@
          doc/nl/Makefile
          doc/sv/Makefile
           bootstrap/Makefile
+          lua/Makefile
          freeciv.spec:bootstrap/freeciv.spec.in
          client/freeciv.desktop:bootstrap/freeciv.desktop.in
           client/freeciv-gtk2.desktop:bootstrap/freeciv-gtk2.desktop.in

Modified: trunk/data/Makefile.am
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/Makefile.am?rev=31919&r1=31918&r2=31919&view=diff
==============================================================================
--- trunk/data/Makefile.am      (original)
+++ trunk/data/Makefile.am      Sun Feb 14 12:52:52 2016
@@ -1,6 +1,4 @@
 ## Process this file with automake to produce Makefile.in
-
-pkgsysconfdir = $(sysconfdir)/$(PACKAGE)
 
 if CLIENT
 CLIENT_FILES =                         \
@@ -45,18 +43,14 @@
 
 if SERVER
 SERVER_FILES = $(SRV_RE_FILES)
-SERVER_CONF = database.lua
 else
 if RULEDIT
 SERVER_FILES = $(SRV_RE_FILES)
-SERVER_CONF =
 else
 SERVER_FILES =
-SERVER_CONF =
 endif
 endif
 
-pkgsysconf_DATA = $(SERVER_CONF)
 pkgdata_DATA = $(SERVER_FILES) $(CLIENT_FILES)
 
 EXTRA_DIST = \

Removed: trunk/data/database.lua
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/database.lua?rev=31918&view=auto
==============================================================================
--- trunk/data/database.lua     (original)
+++ trunk/data/database.lua     (removed)
@@ -1,402 +0,0 @@
--- Freeciv - Copyright (C) 2011 - The Freeciv Project
---   This program is free software; you can redistribute it and/or modify
---   it under the terms of the GNU General Public License as published by
---   the Free Software Foundation; either version 2, or (at your option)
---   any later version.
---
---   This program is distributed in the hope that it will be useful,
---   but WITHOUT ANY WARRANTY; without even the implied warranty of
---   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
---   GNU General Public License for more details.
-
--- This file is the Freeciv server`s interface to the database backend
--- when authentication is enabled. See doc/README.fcdb.
-
-local dbh = nil
-
--- Machinery for debug logging of options
-local seen_options
-local function options_init()
-  seen_options = {}
-end
-local function option_log(name, val, is_sensitive, source)
-  if not seen_options[name] then
-    seen_options[name] = true
-    if is_sensitive then
-      log.debug('Database option \'%s\': %s', name, source)
-    else
-      log.debug('Database option \'%s\': %s: value \'%s\'', name, source, val)
-    end
-  end
-end
-
--- Get an option from configuration file, falling back to sensible
--- defaults where they exist
-local function get_option(name, is_sensitive)
-  local defaults = {
-    backend    = "sqlite",
-    table_user = "fcdb_auth",
-    table_log  = "fcdb_log"
-  }
-  local val = fcdb.option(name)
-  if val then
-    option_log(name, val, is_sensitive, 'read from file')
-  else
-    val = defaults[name]
-    if val then
-      option_log(name, val, is_sensitive, 'using default')
-    end
-  end
-  if not val then
-    log.error('Database option \'%s\' not specified in configuration file',
-              name)
-  end
-  return val
-end
-
--- connect to a MySQL database (or stop with an error)
-local function mysql_connect()
-  local err -- error message
-
-  if dbh then
-    dbh:close()
-  end
-
-  local sql = ls_mysql.mysql()
-
-  log.verbose('MySQL database version is %s.', ls_mysql._MYSQLVERSION)
-
-  -- Load the database parameters.
-  local database = get_option("database")
-  local user     = get_option("user")
-  local password = get_option("password", true)
-  local host     = get_option("host")
-  local port     = get_option("port")
-
-  dbh, err = sql:connect(database, user, password, host, port)
-  if not dbh then
-    log.error('[mysql:connect]: %s', err)
-    return fcdb.status.ERROR
-  else
-    return fcdb.status.TRUE
-  end
-end
-
--- open a SQLite database (or stop with an error)
-local function sqlite_connect()
-  local err -- error message
-
-  if dbh then
-    dbh:close()
-  end
-
-  local sql = ls_sqlite3.sqlite3()
-
-  -- Load the database parameters.
-  local database = get_option("database")
-
-  dbh, err = sql:connect(database)
-  if not dbh then
-    log.error('[sqlite:connect]: %s', err)
-    return fcdb.status.ERROR
-  else
-    return fcdb.status.TRUE
-  end
-end
-
--- execute a sql query
-local function execute(query)
-  local res -- result handle
-  local err -- error message
-
-  if not dbh then
-    return fcdb.status.ERROR, "[execute] Invalid database handle."
-  end
-
-  -- log.verbose("Database query: %s", query)
-
-  res, err = dbh:execute(query)
-  if not res then
-    log.error("[luasql:execute]: %s", err)
-    return fcdb.status.ERROR, err
-  else
-    return fcdb.status.TRUE, res
-  end
-end
-
--- DIRTY: return a string to put in a database query which gets the
--- current time (in seconds since the epoch, UTC).
--- (This should be replaced with Lua os.time() once the script has access
--- to this, see <http://gna.org/bugs/?19729>.)
-function sql_time()
-  local backend = get_option("backend")
-  if backend == 'mysql' then
-    return 'UNIX_TIMESTAMP()'
-  elseif backend == 'sqlite' then
-    return 'strftime(\'%s\',\'now\')'
-  else
-    log.error('Don\'t know how to do timestamps for database backend \'%s\'', 
backend)
-    return 'ERROR'
-  end
-end
-
--- Set up tables for an SQLite database.
--- (Since there`s no concept of user rights, we can do this directly from Lua,
--- without needing a separate script like MySQL. The server operator can do
--- "/fcdb lua sqlite_createdb()" from the server prompt.)
-function sqlite_createdb()
-  local query
-  local res
-
-  if get_option("backend") ~= 'sqlite' then
-    log.error("'backend' in configuration file must be 'sqlite'")
-    return fcdb.status.ERROR
-  end
-
-  local table_user = get_option("table_user")
-  local table_log  = get_option("table_log")
-
-  if not dbh then
-    log.error("Missing database connection...")
-    return fcdb.status.ERROR
-  end
-
-  query = string.format([[
-CREATE TABLE %s (
-  id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
-  name VARCHAR(48) default NULL UNIQUE,
-  password VARCHAR(32) default NULL,
-  email VARCHAR default NULL,
-  createtime INTEGER default NULL,
-  accesstime INTEGER default NULL,
-  address VARCHAR default NULL,
-  createaddress VARCHAR default NULL,
-  logincount INTEGER default '0'
-);
-]], table_user)
-  status, res = execute(query)
-  if status == fcdb.status.TRUE then
-    log.normal("Successfully created user table '%s'", table_user)
-  else
-    log.error("Error creating user table '%s'", table_user)
-    return fcdb.status.ERROR
-  end
-
-  query = string.format([[
-CREATE TABLE %s (
-  id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
-  name VARCHAR(48) default NULL,
-  logintime INTEGER default NULL,
-  address VARCHAR default NULL,
-  succeed TEXT default 'S'
-);]], table_log)
-  status, res = execute(query)
-  if status == fcdb.status.TRUE then
-    log.normal("Successfully created log table '%s'", table_log)
-  else
-    log.error("Error creating log table '%s'", table_log)
-    return fcdb.status.ERROR
-  end
-
-  return fcdb.status.TRUE
-
-end
-
--- **************************************************************************
--- For MySQL, the following shapes of tables are expected
--- (scripts/setup_auth_server.sh automates this):
---
--- CREATE TABLE fcdb_auth (
---   id int(11) NOT NULL auto_increment,
---   name varchar(48) default NULL,
---   password varchar(32) default NULL,
---   email varchar(128) default NULL,
---   createtime int(11) default NULL,
---   accesstime int(11) default NULL,
---   address varchar(255) default NULL,
---   createaddress varchar(255) default NULL,
---   logincount int(11) default '0',
---   PRIMARY KEY  (id),
---   UNIQUE KEY name (name)
--- );
---
--- CREATE TABLE fcdb_log (
---   id int(11) NOT NULL auto_increment,
---   name varchar(48) default NULL,
---   logintime int(11) default NULL,
---   address varchar(255) default NULL,
---   succeed enum('S','F') default 'S',
---   PRIMARY KEY  (id)
--- );
---
--- N.B. if the tables are not of this format, then the select, insert,
---      and update syntax in the following functions must be changed.
--- **************************************************************************
-
--- **************************************************************************
--- freeciv user auth functions
--- **************************************************************************
-
--- load user data
-function user_load(conn)
-  local status  -- return value (status of the request)
-  local res     -- result handle
-  local row     -- one row of the sql result
-  local query   -- sql query
-
-  local fields = 'password'
-
-  local table_user = get_option("table_user")
-  local table_log  = get_option("table_log")
-
-  if not dbh then
-    log.error("Missing database connection...")
-    return fcdb.status.ERROR
-  end
-
-  local username = dbh:escape(auth.get_username(conn))
-  local ipaddr = dbh:escape(auth.get_ipaddr(conn))
-
-  -- get the password for this user
-  query = string.format([[SELECT %s FROM %s WHERE name = '%s']],
-                        fields, table_user, username)
-  status, res = execute(query)
-  if status ~= fcdb.status.TRUE then
-    return fcdb.status.ERROR
-  end
-
-  row = res:fetch({}, 'a')
-  if not row then
-    -- No match
-    res:close()
-    return fcdb.status.FALSE
-  end
-
-  -- There should be only one result
-  if res:fetch() then
-    log.error('[user_load]: multiple entries (%d) for user: %s',
-              numrows, username)
-    res:close()
-    return fcdb.status.FALSE
-  end
-
-  auth.set_password(conn, row.password)
-
-  res:close()
-
-  return fcdb.status.TRUE
-end
-
--- save a user to the database
-function user_save(conn)
-  local status  -- return value (status of the request)
-  local res     -- result handle
-  local query   -- sql query
-
-  local table_user = get_option("table_user")
-
-  if not dbh then
-    log.error("Missing database connection...")
-    return fcdb.status.ERROR
-  end
-
-  local username = dbh:escape(auth.get_username(conn))
-  local password = dbh:escape(auth.get_password(conn))
-  local ipaddr = auth.get_ipaddr(conn)
-
-  -- insert the user
-  --local now = os.time()
-  query = string.format([[INSERT INTO %s VALUES (NULL, '%s', '%s',
-                          NULL, %s, %s, '%s', '%s', 0)]],
-                        table_user, username, password,
-                        sql_time(), sql_time(),
-                        ipaddr, ipaddr)
-  status, res = execute(query)
-  if status ~= fcdb.status.TRUE then
-    return fcdb.status.ERROR
-  end
-
-  -- log this session
-  return user_log(conn, true)
-end
-
--- log the session
-function user_log(conn, success)
-  local status  -- return value (status of the request)
-  local res     -- result handle
-  local query   -- sql query
-
-  if not dbh then
-    log.error("Missing database connection...")
-    return fcdb.status.ERROR
-  end
-
-  local table_user = get_option("table_user")
-  local table_log  = get_option("table_log")
-
-  local username = dbh:escape(auth.get_username(conn))
-  local ipaddr = auth.get_ipaddr(conn)
-  local success_str = success and 'S' or 'F'
-
-  -- update user data
-  --local now = os.time()
-  query = string.format([[UPDATE %s SET accesstime = %s, address = '%s',
-                          logincount = logincount + 1
-                          WHERE name = '%s']], table_user, sql_time(),
-                          ipaddr, username)
-  status, res = execute(query)
-  if status ~= fcdb.status.TRUE then
-    return fcdb.status.ERROR
-  end
-
-  -- insert the log row for this user
-  query = string.format([[INSERT INTO %s (name, logintime, address, succeed)
-                          VALUES ('%s', %s, '%s', '%s')]],
-                        table_log, username, sql_time(), ipaddr, success_str)
-  status, res = execute(query)
-  if status ~= fcdb.status.TRUE then
-    return fcdb.status.ERROR
-  end
-
-  return fcdb.status.TRUE
-end
-
--- **************************************************************************
--- freeciv database entry functions
--- **************************************************************************
-
--- test and initialise the database connection
-function database_init()
-  local status -- return value (status of the request)
-
-  options_init()
-
-  local backend = get_option("backend")
-  if backend == 'mysql' then
-    log.verbose('Opening MySQL database connection...')
-    status = mysql_connect()
-  elseif backend == 'sqlite' then
-    log.verbose('Opening SQLite database connection...')
-    status = sqlite_connect()
-  else
-    log.error('Database backend \'%s\' not supported by database.lua', backend)
-    return fcdb.status.ERROR
-  end
-
-  if status == fcdb.status.TRUE then
-    log.verbose('Database connection successful.')
-  end
-
-  return status
-end
-
--- free the database connection
-function database_free()
-  log.verbose('Closing database connection...')
-
-  if dbh then
-    dbh:close()
-  end
-
-  return fcdb.status.TRUE;
-end

Added: trunk/lua/Makefile.am
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/lua/Makefile.am?rev=31919&view=auto
==============================================================================
--- trunk/lua/Makefile.am       (added)
+++ trunk/lua/Makefile.am       Sun Feb 14 12:52:52 2016
@@ -0,0 +1,15 @@
+## Process this file with automake to produce Makefile.in
+
+pkgsysconfdir = $(sysconfdir)/$(PACKAGE)
+
+if SERVER
+SERVER_CONF = database.lua
+else
+SERVER_FILES =
+SERVER_CONF =
+endif
+
+pkgsysconf_DATA = $(SERVER_CONF)
+
+EXTRA_DIST = \
+       database.lua


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to