def handle(self): global g_config global g_command g_cmd_queue = MDMDB("./mdm.db") g_cmd_queue.open("./mdm.db") data = self.request.recv(g_config.max_packet_size) plist = readPlistFromString(data) udid = plist.get('UDID') command = plist.get('Command') args = plist.get("Arguments") #print "Command request arrived" devinfo = g_cmd_queue.getDeviceInfo(UDID=udid) if not devinfo: return push_magic = devinfo["PushMagic"] print push_magic g_command.wakeUpDevice(topic=str(devinfo["Topic"]), token=devinfo["Token"], magic=str(devinfo['PushMagic']), cert="./mdm-APNS.pem") try: g_cmd_queue.addNewCommandToWaitQueue(UDID=udid, command=command, args=args) g_cmd_queue.setCommandStatus(UDID=udid, status=0) except: print("Connected to server failed.") pass g_cmd_queue.close()
def PUT(self): g_cmd_queue = MDMDB("./mdm.db") identity = 'sonto' request = readPlistFromString(web.data()) msgType = request.get('MessageType') status = request.get('Status') #print "MessageType = %s"%msgType if msgType == "Authenticate": gTopic = request.get('Topic') UDID = request.get('UDID') return web.ok elif msgType == "TokenUpdate": UDID = request.get('UDID') push_magic = request['PushMagic'] topic = request['Topic'] token = request['Token'].data unlock_token = request['UnlockToken'].data g_cmd_queue.open("./mdm.db") g_cmd_queue.addNewDevice(UDID=UDID, topic=topic, token=binascii.hexlify(token), untoken=unlock_token, magic=push_magic) print g_cmd_queue.getDeviceInfo(UDID=UDID) g_cmd_queue.close() return web.ok
def handle(self): global g_config global g_command g_cmd_queue = MDMDB("./mdm.db") g_cmd_queue.open("./mdm.db") data = self.request.recv(g_config.max_packet_size) plist = readPlistFromString(data) udid = plist.get("UDID") command = plist.get("Command") args = plist.get("Arguments") # print "Command request arrived" devinfo = g_cmd_queue.getDeviceInfo(UDID=udid) if not devinfo: return push_magic = devinfo["PushMagic"] print push_magic g_command.wakeUpDevice( topic=str(devinfo["Topic"]), token=devinfo["Token"], magic=str(devinfo["PushMagic"]), cert="./mdm-APNS.pem" ) try: g_cmd_queue.addNewCommandToWaitQueue(UDID=udid, command=command, args=args) g_cmd_queue.setCommandStatus(UDID=udid, status=0) except: print ("Connected to server failed.") pass g_cmd_queue.close()
def PUT(self): g_cmd_queue = MDMDB("./mdm.db") identity = "sonto" request = readPlistFromString(web.data()) msgType = request.get("MessageType") status = request.get("Status") # print "MessageType = %s"%msgType if msgType == "Authenticate": gTopic = request.get("Topic") UDID = request.get("UDID") return web.ok elif msgType == "TokenUpdate": UDID = request.get("UDID") push_magic = request["PushMagic"] topic = request["Topic"] token = request["Token"].data unlock_token = request["UnlockToken"].data g_cmd_queue.open("./mdm.db") g_cmd_queue.addNewDevice( UDID=UDID, topic=topic, token=binascii.hexlify(token), untoken=unlock_token, magic=push_magic ) print g_cmd_queue.getDeviceInfo(UDID=UDID) g_cmd_queue.close() return web.ok
def initMDM(): global g_config # change working directory. os.chdir(g_config.base_dir) # set certificate and private key for Https connection. if not (os.path.exists(g_config.https_certificate) and os.path.exists(g_config.https_private_key)): print "The certificate for https connection not found" return False print "Https:%s -- %s" % (g_config.https_certificate, g_config.https_private_key) CherryPyWSGIServer.ssl_certificate = g_config.https_certificate CherryPyWSGIServer.ssl_private_key = g_config.https_private_key cmd_queue = MDMDB("./mdm.db") cmd_queue.open() cmd_queue.cleanTable("mdm_cmd_queue") cmd_queue.close() return True
def initMDM(): global g_config #change working directory. os.chdir(g_config.base_dir) #set certificate and private key for Https connection. if not (os.path.exists(g_config.https_certificate) and os.path.exists(g_config.https_private_key)): print "The certificate for https connection not found" return False print "Https:%s -- %s" % (g_config.https_certificate, g_config.https_private_key) CherryPyWSGIServer.ssl_certificate = g_config.https_certificate CherryPyWSGIServer.ssl_private_key = g_config.https_private_key cmd_queue = MDMDB("./mdm.db") cmd_queue.open() cmd_queue.cleanTable('mdm_cmd_queue') cmd_queue.close() return True
def PUT(self): ctx = readPlistFromString(web.data()) status = ctx.get('Status') UDID = ctx.get('UDID') g_cmd_queue = MDMDB("./mdm.db") g_cmd_queue.open() cmdinfo = g_cmd_queue.getCommandInfo(UDID=UDID) if not cmdinfo: g_cmd_queue.close() return web.ok() cmd_status = int(cmdinfo["Status"]) print cmd_status if cmd_status == 0: plist = getCommandPlist(cmdinfo["Command"], args=cmdinfo["Arguments"]) g_cmd_queue.setCommandStatus(UDID=UDID, status=1) g_cmd_queue.close() return plist elif cmd_status == 1: print ctx #TODO:Add code here to check device status. g_cmd_queue.removeCommand(UDID=UDID) g_cmd_queue.close() return web.ok() else: return web.unauthorized
def PUT(self): ctx = readPlistFromString(web.data()) status = ctx.get("Status") UDID = ctx.get("UDID") g_cmd_queue = MDMDB("./mdm.db") g_cmd_queue.open() cmdinfo = g_cmd_queue.getCommandInfo(UDID=UDID) if not cmdinfo: g_cmd_queue.close() return web.ok() cmd_status = int(cmdinfo["Status"]) print cmd_status if cmd_status == 0: plist = getCommandPlist(cmdinfo["Command"], args=cmdinfo["Arguments"]) g_cmd_queue.setCommandStatus(UDID=UDID, status=1) g_cmd_queue.close() return plist elif cmd_status == 1: print ctx # TODO:Add code here to check device status. g_cmd_queue.removeCommand(UDID=UDID) g_cmd_queue.close() return web.ok() else: return web.unauthorized