Wed Oct 12 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.11	

	* pokerclient2d/upgrades/1.0.10-1.0.11.xsl: add URL of the poker server web part,
	  if not present.

Tue Oct 11 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/chat.c (on_history_clicked): do not use custom images (use
	  style)

	* debian/poker-web: standalone package for web interface

Wed Oct 05 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerrenderer.py (PokerRenderer.interfaceCallbackLogin): change
	  login= to name=.

	* pokerui/pokerrenderer.py (PokerRenderer.handleMenu):
	  edit_account: Set name and serial.  The name is used to pre-fill
	  the login form if the user is not logged in already.

	* pokernetwork/pokerserver.py (PokerService.auth): pass roles to discriminate
	  avatars with the same login name. 

	* pokernetwork/pokerserver.py (PokerAvatar.login): restrict registration
	  in service to avatars with role PLAY. It follows that there can only
	  be one avatar with role PLAY while there can be many avatars with other
	  roles.

	* pokernetwork/server.py (PokerServerProtocol.protocolEstablished): keepalive
	  set to get rid of idle connections

	* pokernetwork/pokerserver.py (PokerService.auth): allow multiple avatars
	  with the same name as long as they do not have the same role.

	* pokernetwork/pokerbot.py (PokerBot._handleConnection): 
	  pokerui/pokerrenderer.py (PokerRenderer.bootstrap): default role is PLAY

	* pokernetwork/packets.py: PACKET_ACK when all is needed is acknowledgement

	* pokernetwork/pokerserver.py (PokerAvatar.setRole): on PACKET_POKER_SET_ROLE
	  add the role to the avatar (can be PLAY for poker client and EDIT for 
	  web client).

	* pokernetwork/pokerpackets.py: PACKET_POKER_ROLES, PACKET_POKER_SET_ROLE

Tue Oct 04 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerSOAP.getArguments): simplify args instead
	  of args[0]

	* pokernetwork/pokerserver.py (PokerAvatar.auth): set reason when checkNameAndPassword
	  fails

	* pokernetwork/poker{bot,server}.py (run): always show stack trace on error

	* pokerweb: PHP based web part for the poker server, initial import
	
	* configure.ac: kill ok messages

Fri Sep 30 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): POKER_IN_GAME
	  deals with the case when the server sends it a list of players that does not include
	  the players waiting for something (wait_for late, big, ). These players are marked
	  to wait_for the "first_round", i.e. will not participate to the blind/ante round.
	  This typically happens when the server sends a hand history when a arriving at 
	  a new table, because the state of the game is already past the blind/ante round
	  and the game history has been reduced.

Tue Sep 27 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.10

	* pokerui/pokeranimation.py (PokerAnimationScheduler.setProtocol): POKER_SEATS has priority

	* poker-network.pc.in (pkglibdir): add pkg-libdir

Sun Sep 25 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.9

	* automake-1.7 fix preventing distribution

Sat Sep 24 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.8

	* pokerclient2d/upgrades/str.replace.function.xsl: str:replace XSL function
	  implementation

	* pokerclient2d/upgrades/1.0.7-1.0.8.xsl.in: upgrade installed poker2d.xml
	  to add python version suffixes if relevant.

Fri Sep 23 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/network.c: TCP_NODELAY on connection

Sun Sep 04 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerchildren.py (PokerRsync.processEnded): fire
	  RSYNC_DONE event only if process exited on success.

	* pokerui/pokerrenderer.py (PokerRenderer.handleMenu): glow as
	  high quality graphics setting.

Sat Sep 03 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/upgrade.py (Upgrader.getUpgrade): exclude path is
	  os specific

Fri Sep 02 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/pokerdisplay2d.py (PokerTable2D.run,finish): remove

	* pokerclient2d/poker2d.py (Poker2DReactor): dedicated reactor that 
	  exits on error.
	  (Main.shutdown): directly call reactor.stop instead of relying
	  on pokerdisplay (meaningless in the case of the poker2d interface).
	  (Main.run): call reactor.run instead of delegating to display for
	  because it would be meaningless.
	  (run): remove useless friendly error reporting at this level

	* pokerui/pokerdisplay.py (PokerDisplay.finish): s/finish/finished/ for
	  flag.

	* pokerclient2d/pokerdisplay2d.py (PokerDisplay2D.render): exit if
	  protocol not set.
	  (PokerDisplay2D.run): call iterate as long as no error occurred
	  instead of calling reactor.run that runs forever even if a traceback
	  occurs.

	* pokernetwork/pokerclient.py(err): set a flag (log.error_occurred)
	  when an error is logged thru log.err or log.deferr. This allows
	  each iteration of the reactor.run to check it and stop the reactor
	  if this is the desired behaviour.

Wed Aug 31 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientFactory.__init__): 
          Make sure the attributes exists, should an exception occur before
          it is initialized with an instance of PokerChildren and such. This is done
          so that the caller does not have to check the existence of the
          attribute when catching an exception.

	* pokerclient2d/poker2d.py (Main.run): PokerClientFactory2D constructor 
	  exceptions catched. The existence of each attribute used is guaranteed by 
	  the PokerClientFactory class. 
	  (PokerClientFactory2D.__init__): display attribute has a default value of None

	* pokernetwork/pokerchildren.py (PokerRsync.processEnded): if process terminates
	  on error, raise an exception.

	* pokernetwork/upgrade.py (Constants.RSYNC): timeout if no activity I/O during more
	  than 60 seconds. Rsync is stored in a RSYNC variable with default options. Would
	  be good to also timeout on connection (DNS fails to resolve and such) but 
	  there is no option to do that at present.

Tue Aug 30 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/pokerdisplay2d.py (PokerDisplay2D.render): silently ignore render
	  requests when no game is current.
	  (PokerDisplay2D.render): quit when asked to
	  Fixes https://gna.org/bugs/index.php?func=detailitem&item_id=2754

	* pokernetwork/pokerclient.py (PokerClientProtocol.abortAllTables): rename publishQuit
	(PokerClientProtocol.connectionLost): destroy all tables when connection is lost

Mon Aug 29 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): index self.position_info
	  with game.id before setting POSITION_OBSOLETE

	  (PokerClientProtocol._handleConnection): TABLE_DESTROY reset the game as it no longer exists.
	  When the function called when recieving TABLE_DESTROY completes, everything related to the
	  game has been destroyed, including data in objects recieving messages from pokerclient.
	  Fixes https://gna.org/bugs/index.php?func=detailitem&item_id=2583

Thu Aug 25 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.7

	* examples/poker.server-monotone.xml: set delay to 0 for maximum speed (this configuration
	  is designed to run as fast as possible anyways). update permissions to access the database.

	* examples/run-example: server configuration can be given in argument

	* pokernetwork/pokerserver.py (PokerService.tourneyMovePlayer): do not crash
	  if player is disconnected.

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection): PACKET_POKER_PLAYER_ARRIVE
	  convert set into sanity check on url/outfit members

	* pokerclient2d/Makefile.am (all-local): upgrade poker2d.xml.in

	* Makefile.am (all-local): upgrade conf/*.xml.in

	* pokerclient2d/poker2d.py (PokerSkin2D.showOutfitEditor): display the
	  current outfit color

	* database/1.0.5-1.0.7.sql: default users.skin_url is now random

	* database/schema.sql.in: field users.skin_url default is random

	* pokernetwork/pokerserver.py (PokerAvatar.login): set url and outfit
	  attributes
	  (PokerService.getPlayerInfo): default is random

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): 
	  PACKET_POKER_PLAYER_INFO sets the outfit
	  (PokerSkin.__init__): interpret the random default 

	* pokerclient2d/poker2d.py (PokerSkin2D.__init__): skin url and outfit
	  is not set until the connection to the server is established

	* pokernetwork/pokerserver.py (PokerAvatar.getPlayerInfo): return error
	  if player is not logged in

	* pokernetwork/pokerdatabase.py (PokerDatabase.upgrade): do not report
	  obsolete database as an error and display upgrade success

	* pokernetwork/__init__.py (protocol_number): 
	* pokernetwork/protocol.py: protocol version is independent from the
	  package version

	* Makefile.am (sbin_SCRIPTS): pokerbot man page / program installation.

	* pokernetwork/pokerbot.in: standalone bot program.

	* pokernetwork/pokerbot.8.in: manual page for standalone bot program.

	* pokernetwork/pokerbot.py (makeApplication): make run function to
	  ease launch as a standalone program instead of a twisted daemon.

Wed Aug 24 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerpackets.py: GetPlayerInfo packet

	* configure.ac (UPGRADES_SOURCE): set default before it is used.

Wed Aug 17 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.6

	* upgrades: upgrade files for poker.{bot,client,server}.xml

	* pokerclient2d/upgrades: poker2d.xml and client.xml upgrades

	* tests/upgrade.in: run .xml files upgrades

	* tests/conf: 1.0.5 configuration files archives.

	* pokernetwork/{config,version}.py: derive from equivalent files
	  from poker-engine

	* configure.ac: take the version number from pokernetwork/__init__.py
	
	* pokernetwork/__init__.py: version_number is the source of the version.

Sun Aug 14 2005  Loic Dachary  <loic@gnu.org>

	* database/pokerdatabaseupgrade.8.in: manual page for database
	  upgrade utility

	* database/pokerdatabaseupgrade.in: run database upgrades stored
	  in .sql files to reach the current software version number
	
	* database/1.0.5-1.0.6.sql: database upgrade to 1.0.6

	* ChangeLog: remove hour stamp
	
	* Makefile.am: run tests, add pokerdatabaseupgrade utility, 
	  migration file from 1.0.5 to 1.0.6

	* configure.ac: detect mysql client program, substitute pkgdatadir, 
	  configure tests and upgrade programs. Substitute prefix early
	  so that path are accurate if --prefix is not specified.

Sat Aug 13 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/version.py.in (version): stores the string of the
	  version in addition to the major/medium/minor numbers

Fri Aug 12 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerXML.walk): walk a datastructure
	  and convert any unicode object to/from the desired encoding. Cope with
	  deficiencies of SOAP/XMLRPC python libraries and/or unfriendly 
	  clients.

Tue Aug 09 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientFactory.__init__): bind upgrade support
	  to clientVersionOk,needUpgrade,upgrade,upgradeReady designed to be overloaded
	  by derived classes and checkClientVersion that is the upgrade entry point.

	* pokerclient2d/poker2d.xml.in: add rsync information and upgrades yes/no flag

	* upgrade: run batched upgrades

	* pokerui/pokerdisplay.py: add showProgressBar,hideProgressBar and tickProgressBar
	  abstract functions

	* pokernetwork/pokerchildren.py (PokerRsync.configure): rsync invocation with
	  non blocking line based parsing of the output.

	* pokerclient2d/poker2d.py (PokerClientFactory2D.__init__): check versions
	  on upgrade server, if upgrades are enabled.

	* pokernetwork/upgrade.py: implement inplace upgrade system

Mon Aug 08 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/protocol.py (UGAMEProtocol._handleVersion): protocol number is based on version

	* pokernetwork/version.py.in: package version number

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection): AUTH_REFUSED: print the reason of
	  the failure as provided by the server

	* pokernetwork/packets.py (PacketAuthRefused): can now carry the reason of the failure

Sat Aug 06 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): PACKET_POKER_PLAYER_SELF
	  will send PacketPokerSelfInPosition if necessary.

	* pokernetwork/pokerserver.py (PokerTable.possibleObserverLoggedIn): if an observer
	  turns out to be seated at the table, change its status.

	* pokernetwork/pokerserver.py (PokerAvatar.login): after successful login,
	  check if the player is already seated at the table. If this is the case,
	  update hole cards, send notification and blind/ante requests if necessary.
	
	* pokernetwork/pokerpackets.py (PACKET_POKER_PLAYER_SELF): new packet
	  notifying that a given player at the table is our avatar.

	* pokernetwork/pokerclient.py (PACKET_POKER_TABLE): too many
	  open tables.

Fri Aug 05 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.5

	* pokerui/pokeranimation.py (PokerAnimationTable.showdown): call showdownDelta for
	  each player at showdown 
	
	* pokerclient2d/pokeranimation2d.py (PokerAnimationPlayer2D.showdownDelta): show up
	  and down arrows according to the net income of the player

	* pokernetwork/pokerclient.py (PokerClientProtocol.packetsShowdown): send full
	  showdown stack to all consumers.

	* pokernetwork/pokerpackets.py (PacketPokerShowdown.__init__): new packet

Sat Jul 16 2005  Loic Dachary  <loic@gnu.org>

	* debian/control (Section): s/libs/python/ in sections.

Sat Jul 16 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.4

	* debian/python2.3-poker-network.postinst (pokernetwork_dir): substitute
	  %HOST% in clients regardless of server installation.

Fri Jul 15 2005  Thierry Delamare  <thy@mekensleep.com>

	* pokerui/pokerrenderer.py (PokerRenderer.__init__): show or not
	show next and previous label depending on start count and
	total. make count settable via poker2d-test.xml.

	* pokerclient2d/hand_history.c (handle_hand_history): 
	* pokerclient2d/poker2d.xml.in: 
	* conf/poker.client.xml.in: 

Wed Jul 13 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerrenderer.py (PokerRenderer.changeState): reset state to IDLE
	  when switching to CANCELED state only if in PAY_BLIND state

	* pokerui/pokerrenderer.py (PokerRenderer.changeState): show chat bar if
	  in IDLE state only.

Tue Jul 05 2005  Loic Dachary  <loic@gnu.org>
	
	* pokerclient2d/lobby.c (handle_lobby): show icon marking
	  tables where player is seated.

Tue Jul 05 2005  Loic Dachary  <loic@gnu.org>

	* poker-network.pc.in: pkg-config compatibility

Mon Jul 04 2005  Loic Dachary  <loic@gnu.org>

	* README (Client): fix install paths as pointed out by
	  Jeff Schoby <ssrjazz@gmail.com>

Tue Jun 28 2005  proppy  <euphro_j@epitech.net>

	* pokerui/pokerrenderer.py (PokerRenderer.clickSitOut): 
	called when click occured on the sitout interactor
	send toggleSitOut to PokerInterface layer
	
	* pokerui/pokerinterface.py (PokerInterface.sitActionsToggleSitOut): 
	send toggle_sit_out command to poker-interface process

	* pokerclient2d/sit_actions.c (handle_sit_actions): 
	handling toggle_sit_out added : toggle sit_out_next_hand active state	
	smartified g_sit_actions_disable flag usage

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* configure.ac: substitutions for local configuration

	* {conf,pokerclient2d}/*.xml: moved to .xml.in with values from configure

	* debian/rules: set the configuration variables to debconf variables

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/outfits.c (on_arrow_clicked): outfit arrow wrap around

Tue Jun 28 2005  proppy  <euphro_j@epitech.net>

	* pokerui/pokerrenderer.py (PokerRenderer.chatFormatMessage): 
	chat words (defined in /sequence/chatwords) are filtered from POKER_CHAT message
	POKER_CHAT_WORD packet are scheduled for further response to matched chatwords
	
	* pokerui/pokeranimation.py (PokerAnimationScheduler.__init__): 
	pokeranimation registers chat handler on PACKET_POKER_CHAT_WORD event
	
	* pokernetwork/pokerpackets.py (PacketPokerChatWord.type): 
	PACKET_POKER_CHAT_WORD added

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerpackets.py: poker packet renderer

	* pokerui/pokerrenderer.py (PokerRenderer.changeState): notify display
	  when state changes

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientProtocol.resendPackets): check
	  that all players involved in a showdown still have a seat before 
	  displaying the showdown.

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerrenderer.py (PokerRenderer.changeState): immediate feedback
	  and confirmation when leaving the table.

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.3

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): sitout if
	  not in player list.

Fri Jun 24 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.2

	* pokerclient2d/poker2d.py: workarounds for the twisted-2.0 bug 
	  http://twistedmatrix.com/bugs/issue1083

Thu Jun 23 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokeranimation.py (PokerAnimationPlayer.sitoutIfNotInGame): arrange
	  for sitout and sitin animations feedback to be immediate.

	* pokernetwork/pokerclient.py (PokerClientProtocol.sendPacket): build new client
	  side packets SIT_OUT_NEXT_HAND and SIT_REQUEST

Thu Jun 23 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerpackets.py: client <=> packets SIT_OUT_NEXT_TURN
	  and SIT_REQUEST

Thu Jun 23 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerAvatar.handlePacketLogic): issue 
	  an error if trying to logout without being logged in.

	* pokernetwork/pokerclient.py (PokerClientProtocol.publishPacket): when 
	  connection is lost, notify user and exit the client.

Tue Jun 21 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerXML): base class and
	  derived classes PokerXMLRPC and PokerSOAP to support 
	  XML-RPC and SOAP. With optional session management.

	* examples/xmlrpc-soap.py: XML-RPC and SOAP client test
	
Mon Jun 20 2005  Loic Dachary  <loic@gnu.org>

	* conf/poker.pem: self signed certificate
	* pokerclient2d/poker2d.py: support SSL connections
	* pokernetwork/pokerserver.py: allow SSL connections

Mon Jun 20 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py: restructure to allow multiple
	  protocols.

Wed Jun 15 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.1

	* debian/*: more robust installation process

Mon Jun 06 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerrenderer.py (PokerRenderer.hold): hold if in
	  stream mode only. Also hold when observing a table.

Sun Jun 05 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerbot.py (PokerBotFactory.__init__): name generation

Fri Jun 03 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/lobby.c (handle_lobby): s/stud7/7stud/

	* pokerui/pokerrenderer.py (PokerRenderer.showTournaments): handle tables/tournament
	  switching with persistent values.

	* pokernetwork/pokerclient.py (PokerClientFactory.__init__): end_round and begin_round
	  delays

	* pokernetwork/pokerserver.py (PokerServerFactory.getPersonalInfo): email None 
	  converted to ""

	* pokerui/pokerinterface.py (PokerInterface.handleLobby): two arguments only
	  and not three (https://gna.org/bugs/index.php?func=detailitem&item_id=2387)

	* pokernetwork/pokerserver.py (PokerServer.listTables): 
	* pokernetwork/pokerclient.py (PokerClientProtocol.resendPackets): fill all game
	  information.

Fri May 06 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.0
