# HG changeset patch # User kono # Date 1224596430 -32400 # Node ID 46c95d8885adb5dd1c1520e78ad9914364f08c36 # Parent 7d21eb209e27fa17719c90a93bb6ae3116000053 fix put_ack in single server test. diff -r 7d21eb209e27 -r 46c95d8885ad Todo --- a/Todo Tue Oct 21 20:37:05 2008 +0900 +++ b/Todo Tue Oct 21 22:40:30 2008 +0900 @@ -1,6 +1,24 @@ +Mon Oct 20 16:38:39 JST 2008 + +Todo: (kono) +routing で put の時には、上に上がるだけで良いのだが、下に行くときには、 +routing table を持って行く必要がある。ということは、session list を +つける必要があるということだね。でも、tree だから、 + + 自分の直下んあるもの以外は、上に送る + +で良いのか... + +Todo: (kono) +put/put_ack は、udpateを兼ねる必要があるらしい。そうでないと、session list +が広まらない。 + +session list 中のlocalでないeditorをselectするした場合は、sessionManager +の方に再送してやれば良い。 + Mon Oct 20 10:22:02 JST 2008 -Tdo: (kono) +Todo: (kono) Inter-session での、editor の削除、master でないeditorのclose/quit。 Sun Oct 19 21:23:27 JST 2008 diff -r 7d21eb209e27 -r 46c95d8885ad rep/SessionManager.java --- a/rep/SessionManager.java Tue Oct 21 20:37:05 2008 +0900 +++ b/rep/SessionManager.java Tue Oct 21 22:40:30 2008 +0900 @@ -408,7 +408,6 @@ session.addForwarder(editor); sendUpdate(session.getSID()); sendCommand.setCMD(REP.SMCMD_JOIN_ACK); - return; } else { // We have a session, but joined editor is on the other sm. // SELECT_ACK is sent to the session ring to @@ -421,12 +420,11 @@ f.setHost(myHost); f.setSID(sid); session.addForwarder(f); // f.next is set up here. - sendCommand.setSID(sid); - sendCommand.string = session.getName(); - sendCommand.setEID(eid); - editor.send(sendCommand); - return; } + sendCommand.setSID(sid); + sendCommand.string = session.getName(); + sendCommand.setEID(eid); + editor.send(sendCommand); }else { Forwarder next; if (editor.channel==null) { @@ -617,17 +615,17 @@ { // first connection or forwarded command routingTable.add(forwarder,getSMID(command.eid)); - if(isMaster()) { - command.setCMD(REP.SMCMD_PUT_ACK); - command.string = command.string; - command.setEID(command.eid); - command.setSID(command.sid); - smList.sendToSlaves(command); - registEditor(forwarder,command); + REPCommand ack = new REPCommand(command); ack.setCMD(REP.SMCMD_PUT_ACK); + if(isMaster()) { + smList.sendToSlaves(ack); + registEditor(forwarder,ack); } else { smList.sendToMaster(command); // registEditor will be done by SMCMD_PUT_ACK } + if (forwarder.isDirect()) { + forwarder.send(ack); + } updateGUI(); }