Esempio n. 1
0
	def socketProcess(self):
		print 'Checking'
		try:
			reads, writes, errs = select.select(self.rsocks, self.wsocks, [], 0)
			print 'Checking tried...'
		except:
			print 'Except...'
			return
		for sock in reads:
			if sock == self.serversocket:
				client, name = sock.accept()
				self.rsocks.append(client)
				self.senders[client]='socket'
				self.activity+=20
			elif sock == self.localsocket:
				client, name = sock.accept()
				self.rsocks.append(client)
				self.senders[client]='localsocket'
				self.activity+=20			
			else:
				ptype=self.senders[sock]
				print ptype
				print ""
				s = sock.recv(1024)
				print "Socket message received: "+s
				if (re.match(r"^[ \t\r\n]+$",s)):
					self.rsocks.remove(sock)
					del self.senders[sock]
				else:					
					mess=config.socketMessage(s,sock)
					if (( re.search('^exit',s) ) or (s=="")):
						print 'exiting..'
						self.rsocks.remove(sock)
						del self.senders[sock]
					else:
						self.activity=self.activity+4+self.activity*0.1
						out=self.parseMessage(mess,ptype)
						if ( out != None ):
							try:
								print "Sending answer on socket message..."
								s=out
								if (isinstance(out,config.socketMessage)):
									s=out.getBody()
								sock.send(s)
							except:
								self.rsocks.remove(sock)
								del self.senders[sock]
Esempio n. 2
0
	def getUser(self,mess,a):
	
		if ((a.has_key('pw_name')) or (a.has_key('pw_uid'))):
			jm=xmpp.Message(self.cfg.getAdminJID(),'%nss getUser '+self.d.packData(a))

			onanswer=lambda message,answer,data: ( isinstance(answer,types.DictType) and answer.has_key('pw_name') and self.d.sendMessage(config.socketMessage('1\n'+self.userToString(answer),mess.socket)) or self.d.sendMessage(config.socketMessage('0\n',mess.socket)) )

			self.d.sendMessage(jm,onanswer)
			
			return None
		else:
			s=''
			print "Getting next user..."
			if (len(self.cachedUsers)>0):
				print "!!"
				user=self.getNextUser()
				print user
				if (user!=None):
					s='1\n'+self.userToString(user)
				else:
					s='0\n'
			else:
				s='0\n'
			print s
			return s
Esempio n. 3
0
	def getShadow(self,mess,a):
		if (a.has_key('sp_namp')):
			jm=xmpp.Message(self.cfg.getAdminJID(),'%nss getShadow '+self.d.packData(a))
			onanswer=lambda message,answer,data: ( isinstance(answer,types.DictType) and answer.has_key('sp_namp') and self.d.sendMessage(config.socketMessage('1\n'+self.shadowToString(answer),mess.socket)) or self.d.sendMessage(config.socketMessage('0\n',mess.socket)) )
			
			self.d.sendMessage(jm,onanswer)
Esempio n. 4
0
	def toFirstGroup(self,mess,a):
		print "Going to first group..."
		jm=xmpp.Message(self.cfg.getAdminJID(),'%nss getGroupsList')
	
		onanswer=lambda message,answer,data: ( self.cachedGroupsList(answer) and self.d.sendMessage(config.socketMessage('1\n',mess.socket)) or self.d.sendMessage(config.socketMessage('0\n',mess.socket)) )
		self.d.sendMessage(jm,onanswer)
Esempio n. 5
0
	def getGroup(self,mess,a):
	
		if ((a.has_key('gr_name')) or (a.has_key('gr_gid'))):
			jm=xmpp.Message(self.cfg.getAdminJID(),'%nss getGroup '+self.d.packData(a))

			onanswer=lambda message,answer,data: ( isinstance(answer,types.DictType) and answer.has_key('gr_name') and self.d.sendMessage(config.socketMessage('1\n'+self.groupToString(answer),mess.socket)) or self.d.sendMessage(config.socketMessage('0\n',mess.socket)) )

			self.d.sendMessage(jm,onanswer)
			
			return None
		else:
			s=''
			print "Getting next group..."
			if (len(self.cachedGroups)>0):
				group=self.getNextGroup()
				if (group!=None):
					s='1\n'+self.groupToString(group)
				else:
					s='0\n'
			else:
				s='0\n'
			print s
			return s