diff rep/SessionManager.java @ 74:391d44c94799

*** empty log message ***
author pin
date Sun, 25 Nov 2007 02:26:23 +0900
parents 4d887f38284b
children a636b651dbce
line wrap: on
line diff
--- a/rep/SessionManager.java	Sat Nov 17 06:38:33 2007 +0900
+++ b/rep/SessionManager.java	Sun Nov 25 02:26:23 2007 +0900
@@ -209,6 +209,12 @@
 			break;
 			
 		case REP.SMCMD_SM_JOIN:
+			myHost = getHostName(channel);
+			if(myHost.compareTo(repCmd.string) > 0){
+				
+			}else if(myHost.compareTo(repCmd.string) < 0){
+				isMaster = false;
+			}
 			if(isMaster){
 				smList.add(channel);
 				repCmd.setCMD(REP.SMCMD_SM_JOIN_ACK);
@@ -349,12 +355,14 @@
 			//REPCommand sm_join_com = REPCommand.SMCMD_SESSION_JOIN;
 			//String socketString = getSocketString(sessionchannel);
 			//sm_join_com.setString(sm_join_com.string + ":" + socketString);
-			SessionXMLEncoder encoder = new SessionXMLEncoder(sessionlist.getList());
+//			SessionXMLEncoder encoder = new SessionXMLEncoder(sessionlist.getList());
 			
-			REPCommand comm = new REPCommand();
-			comm.setCMD(REP.SMCMD_SM_JOIN);
-			comm.setString(encoder.sessionListToXML());
-			send.send(comm);
+			REPCommand command = new REPCommand();
+			command.setCMD(REP.SMCMD_SM_JOIN);
+			myHost = getHostName(sessionchannel);
+			command.setString(myHost);
+			//command.setString(encoder.sessionListToXML());
+			send.send(command);
 			
 			//send.send(REPCommand.SMCMD_SESSION_JOIN);
 			isMaster = false;
@@ -365,6 +373,12 @@
 		}
 	}
 
+	private String getHostName(SocketChannel channel) {
+		String host = null;
+		host = channel.socket().getLocalAddress().getHostName();
+		return host;
+	}
+
 	private String getSocketString(SocketChannel sessionchannel) {
 		SocketAddress socket = sessionchannel.socket().getRemoteSocketAddress();
 		//String inetAddressString = sessionchannel.socket().getInetAddress().toString();