Commit graph

309 commits

Author SHA1 Message Date
Al Riddoch
e0b864b55d 2007-12-20 Al Riddoch <alriddoch@zepler.org>
* server/Makefile.am, server/Restoration.h, server/Restorer.h,
	  server/server.cpp: Remove the counter part templated restorer
	  code from the build.
2007-12-20 21:19:04 +00:00
Al Riddoch
3a2bc079e9 2007-12-20 Al Riddoch <alriddoch@zepler.org>
* server/EntityFactory.cpp, server/EntityFactory.h, server/Admin.cpp,
	  server/PersistantThingFactory.cpp, server/WorldRouter.cpp,
	  server/server.cpp: Rename EntityFactory to EntityBuilder, to make
	  it's function clearer.
2007-12-20 19:27:12 +00:00
Al Riddoch
733cc79989 2007-12-06 Al Riddoch <alriddoch@zepler.org>
* common/system.h: Add a new exit status code indicating that no
	  ports were available in the dynamic range.

	* server/server.cpp, common/system.cpp: When there are no ports
	  available, write an appropriate message, and a hint describing
	  how to allocate more.
2007-12-06 23:50:14 +00:00
Al Riddoch
fb12fd3bac 2007-12-05 Al Riddoch <alriddoch@zepler.org>
* server/Persistance.cpp: Add an information message when attempting
	  to create a new instance database.

	* server/server.cpp: Store a new value for the start of the dynamic
	  port range, if one is allocated.

	* common/globals.cpp: Force the instance name into lower case
	  alphanumeric, and underscore only. Reject it if it can't easily
	  be forced.
2007-12-06 02:46:32 +00:00
Al Riddoch
a479ebf547 2007-12-05 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/Database.h: Add a new API for
	  attempting to bootstrap an instance database from the master.

	* server/Persistance.h, server/Persistance.cpp: Make some of the
	  functions in the persistence API non-static, so they work
	  more cleanly and consistently. Use the new return codes
	  specified in the config header. If an instance can't get a database
	  connection, use the master database to try and create one.

	* server/server.cpp: Use the persistence code the way it is
	  intended to be used.
2007-12-05 23:40:05 +00:00
Al Riddoch
46fa541e69 2007-12-05 Al Riddoch <alriddoch@zepler.org>
* common/globals.h, common/globals.cpp: Provide a separate function
	  for saving user settings back to the home directory. When
	  configuring a new instance, store the ruleset in user settings,
	  and log an informational message rather than a warning.

	* server/server.cpp: When dynamically assigning a port to a new
	  instance, store the port in user settings, and log an informational
	  message. Save the user configuration once the validity has been
	  completely verified and applied.
2007-12-05 17:33:19 +00:00
Al Riddoch
60d115ae59 2007-12-05 Al Riddoch <alriddoch@zepler.org>
* server/server.cpp: Fix up the warning message so it gives correct
	  instructions about disabling the database for instances.
2007-12-05 14:11:06 +00:00
Al Riddoch
7d1ffad045 2007-12-05 Al Riddoch <alriddoch@zepler.org>
* server/server.cpp: Make nice default to 1, so that it works the
	  same on all instances.
2007-12-05 01:23:52 +00:00
Al Riddoch
ce42e54c4b 2007-12-04 Al Riddoch <alriddoch@zepler.org>
* common/globals.cpp, common/globals.h: Add a new config setting for
	  the instance short name, and support per-instance configuration.
	  Add config settings for a dynamic port range.

	* server/server.cpp: Support per-instance configuration and use a
	  dynamic port for non-default instances.
2007-12-04 19:18:17 +00:00
Al Riddoch
29415a6a6e 2007-11-14 Al Riddoch <alriddoch@zepler.org>
* common/globals.cpp, common/globals.h: Modify the loadConfig
	  function so it takes usage hints, and checks the options in known
	  sections against those in the usage help.

	* client/client.cpp, server/server.cpp, tools/cyaddrules.cpp,
	  tools/cycmd.cpp, tools/cydumprules.cpp, tools/cyloadrules.cpp,
	  tools/cypasswd.cpp: Convert all calls to loadConfig to provide
	  the right hints.
2007-11-14 22:40:17 +00:00
Al Riddoch
826320991d 2007-11-05 Al Riddoch <alriddoch@zepler.org>
* server/server.cpp, server/slave.cpp: Use less verbose function
	  template to read config values.
2007-11-05 19:24:50 +00:00
Al Riddoch
4adaff13ef 2007-10-01 Al Riddoch <alriddoch@zepler.org>
* common/globals.cpp: Make a missing config file no longer fatal,
	  as the default are now sane, and do work.

	* server/server.cpp: Fix up some error and status messages.
2007-10-01 04:57:15 +00:00
Al Riddoch
2069f3dd4c 2007-07-29 Al Riddoch <alriddoch@zepler.org>
* common/log.cpp, common/log.h: Switch to taking a C++ string reference
	  rather than a char *, as it is not really an optimisation, and it
	  makes the code simpler to read and write.

	* client/BaseClient.cpp, client/ClientConnection.cpp,
	  common/AtlasFileLoader.cpp, common/BaseEntity.cpp,
	  common/Database.cpp, common/globals.cpp, common/id.cpp,
	  common/inheritance.cpp, common/log.cpp, common/log.h,
	  rulesets/Character.cpp, rulesets/Creator.cpp, rulesets/Entity.cpp,
	  rulesets/MemMap.cpp, rulesets/Motion.cpp, rulesets/Pedestrian.cpp,
	  rulesets/Py_Object.cpp, rulesets/Py_RootEntity.cpp,
	  rulesets/PythonMindScript.cpp, rulesets/PythonThingScript.cpp,
	  rulesets/Python_API.cpp, rulesets/Thing.cpp, server/Account.cpp,
	  server/Admin.cpp, server/ArithmeticFactory.cpp,
	  server/CommClient.cpp, server/CommListener.cpp,
	  server/CommMDNSPublisher.cpp, server/CommServer.cpp,
	  server/Connection.cpp, server/EntityFactory.cpp,
	  server/Persistance.cpp, server/Restoration.cpp,
	  server/ScriptFactory.cpp, server/TaskFactory.cpp,
	  server/WorldRouter.cpp, server/server.cpp: Convert over to using
	  new API correctly.

	* data/mason.xml: Add biomass and transient to fircone, making its
	  script obsolete:
2007-07-29 03:33:33 +00:00
Al Riddoch
e2f97526c3 2007-07-09 Al Riddoch <alriddoch@zepler.org>
* scripts/cyphesis-setup.sh: Complete the database setup script
	  functionality. Clean up the output, and polish.

	* server/PersistantThingFactory.cpp, server/PersistantThingFactory.h,
	  server/PersistantThingFactory_impl.h: Partially specialise the non
	  persistent entity factory so we can register the persistor database
	  tables for the world object when persistence is disabled, so the
	  state of this entity can be restored.

	* server/server.cpp: Tidy up the startup output.

	* server/EntityFactory.cpp: Don't try and set up world persistence if
	  it is turned off.
2007-07-08 23:45:12 +00:00
Al Riddoch
f8a2731576 2007-06-19 Al Riddoch <alriddoch@zepler.org>
* common/globals.cpp, common/globals.h: Change the type and name
	  of the ruleset list to a string.

	* rulesets/Python_API.cpp, server/EntityFactory.cpp,
	  server/server.cpp, tools/cyaddrules.cpp, tools/cydumprules.cpp,
	  tools/cyloadrules.cpp: Switch to using single ruleset config
	  variable.
2007-06-19 13:19:57 +00:00
Al Riddoch
d597378886 2007-04-28 Al Riddoch <alriddoch@zepler.org>
* common/globals.cpp, common/globals.h: Add interfact and mechanism
	  for showing usage data for all the programs given one central
	  location for the data.

	* server/server.cpp: Test out the usage function.

	* tools/cypasswd.cpp: Display usage using the old mechanism.
2007-04-28 16:45:13 +00:00
Al Riddoch
41d00bcab1 2007-04-28 Al Riddoch <alriddoch@zepler.org>
* commong/globals.h, common/globals.cpp: Add definitions for different
	  error codes from reading the config file, in particular codes that
	  indicate that the user has requested version, help or usage
	  information. Add a function for reporting the version of tools.

	* server/server.cpp: Add support for version or usage arguments,
	  including specific reporting of the server build number, which is
	  does not apply when reporting the version of other components.

	* tools/Makefile.am: Fix the globals modules dependency on consts.

	* tools/cypasswd.cpp: Add support for version or usage arguments.
2007-04-28 15:21:17 +00:00
Al Riddoch
a02c5455c8 2007-02-20 Al Riddoch <alriddoch@zepler.org>
* server/server.cpp: Clean up database error messages, and add
	  hint about disabling the database if this is required.
2007-02-20 14:56:31 +00:00
Al Riddoch
c1fde0fd8d 2007-02-20 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp: Improve the presentation of Database error
	  messages.

	* server/server.cpp: If connecting to the database fails, just
	  disable it, and report plenty of error information.
2007-02-20 01:12:48 +00:00
Al Riddoch
8c336bc66f 2007-02-20 Al Riddoch <alriddoch@zepler.org>
* common/globals.cpp, common/globals.h: Add a config flag
	  to control whether database code is enabled.

	* server/EntityFactory.cpp, server/EntityFactory.h,
	  server/PersistantThingFactory.cpp, server/PersistantThingFactory.h,
	  server/PersistantThingFactory_impl.h, server/Persistor.cpp:
	  Re-work the persistence code so that persistent or non-persistent
	  versions of entity factories are installed at startup, removing
	  the need to check whether the database is enabled during
	  runtime.

	* common/newid.cpp, server/Connection.cpp, server/server.cpp:
	  Replace the const that used to control whether the database
	  was used with the config flag.
2007-02-20 00:52:41 +00:00
Al Riddoch
03aa06771d 2006-11-03 Al Riddoch <alriddoch@zepler.org>
* configure.ac: Add tests for more optional functions and headers.

	* client/ObserverClient.cpp: Use alternative on systems which don't
	  have usleep().

	* common/system.cpp: Implement gettimeofday for systems which don't
	  have it.

	* server/CommListener.cpp: Add a note about supporting alternatives
	  to inet_ntop.

	* server/CommUnixListener.cpp, server/server.cpp: Disable the unix
	  listen socket on systems which don't have it.

	* tests/systemtest.cpp: Fix the test to work on systems without fork()
	  or kill(), and add a test for the substitute gettimeofday
	  implementation.
2006-11-03 18:55:40 +00:00
Al Riddoch
9a56dac06c 2006-10-26 Al Riddoch <alriddoch@zepler.org>
* Add RCS Id keywords to every file, for better version tracking.
2006-10-26 00:48:00 +00:00
Al Riddoch
0518007208 2006-08-03 Al Riddoch <alriddoch@zepler.org>
* server/server.cpp: Ensure that that world does not obtain
	  position or orientation when being restored from the database.
2006-08-03 11:18:28 +00:00
Al Riddoch
87c650e793 2006-05-12 Al Riddoch <alriddoch@zepler.org>
* server/server.cpp: Add option to control the increased nice level
	  the server runs at.
2006-05-11 23:33:58 +00:00
Al Riddoch
861facab1d 2006-05-07 Al Riddoch <alriddoch@zepler.org>
* common/accountbase.cpp, server/Admin.cpp, server/Persistance.cpp,
	  server/server.cpp, server/slave.cpp: Add more checks to ensure
	  that not getting an ID from the database always fails cleanly.
2006-05-07 00:10:10 +00:00
Al Riddoch
a884fa4866 2006-05-06 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/newid.cpp, server/server.cpp:
	  Modify new ID checks so that code still runs when database is
	  unavailable, and events requiring new IDs fail cleanly.

	* server/Connection.cpp: Report a failure to create a player
	  account if no ID available.

	* rulesets/BaseMind.cpp: When processing appearance ops, handle
	  stamp more efficiently, report an error if ID is missing
	  from argument.

	* server/IdlePSQLConnector.cpp, server/IdlePSQLConnector.h:
	  Implement re-connecting to the Database if connection is lost.

	* rulesets/Character.cpp, rulesets/Entity.cpp, rulesets/Thing.cpp:
	  Ensure STAMP is present on appearance op args.

	* server/CommListener.cpp, server/CommListener.h,
	  server/CommPeerListener.cpp, server/CommPeerListener.h,
	  server/CommSlaveListener.cpp, server/CommSlaveListener.h,
	  server/CommUnixListener.cpp, server/CommUnixListener.h:
	  Add a return value to method for creating new client socket
	  objects, and use it to return failure if no ID is available
	  from the database for a new object.

	* rulesets/Py_Point3D.cpp, rulesets/Py_Vector3D.cpp,
	  rulesets/Python_API.cpp: Add "new" method for class wrappers, and
	  call the in place constructor from new rather than init. Re-write
	  internal function for creating new instances so it uses the "new"
	  method.

	* rulesets/Py_Statistics.cpp: Remove some obsolete code inadvertedly
	  copied from another file. Comment out some unused code to get rid
	  of a warning.

	* server/CommPSQLSocket.cpp: Clear the database connection from
	  destructor.

	* tests/python_class.cpp: A new test for experimenting with new
	  Python wrappers.
2006-05-06 21:36:57 +00:00
Al Riddoch
2db3e48243 2006-05-02 Al Riddoch <alriddoch@zepler.org>
* common/system.cpp, common/system.h: Add a function to increment nice
	  value for the server. Change security check to return unsigned, as
	  the magic number is in fact unsigned.

	* server/server.cpp: Call system function to increment nice, thus
	  reducing priority once setup is complete.
2006-05-02 14:06:35 +00:00
Al Riddoch
011a5652fc 2006-03-25 Al Riddoch <alriddoch@zepler.org>
* common/system.h, common/system.cpp: Add security check function
	  which for now just ensures cyphesis is not run as root.

	* server/server.cpp: Use security check function when starting
	  the server.
2006-03-25 10:55:53 +00:00
Al Riddoch
fac57eee73 2006-01-19 Al Riddoch <alriddoch@zepler.org>
* aiclient/ClientAccount.cpp, aiclient/ClientAccount.h,
	  aiclient/ClientConnection.cpp, aiclient/ClientConnection.h,
	  aiclient/client.cpp, aiclient/client.h, client/BaseClient.cpp,
	  client/BaseClient.h, client/CharacterClient.cpp,
	  client/CharacterClient.h, client/ClientConnection.cpp,
	  client/ClientConnection.h, client/CreatorClient.cpp,
	  client/CreatorClient.h, client/ObserverClient.cpp,
	  client/ObserverClient.h, client/Py_CreatorClient.cpp,
	  client/Py_CreatorClient.h, client/client.cpp,
	  client/define_world.cpp, client/define_world.h, common/Add.h,
	  common/Affect.h, common/AtlasFileLoader.cpp,
	  common/AtlasFileLoader.h, common/Attack.h, common/BaseEntity.cpp,
	  common/BaseEntity.h, common/BaseWorld.cpp, common/BaseWorld.h,
	  common/Burn.h, common/Chop.h, common/Connect.h, common/CustomOp.cpp,
	  common/CustomOp.h, common/CustomOp_impl.h, common/Cut.h,
	  common/Database.cpp, common/Database.h, common/Delve.h, common/Dig.h,
	  common/Eat.h, common/FormattedXMLWriter.cpp,
	  common/FormattedXMLWriter.h, common/Generic.h, common/Load.h,
	  common/Monitor.h, common/Mow.h, common/Nourish.h,
	  common/OOGThing.cpp, common/OOGThing.h, common/Property.cpp,
	  common/Property.h, common/Property_impl.h, common/Save.h,
	  common/Setup.h, common/Tick.h, common/Unseen.h, common/Update.h,
	  common/Use.h, common/Wield.h, common/accountbase.cpp,
	  common/accountbase.h, common/const.cpp, common/const.h,
	  common/custom.cpp, common/debug.h, common/globals.cpp,
	  common/globals.h, common/id.cpp, common/id.h, common/inheritance.cpp,
	  common/inheritance.h, common/inheritance_impl.h, common/log.cpp,
	  common/log.h, common/newid.cpp, common/nls.h, common/op_switch.h,
	  common/operations.cpp, common/operations.h, common/random.h,
	  common/refno.h, common/serialno.cpp, common/serialno.h,
	  common/system.cpp, common/system.h, common/terrain_utils.cpp,
	  common/terrain_utils.h, common/type_utils.h, common/types.h,
	  common/utility.cpp, common/utility.h, modules/DateTime.cpp,
	  modules/DateTime.h, modules/Location.cpp, modules/Location.h,
	  modules/WorldTime.cpp, modules/WorldTime.h, physics/BBox.cpp,
	  physics/BBox.h, physics/Collision.cpp, physics/Collision.h,
	  physics/Quaternion.cpp, physics/Quaternion.h, physics/Vector3D.cpp,
	  physics/Vector3D.h, physics/VectorPol.h, rulesets/Area.cpp,
	  rulesets/Area.h, rulesets/AreaProperty.cpp, rulesets/AreaProperty.h,
	  rulesets/ArithmeticScript.cpp, rulesets/ArithmeticScript.h,
	  rulesets/BaseMind.cpp, rulesets/BaseMind.h,
	  rulesets/CalendarProperty.cpp, rulesets/CalendarProperty.h,
	  rulesets/Character.cpp, rulesets/Character.h, rulesets/Combat.cpp,
	  rulesets/Combat.h, rulesets/Container.cpp, rulesets/Container.h,
	  rulesets/Creator.cpp, rulesets/Creator.h, rulesets/Entity.cpp,
	  rulesets/Entity.h, rulesets/EntityProperties.cpp,
	  rulesets/Entity_getLocation.h, rulesets/Fell.cpp, rulesets/Fell.h,
	  rulesets/Food.cpp, rulesets/Food.h, rulesets/Line.cpp,
	  rulesets/Line.h, rulesets/LineProperty.cpp, rulesets/LineProperty.h,
	  rulesets/MemEntity.cpp, rulesets/MemEntity.h, rulesets/MemMap.cpp,
	  rulesets/MemMap.h, rulesets/MemMap_methods.h,
	  rulesets/MindFactory.cpp, rulesets/MindFactory.h, rulesets/Missile.h,
	  rulesets/Motion.cpp, rulesets/Motion.h, rulesets/Movement.cpp,
	  rulesets/Movement.h, rulesets/Pedestrian.cpp, rulesets/Pedestrian.h,
	  rulesets/Plant.cpp, rulesets/Plant.h, rulesets/Py_BBox.cpp,
	  rulesets/Py_BBox.h, rulesets/Py_EntityWrapper.h,
	  rulesets/Py_Location.cpp, rulesets/Py_Location.h,
	  rulesets/Py_Map.cpp, rulesets/Py_Map.h, rulesets/Py_Mind.cpp,
	  rulesets/Py_Mind.h, rulesets/Py_Object.cpp, rulesets/Py_Object.h,
	  rulesets/Py_Operation.cpp, rulesets/Py_Operation.h,
	  rulesets/Py_Oplist.cpp, rulesets/Py_Oplist.h, rulesets/Py_Optime.cpp,
	  rulesets/Py_Optime.h, rulesets/Py_Point3D.cpp, rulesets/Py_Point3D.h,
	  rulesets/Py_Property.cpp, rulesets/Py_Property.h,
	  rulesets/Py_Quaternion.cpp, rulesets/Py_Quaternion.h,
	  rulesets/Py_RootEntity.cpp, rulesets/Py_RootEntity.h,
	  rulesets/Py_Statistics.cpp, rulesets/Py_Statistics.h,
	  rulesets/Py_Task.cpp, rulesets/Py_Task.h, rulesets/Py_Thing.cpp,
	  rulesets/Py_Thing.h, rulesets/Py_Vector3D.cpp,
	  rulesets/Py_Vector3D.h, rulesets/Py_World.cpp, rulesets/Py_World.h,
	  rulesets/Py_WorldTime.cpp, rulesets/Py_WorldTime.h,
	  rulesets/PythonArithmeticScript.cpp,
	  rulesets/PythonArithmeticScript.h, rulesets/PythonMindScript.cpp,
	  rulesets/PythonMindScript.h, rulesets/PythonScript.cpp,
	  rulesets/PythonScript.h, rulesets/PythonThingScript.cpp,
	  rulesets/PythonThingScript.h, rulesets/PythonWrapper.cpp,
	  rulesets/PythonWrapper.h, rulesets/Python_API.cpp,
	  rulesets/Python_API.h, rulesets/Python_Script_Utils.h,
	  rulesets/Script.cpp, rulesets/Script.h, rulesets/Stackable.cpp,
	  rulesets/Stackable.h, rulesets/Statistics.cpp, rulesets/Statistics.h,
	  rulesets/StatisticsProperty.cpp, rulesets/StatisticsProperty.h,
	  rulesets/Structure.cpp, rulesets/Structure.h, rulesets/Task.cpp,
	  rulesets/Task.h, rulesets/TaskScript.cpp, rulesets/TaskScript.h,
	  rulesets/TerrainProperty.cpp, rulesets/TerrainProperty.h,
	  rulesets/Thing.cpp, rulesets/Thing.h, rulesets/ThingFactory.cpp,
	  rulesets/ThingFactory.h, rulesets/World.cpp, rulesets/World.h,
	  rulesets/attributes.h, server/Account.cpp, server/Account.h,
	  server/Admin.cpp, server/Admin.h, server/ArithmeticFactory.cpp,
	  server/ArithmeticFactory.h, server/CommClient.cpp,
	  server/CommClient.h, server/CommIdleSocket.cpp,
	  server/CommIdleSocket.h, server/CommListener.cpp,
	  server/CommListener.h, server/CommLocalClient.cpp,
	  server/CommLocalClient.h, server/CommMDNSPublisher.cpp,
	  server/CommMDNSPublisher.h, server/CommMaster.cpp,
	  server/CommMaster.h, server/CommMetaClient.cpp,
	  server/CommMetaClient.h, server/CommPSQLSocket.cpp,
	  server/CommPSQLSocket.h, server/CommPeer.cpp,
	  server/CommPeer.h, server/CommPeerListener.cpp,
	  server/CommPeerListener.h, server/CommRemoteClient.cpp,
	  server/CommRemoteClient.h, server/CommServer.cpp,
	  server/CommServer.h, server/CommSlaveClient.cpp,
	  server/CommSlaveClient.h, server/CommSlaveListener.cpp,
	  server/CommSlaveListener.h, server/CommSocket.cpp,
	  server/CommSocket.h, server/CommUnixListener.cpp,
	  server/CommUnixListener.h, server/Connection.cpp,
	  server/Connection.h, server/Connection_methods.h,
	  server/EntityFactory.cpp, server/EntityFactory.h,
	  server/ExternalMind.cpp, server/ExternalMind.h,
	  server/Idle.cpp, server/Idle.h, server/Lobby.cpp, server/Lobby.h,
	  server/Master.cpp, server/Master.h, server/Peer.cpp, server/Peer.h,
	  server/Persistance.cpp, server/Persistance.h,
	  server/PersistantThingFactory.cpp, server/PersistantThingFactory.h,
	  server/PersistantThingFactory_impl.h, server/Persistor.cpp,
	  server/Persistor.h, server/Persistor_impl.h,
	  server/Player.cpp, server/Player.h, server/Restoration.cpp,
	  server/Restoration.h, server/Restorer.cpp, server/Restorer.h,
	  server/Restorer_impl.h, server/ScriptFactory.cpp,
	  server/ScriptFactory.h, server/ServerRouting.cpp,
	  server/ServerRouting.h, server/ServerRouting_methods.h,
	  server/SlaveClientConnection.cpp, server/SlaveClientConnection.h,
	  server/TaskFactory.cpp, server/TaskFactory.h,
	  server/TrustedConnection.cpp, server/TrustedConnection.h,
	  server/WorldRouter.cpp, server/WorldRouter.h,
	  server/server.cpp, server/server.h, server/slave.cpp,
	  tests/Areatest.cpp, tests/BaseEntitytest.cpp,
	  tests/Charactertest.cpp, tests/Containertest.cpp,
	  tests/Creatortest.cpp, tests/EntityExerciser.h,
	  tests/EntityFactorytest.cpp, tests/Entitytest.cpp,
	  tests/Foodtest.cpp, tests/IGEntityExerciser.h,
	  tests/Linetest.cpp, tests/Locationtest.cpp, tests/OOGThingtest.cpp,
	  tests/Planttest.cpp, tests/Propertytest.cpp, tests/Stackabletest.cpp,
	  tests/Structuretest.cpp, tests/Tasktest.cpp, tests/TestWorld.h,
	  tests/Thingtest.cpp, tests/WorldTimetest.cpp, tests/Worldtest.cpp,
	  tests/allOperations.h, tests/collisiontest.cpp, tests/consttest.cpp,
	  tests/distancetest.cpp, tests/emergencetest.cpp,
	  tests/inheritancetest.cpp, tests/logtest.cpp, tests/randomtest.cpp,
	  tests/systemtest.cpp, tests/transformtest.cpp,
	  tests/type_utilstest.cpp, tests/utilitytest.cpp,
	  tools/AdminClient.cpp, tools/AdminClient.h, tools/cyaddrules.cpp,
	  tools/cycmd.cpp, tools/cyconfig.cpp, tools/cyconvertrules.cpp,
	  tools/cyctrl.cpp, tools/cydbload.cpp, tools/cydumprules.cpp,
	  tools/cyisoload.cpp, tools/cyloadrules.cpp, tools/cypasswd.cpp,
	  tools/cywatchdog.cpp: Replace the copyright and license statements
	  with new versions that include disclaimer of warranty, and
	  permit distribution under later versions of the GPL.
2006-01-19 02:17:06 +00:00
Al Riddoch
4398c2cbbd 2006-01-11 Al Riddoch <alriddoch@zepler.org>
* common/log.cpp, server/Account.cpp, server/Connection.cpp,
	  server/server.cpp: Make server logs much more machine readable
	  by removing stray colons, standardising field semantics, and
	  cleaning up messages.
2006-01-11 02:36:16 +00:00
Al Riddoch
9ffe7efb0e 2006-01-04 Al Riddoch <alriddoch@zepler.org>
* configure.ac: Require latest varconf for its new features.

	* common/globals.cpp, tools/cyconfig.cpp: Use new varconf scope for
	  settings to more suitably handle user overidden config settings.

	* aiclient/ClientConnection.cpp, aiclient/client.cpp,
	  client/client.cpp, common/Database.cpp, server/server.cpp,
	  server/slave.cpp, tools/AdminClient.h, tools/cyaddrules.cpp,
	  tools/cycmd.cpp: Use new varconf/config.h header.
2006-01-04 15:06:46 +00:00
Al Riddoch
5aa723ac9e 2005-12-30 Al Riddoch <alriddoch@zepler.org>
* common/log.h, common/log.cpp: Add logging function for logging
	  regular server activity, for statistics purposes, to a file.

	* server/Account.cpp, server/Connection.cpp, server/server.cpp:
	  Add log calls to recall typical events.

	* tools/cycmd.cpp: Set a name on the admin agent avatar.
2005-12-30 22:11:23 +00:00
Al Riddoch
82d8bbcb6a 2005-12-07 Al Riddoch <alriddoch@zepler.org>
* server/ServerRouting.h: Add accessor for client count.

	* server/CommMDNSPublisher.h, server/CommMDNSPublisher.cpp:
	  Add alternative MDNS-SD handler using Avahi, which is preferred
	  over howl.

	* server/server.cpp: CommMDNSPublisher is now an idler as well
	  as a socket.
2005-12-07 02:43:08 +00:00
Al Riddoch
77998e3c5a 2005-11-13 Al Riddoch <alriddoch@zepler.org>
* server/Admin.cpp, server/CommPeer.cpp, server/CommPeer.h,
	  server/CommPeerListener.cpp, server/Peer.cpp, server/Peer.h:
	  Re-work classes for peer connections to use integer IDs.

	* server/Lobby.cpp, server/Lobby.h: Modify interface so its more
	  obvious that lobby only handles accounts, and adjust to have
	  integer ID.

	* server/Connection.cpp, server/Connection.h,
	  server/TrustedConnection.cpp, server/TrustedConnection.h: Use
	  integer IDs, and modify to match new Lobby API changes.

	* server/ServerRouting.cpp, server/ServerRouting.h, server/server.cpp:
	  Modify server to have integer ID, and handle ID for Lobby as well.

	* server/CommListener.cpp, server/CommLocalClient.cpp,
	  server/CommLocalClient.h, server/CommRemoteClient.cpp,
	  server/CommRemoteClient.h, server/CommUnixListener.cpp:
	  Modify communication classes for normal clients to handle
	  integer IDs on the connection classes.
2005-11-13 23:28:02 +00:00
Al Riddoch
d24a86968c 2005-11-12 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/Database.h, common/id.h, common/id.cpp:
	  Make newId() functions return the integer value.

	* common/newid.cpp: Break newId out into its own file, and make
	  it handle whether or not the database should issue IDs.

	* server/Connection.cpp, server/Persistance.cpp,
	  server/WorldRouter.cpp, server/server.cpp: Simply generating IDs
	  by just using the newId() function, and use its return value.
2005-11-12 01:40:37 +00:00
Al Riddoch
712a09d046 2005-11-12 Al Riddoch <alriddoch@zepler.org>
* client/BaseClient.cpp, common/BaseWorld.cpp, common/id.cpp,
	  common/id.h, rulesets/MemMap.cpp, server/Account.cpp,
	  server/Admin.cpp, server/Connection.cpp, server/Persistance.cpp,
	  server/Restoration.cpp, server/WorldRouter.cpp, server/server.cpp:
	  Add intgerId() function to convert ID strings to integers, and
	  check the conversion went okay.
2005-11-12 00:18:47 +00:00
Al Riddoch
24505edda1 2005-11-11 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.h, common/OOGThing.cpp, common/OOGThing.h,
	  server/Account.cpp, server/Account.h, server/Admin.cpp,
	  server/Admin.h, server/Connection.cpp, server/ExternalMind.cpp,
	  server/ExternalMind.h, server/Lobby.cpp, server/Lobby.h,
	  server/Peer.cpp, server/Persistance.cpp, server/Player.cpp,
	  server/Player.h, server/ServerRouting.cpp,
	  server/SlaveClientConnection.cpp, server/server.cpp:
	  Add integer ID handling to accounts, and some other OOG
	  objects.
2005-11-11 16:03:14 +00:00
Al Riddoch
0504e6cf79 2005-09-26 Al Riddoch <alriddoch@zepler.org>
* common/BaseEntity.cpp, common/BaseEntity.h, common/inheritance.cpp,
	  common/inheritance.h, rulesets/BaseMind.cpp, rulesets/BaseMind.h,
	  rulesets/Character.cpp, rulesets/Character.h, rulesets/Entity.cpp,
	  rulesets/Food.cpp, rulesets/Plant.cpp, rulesets/Stackable.cpp,
	  rulesets/Thing.cpp, rulesets/World.cpp, server/Account.cpp,
	  server/Admin.cpp, server/Connection.cpp, server/server.cpp:
	  Remove the subscription mechanism as it is no longer necessary
	  now that operations have class numbers.
2005-09-26 01:56:21 +00:00
Al Riddoch
8e12cf8de0 2004-01-13 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp: Improve error reporting for query errors.

	* common/const.cpp, common/const.h: Add full details and comments
	  for enable_database option.

	* common/id.h, common/id.cpp: New ID generator for use when we
	  are not using the Database.

	* common/AtlasFileLoader.cpp, common/AtlasFileLoader.h: Generic
	  class for loading Atlas data from a file.

	* server/Connection.cpp, server/EntityFactory.h,
	  server/EntityFactory.cpp, server/Persistor.cpp,
	  server/WorldRouter.cpp, server/server.cpp:
	  Implement the enable_database option by wrapping all use of database
	  in if statements. Rules are loaded from files instead.
2005-01-13 00:38:41 +00:00
Al Riddoch
8db925a09a 2004-12-16 Al Riddoch <alriddoch@zepler.org>
* server/CommMaster.cpp, server/CommMaster.h, server/Master.cpp,
	  server/Master.h: Handlers for a connection to a master server.

	* server/CommPeer.cpp: Fix comments.

	* server/slave.cpp: Implement connecting to master server on startup.

	* tools/cycmd.cpp: Fix bug handling option to connect to slave instead
	  of server.
2004-12-16 02:12:39 +00:00
Al Riddoch
73bb7894ee 2004-12-15 Al Riddoch <alriddoch@zepler.org>
* common/globals.cpp, common/globals.h: Separate globals for server
	  and slave sockets. Add code for reading slave settings.

	* client/ClientConnection.cpp, server/server.cpp: Use modified
	  global socket_name setting.

	* server/slave.cpp: Update for changed return values from bool to
	  int. Remove metaserver functionality. Switch to using
	  CommSlaveListener.

	* tools/cycmd.cpp: Add config option to connect to slave rather
	  than core server.
2004-12-16 00:52:09 +00:00
Al Riddoch
a37be9c579 2004-12-15 Al Riddoch <alriddoch@zepler.org>
* server/CommListener.cpp, server/CommListener.h: Add a virtual
	  create method, so it can be overriden to make different kinds
	  of listener.

	* server/Peer.cpp, server/Peer.h: New class representing connections
	  to peer servers.

	* server/CommPeer.cpp, server/CommPeer.h: New socket class handling
	  sockets used to connect to peer servers.

	* server/CommPeerListener.cpp, server/CommPeerListener.h: New
	  listener using new virtual interface in CommListener to accept
	  peer connections.

	* server/CommClient.cpp, server/CommClient.h: Add a new constructor
	  for creating Atlas socket objects which are not yet open. Makes
	  this class suitable for establishing as well as accepting
	  connections. Take out call to Connection::destroy.

	* server/CommRemoteClient.h: Fix error in header guards.

	* server/Connection.cpp, server/Connection.h: Remove
	  obsolete destroy() method. Make CommClient member public.

	* server/server.cpp: Add new listener for peer connections.

	* common/types.h: Add enumeration for new connect operation.

	* server/Admin.cpp, server/Admin.h: Add new handler for connect
	  operations, used by admin client to build peer connections.

	* tools/cycmd.cpp: Add new command "connect" for sending
	  connect ops to server.
2004-12-15 00:55:54 +00:00
Al Riddoch
27040b240b 2004-12-13 Al Riddoch <alriddoch@zepler.org>
* client/ClientConnection.cpp, common/globals.cpp, common/globals.h,
	  server/CommMDNSPublisher.cpp, server/server.cpp, server/slave.cpp,
	  tools/cycmd.cpp: Add new port number settings for things like
	  peer connections, and listen sockets for an AI slave.

	* server/CommUnixListener.cpp, server/CommUnixListener.h:
	  Parameterise socket name for listen socket.
2004-12-13 12:22:35 +00:00
Al Riddoch
336e0452f9 2004-12-08 Al Riddoch <alriddoch@zepler.org>
* server/CommServer.cpp, server/CommServer.h, server/WorldRouter.cpp,
	  server/server.cpp: Rename loop() method as poll(). Clean up some
	  includes.
2004-12-08 16:36:42 +00:00
Al Riddoch
24d574282e 2004-11-20 Al Riddoch <alriddoch@zepler.org>
* server/CommListener.cpp,
	  server/CommMetaClient.cpp, server/CommMetaClient.h,
	  server/CommPSQLSocket.cpp, server/CommPSQLSocket.h
	  server/CommServer.cpp, server/CommServer.h,
	  server/CommUnixListener.cpp, server/server.cpp:
	  Replace CommIdleSocket with pure virtual inferface Idle,
	  and use multiple inheritance in classes which are both sockets
	  and idlers. Rename add() in CommServer to make its function cleaner,
	  and move its implementation into the cpp file in preparation for
	  a more powerful CommServer implementation.
2004-11-20 22:10:04 +00:00
Al Riddoch
7752aed3ee 2004-11-16 Al Riddoch <alriddoch@zepler.org>
* server/server.cpp: Remove some debug output.
2004-11-16 17:08:19 +00:00
Al Riddoch
4d1e5255f0 2004-11-16 Al Riddoch <alriddoch@zepler.org>
* common/Database.cpp, common/stringstream.h, rulesets/MemMap.cpp,
	  rulesets/World.cpp, server/CommClient.cpp, server/Persistor_impl.h,
	  server/Restorer_impl.h, server/WorldRouter.cpp, server/server.cpp,
	  tools/cyisoload.cpp: Switch code to including <sstream> directly
	  and remove obsolete wrapper header.
2004-11-16 12:27:27 +00:00
Al Riddoch
313e50835f 2004-11-11 Al Riddoch <alriddoch@zepler.org>
* server/CommMDNSPublisher.cpp, server/CommMDNSPublisher.h: New
	  class to publish service using zeroconf.

	* server/server.cpp: Use new CommMDNSPublisher class.

	* configure.ac: Detect howl libraries, optionally. Clean up a bunch
	  of unused variables.
2004-11-11 14:26:21 +00:00
Al Riddoch
e9674a6f8f 2004-10-05 Al Riddoch <alriddoch@zepler.org>
* client/client.cpp, common/globals.cpp, server/server.cpp,
	  tools/cycmd.cpp: Get rid of nasy cast, and use string accessor
	  for varconf variables.
2004-10-05 15:34:18 +00:00
Al Riddoch
bbeb9403d4 2004-10-04 Al Riddoch <alriddoch@zepler.org>
* server/Connection.cpp: Move the code to handle destruction of
	  a connection into the destructor. The destroy method can go
	  once this is well tested.

	* server/CommListener.cpp: Return -1 on error.

	* server/Persistance.cpp: Return a different error code depending
	  on why database init failed.

	* server/server.cpp: Try and provide more helpfull error messages
	  depending on why database init failed.
2004-10-04 00:52:32 +00:00