From: Digital X. <dig...@us...> - 2007-03-13 17:43:59
|
Update of /cvsroot/openrpg/openrpg1/orpg/networking In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv4548/orpg/networking Modified Files: mplay_server.py Log Message: Fixed a bug that was preventing the port specification from the server_ini being used Index: mplay_server.py =================================================================== RCS file: /cvsroot/openrpg/openrpg1/orpg/networking/mplay_server.py,v retrieving revision 1.137 retrieving revision 1.138 diff -C2 -d -r1.137 -r1.138 *** mplay_server.py 3 Mar 2007 00:44:12 -0000 1.137 --- mplay_server.py 13 Mar 2007 17:43:52 -0000 1.138 *************** *** 70,75 **** myname = '' - #OPENRPG_PORT = 6774 - def id_compare(a,b): "converts strings to intergers for list sort comparisons for group and player ids so they end up in numeric order" --- 70,73 ---- *************** *** 269,273 **** # Since the server is just starting here, we read in the XML configuration # file. Notice the lobby is still created here by default. ! self.groups = { '0': game_group( '0','Lobby','','The game lobby', '', '', orpg.dirpath.dir_struct["user"]+'Lobby_map.xml',orpg.dirpath.dir_struct["user"]+'LobbyMessage.html',1 ) } self.initServerConfig() --- 267,271 ---- # Since the server is just starting here, we read in the XML configuration # file. Notice the lobby is still created here by default. ! self.groups = { '0': game_group('0','Lobby','','The game lobby', '', '', orpg.dirpath.dir_struct["user"] + 'Lobby_map.xml', orpg.dirpath.dir_struct["user"] + 'LobbyMessage.html', 1)} self.initServerConfig() *************** *** 367,371 **** # This method reads in the server's configuration file and reconfigs the server # as needed, over-riding any default values as requested. ! def initServerConfig( self ): self.log_msg("Processing Server Configuration File...") --- 365,369 ---- # This method reads in the server's configuration file and reconfigs the server # as needed, over-riding any default values as requested. ! def initServerConfig(self): self.log_msg("Processing Server Configuration File...") *************** *** 376,390 **** # try to use it. try: ! self.configDom = minidom.parse( orpg.dirpath.dir_struct["user"]+'server_ini.xml' ) self.configDom.normalize() self.configDoc = self.configDom.documentElement # Obtain the lobby/server password if it's been specified ! admin_pwd = self.configDoc.getAttribute( "admin" ) ! boot_pwd = self.configDoc.getAttribute( "boot" ) # Update the lobby with the passwords if they've been specified ! if( len(admin_pwd) or len(boot_pwd) ): ! self.groups = { '0': game_group( '0', 'Lobby', "", 'The game lobby', boot_pwd, "", orpg.dirpath.dir_struct["user"]+'Lobby_map.xml', orpg.dirpath.dir_struct["user"]+'LobbyMessage.html', 1 ) --- 374,391 ---- # try to use it. try: ! self.configDom = minidom.parse(orpg.dirpath.dir_struct["user"] + 'server_ini.xml') self.configDom.normalize() self.configDoc = self.configDom.documentElement # Obtain the lobby/server password if it's been specified ! boot_pwd = "" ! if self.configDoc.hasAttribute("admin"): ! boot_pwd = self.configDoc.getAttribute("admin") ! elif self.configDoc.hasAttribute("boot"): ! boot_pwd = self.configDoc.getAttribute("boot") # Update the lobby with the passwords if they've been specified ! if len(boot_pwd): ! self.groups = {'0': game_group( '0', 'Lobby', "", 'The game lobby', boot_pwd, "", orpg.dirpath.dir_struct["user"]+'Lobby_map.xml', orpg.dirpath.dir_struct["user"]+'LobbyMessage.html', 1 ) *************** *** 392,399 **** # set ip or dns name to send to meta server ! service_node = self.configDoc.getElementsByTagName( "service" )[0] ! address = service_node.getAttribute( "address" ) address = address.lower() if address == "" or address == "hostname/address" or address == "localhost": --- 393,400 ---- # set ip or dns name to send to meta server ! service_node = self.configDoc.getElementsByTagName("service")[0] ! address = service_node.getAttribute("address") address = address.lower() if address == "" or address == "hostname/address" or address == "localhost": *************** *** 402,405 **** --- 403,410 ---- self.server_address = address + self.server_port = OPENRPG_PORT + if service_node.hasAttribute("port"): + self.server_port = int(service_node.getAttribute("port")) + # Get the minimum openrpg version from config if available # if it isn't set min version to internal default. *************** *** 408,412 **** # <version min="x.x.x"> try: ! mver = self.configDoc.getElementsByTagName( "version" )[0] self.minClientVersion = mver.getAttribute("min") except: --- 413,417 ---- # <version min="x.x.x"> try: ! mver = self.configDoc.getElementsByTagName("version")[0] self.minClientVersion = mver.getAttribute("min") except: *************** *** 416,420 **** #finds out if the user wants a default room message, and what file the user wants --akoman #edit: jan10/03 - I assumed there would always be a newroom setting. Modified code to make it optional ! tags = self.configDoc.getElementsByTagName( "newrooms" ) self.defaultMessageFile = "" --- 421,425 ---- #finds out if the user wants a default room message, and what file the user wants --akoman #edit: jan10/03 - I assumed there would always be a newroom setting. Modified code to make it optional ! tags = self.configDoc.getElementsByTagName("newrooms") self.defaultMessageFile = "" *************** *** 424,428 **** if tags.length > 0: newroom_node = tags[0] ! dmf = newroom_node.getAttribute( "file" ) if dmf != "": self.defaultMessageFile = dmf --- 429,433 ---- if tags.length > 0: newroom_node = tags[0] ! dmf = newroom_node.getAttribute("file") if dmf != "": self.defaultMessageFile = dmf *************** *** 446,450 **** try: ! ak = self.configDoc.getElementsByTagName( "autokick" )[0] if ak.hasAttribute("silent"): if ((ak.getAttribute("silent")).lower() == "yes"): --- 451,455 ---- try: ! ak = self.configDoc.getElementsByTagName("autokick")[0] if ak.hasAttribute("silent"): if ((ak.getAttribute("silent")).lower() == "yes"): *************** *** 468,472 **** alk = "" if (self.silent_auto_kick == 1): alk = "(Silent Mode)" ! self.log_msg("Auto Kick: Delay="+str(self.zombie_time)+" "+alk) #------------------------[ END <AUTOKICK> TAG PROCESSING ]-------------- --- 473,477 ---- alk = "" if (self.silent_auto_kick == 1): alk = "(Silent Mode)" ! self.log_msg("Auto Kick: Delay="+str(self.zombie_time) + " " + alk) #------------------------[ END <AUTOKICK> TAG PROCESSING ]-------------- *************** *** 490,498 **** #pull information from config file DOM try: ! roomdefaults = self.configDom.getElementsByTagName( "room_defaults" )[0] #rd.normalize() #roomdefaults = self.rd.documentElement try: ! setting = roomdefaults.getElementsByTagName( 'passwords' )[0] rpw = setting.getAttribute('allow') if rpw == "no" or rpw=="0": --- 495,503 ---- #pull information from config file DOM try: ! roomdefaults = self.configDom.getElementsByTagName("room_defaults")[0] #rd.normalize() #roomdefaults = self.rd.documentElement try: ! setting = roomdefaults.getElementsByTagName('passwords')[0] rpw = setting.getAttribute('allow') if rpw == "no" or rpw=="0": *************** *** 504,509 **** self.log_msg("Room Defaults: [Warning] Allowing Passworded Rooms") try: ! setting = roomdefaults.getElementsByTagName( 'map' )[0] ! map = setting.getAttribute( 'file' ) if map != "": roomdefault_map = map --- 509,514 ---- self.log_msg("Room Defaults: [Warning] Allowing Passworded Rooms") try: ! setting = roomdefaults.getElementsByTagName('map')[0] ! map = setting.getAttribute('file') if map != "": roomdefault_map = map *************** *** 513,518 **** try: ! setting = roomdefaults.getElementsByTagName( 'message' )[0] ! msg = setting.getAttribute( 'file' ) if msg != "": roomdefault_msg = msg --- 518,523 ---- try: ! setting = roomdefaults.getElementsByTagName('message')[0] ! msg = setting.getAttribute('file') if msg != "": roomdefault_msg = msg *************** *** 540,545 **** ###Server Cheat message try: ! cheat_node = self.configDoc.getElementsByTagName( "cheat" )[0] ! self.cheat_msg = cheat_node.getAttribute( "text" ) except: self.cheat_msg = "**FAKE ROLL**" --- 545,550 ---- ###Server Cheat message try: ! cheat_node = self.configDoc.getElementsByTagName("cheat")[0] ! self.cheat_msg = cheat_node.getAttribute("text") except: self.cheat_msg = "**FAKE ROLL**" *************** *** 565,579 **** ! def makePersistentRooms( self ): 'Creates rooms on the server as defined in the server config file.' ! for element in self.configDom.getElementsByTagName( 'room' ): ! roomName = element.getAttribute( 'name' ) ! roomPassword = element.getAttribute( 'password' ) ! bootPassword = element.getAttribute( 'boot' ) # Conditionally check for minVersion attribute ! if element.hasAttribute( 'minVersion' ): ! minVersion = element.getAttribute( 'minVersion' ) else: minVersion = "" --- 570,584 ---- ! def makePersistentRooms(self): 'Creates rooms on the server as defined in the server config file.' ! for element in self.configDom.getElementsByTagName('room'): ! roomName = element.getAttribute('name') ! roomPassword = element.getAttribute('password') ! bootPassword = element.getAttribute('boot') # Conditionally check for minVersion attribute ! if element.hasAttribute('minVersion'): ! minVersion = element.getAttribute('minVersion') else: minVersion = "" *************** *** 581,589 **** # Extract the map filename attribute from the map node # we only care about the first map element found -- others are ignored ! mapElement = element.getElementsByTagName( 'map' )[0] ! mapFile = mapElement.getAttribute( 'file' ) ! messageElement = element.getElementsByTagName( 'message' )[0] ! messageFile = messageElement.getAttribute( 'file' ) # Make sure we have a message to even mess with --- 586,594 ---- # Extract the map filename attribute from the map node # we only care about the first map element found -- others are ignored ! mapElement = element.getElementsByTagName('map')[0] ! mapFile = mapElement.getAttribute('file') ! messageElement = element.getElementsByTagName('message')[0] ! messageFile = messageElement.getAttribute('file') # Make sure we have a message to even mess with *************** *** 596,600 **** ! def isPersistentRoom( self, id ): 'Returns True if the id is a persistent room (other than the lobby), otherwise, False.' --- 601,605 ---- ! def isPersistentRoom(self, id): 'Returns True if the id is a persistent room (other than the lobby), otherwise, False.' *************** *** 751,755 **** self.metas[meta].register(name=name,realHostName=self.server_address,num_users=num_players) else: ! self.metas[meta] = registerThread(name=name,realHostName=self.server_address,num_users=num_players,MetaPath=meta,port=OPENRPG_PORT,register_callback=self.register_callback) self.metas[meta].start() --- 756,760 ---- self.metas[meta].register(name=name,realHostName=self.server_address,num_users=num_players) else: ! self.metas[meta] = registerThread(name=name, realHostName=self.server_address, num_users=num_players, MetaPath=meta, port=self.server_port,register_callback=self.register_callback) self.metas[meta].start() *************** *** 904,908 **** ip = socket.gethostbyname(socket.gethostname()) kill = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ! kill.connect((ip,OPENRPG_PORT)) # Now, send the "system" command using the correct protocol format --- 909,913 ---- ip = socket.gethostbyname(socket.gethostname()) kill = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ! kill.connect((ip, self.server_port)) # Now, send the "system" command using the correct protocol format *************** *** 1398,1406 **** try: self.log_msg("listen thread running...") ! self.listen_sock.bind( ("", OPENRPG_PORT) ) ! self.listen_sock.listen( 5 ) except Exception, e: ! self.log_msg( ("Error binding request socket!", e) ) self.alive = 0 --- 1403,1414 ---- try: self.log_msg("listen thread running...") ! adder = "" ! if self.server_address: ! adder = self.server_address ! self.listen_sock.bind((adder, self.server_port)) ! self.listen_sock.listen(5) except Exception, e: ! self.log_msg(("Error binding request socket!", e)) self.alive = 0 *************** *** 1417,1421 **** # our face! :O After words, this thread is dead ready for another connection # accept to come in. ! thread.start_new_thread( self.acceptedNewConnectionThread, ( newsock, addr ) ) except: --- 1425,1429 ---- # our face! :O After words, this thread is dead ready for another connection # accept to come in. ! thread.start_new_thread(self.acceptedNewConnectionThread, ( newsock, addr )) except: *************** *** 2308,2312 **** self.ban_list[ip]['name'] = name self.saveBanList() ! except Exception, e: traceback.print_exc() --- 2316,2320 ---- self.ban_list[ip]['name'] = name self.saveBanList() ! except Exception, e: traceback.print_exc() |