def prepareBroadcast(): NetworkUtils.cleanRoutes() ltspGW=NetworkUtils.ltspGW() if ltspGW!='0': NetworkUtils.addRoute('239.255.255.0', ltspGW) else: reactor.callLater(10, prepareBroadcast)
if not isTeacher: from twisted.internet import glib2reactor glib2reactor.install() from twisted.internet import reactor from twisted.web import server ######### Begin the application loop ####### if isTeacher: logging.getLogger().debug("The user is a teacher") from ControlAula import TeacherMainLoop, Classroom from ControlAula.Utils import Publications NetworkUtils.getWirelessData() if MyUtils.isLTSPServer(): externalIP = NetworkUtils.get_ip_inet_address(NetworkUtils.ltspGW()) else: externalIP = NetworkUtils.get_ip_inet_address() if externalIP == '': externalIP = NetworkUtils.get_ip_inet_address('192.168.0.254') service = Publications.Publications(port = Configs.PORT, name = USERNAME + '@' + HOSTNAME, text = ["ipINET=" + externalIP, "web=" + str(Configs.PORT), "classroomname=" + Configs.RootConfigs['classroomname']]) service_controlies = Publications.Publications(stype = "_controlaula._udp", port = Configs.PORT, name = USERNAME + '@' + HOSTNAME, text = ["ipINET=" + externalIP, "web=" + str(Configs.PORT), "classroomname=" + Configs.RootConfigs['classroomname']]) service_controlies.publish() try: # in case cache are filled with a previous "bad stopped" instance of controlaula service.unpublish() service_controlies.unpublish() sleep(0.1) except: pass #Initialize classroom data
def broadcast(self, url='', isDVD=False): from os.path import isfile if url=='DVD': isDVD=True url='' if not isDVD: if not isfile(url): return {'result':'Bad file'} for i in NetworkUtils.all_interfaces(): if i[0]!='lo': try: self.classroom.CommandStack[i[1]].append(['rootClean','239.255.255.0',NetworkUtils.ltspGW()]) except: #host not avaialble pass self.classroom.broadcast.clean_callbacks() self.classroom.broadcast.add_callback('started',self.startbcast) self.classroom.broadcast.add_callback('ended',self.stopbcast) result=self.classroom.broadcast.transmit(url,isDVD) if result!=True: self.stopbcast return {'result':result}