Esempio n. 1
0
int netCb(char* src,int lensrc,char* macsrc)
{
  VPUSH(PNTTOVAL(VMALLOCSTR(src,lensrc)));
  VPUSH(PNTTOVAL(VMALLOCSTR(macsrc,6)));
  VPUSH(VCALLSTACKGET(sys_start,SYS_CBTCP));
  if (VSTACKGET(0)!=NIL) interpGo();
  else { VPULL();VPULL();}
  VPULL();
  return 0;
}
Esempio n. 2
0
void netScan_(struct rt2501_scan_result *scan_result, void *userparam)
{
  char buf[256];
  sprintf(buf,">>> %s %d %d %d %d\n",scan_result->ssid,scan_result->rssi,scan_result->channel,scan_result->rateset,scan_result->encryption);
  consolestr((UBYTE*)buf);
  VPUSH(PNTTOVAL(VMALLOCSTR(scan_result->ssid,strlen(scan_result->ssid))));
  VPUSH(PNTTOVAL(VMALLOCSTR((char*)scan_result->mac,6)));
  VPUSH(PNTTOVAL(VMALLOCSTR((char*)scan_result->bssid,6)));
  VPUSH(INTTOVAL(scan_result->rssi));
  VPUSH(INTTOVAL(scan_result->channel));
  VPUSH(INTTOVAL(scan_result->rateset));
  VPUSH(INTTOVAL(scan_result->encryption));
  VMKTAB(7);
  nscan++;
}
Esempio n. 3
0
void sysItoh(int v)
{
  char res[16];
  int ires=0;
  if (v==0)
  {
    res[ires++]='0';
  }
  else
  {
    int start=1;
    int imul=28;
    while(imul>=0)
    {
      int c=(v>>imul)&15;
      if ((c)||(!start))
      {
        start=0;
        res[ires++]=(c<10)?'0'+c:'a'+c-10;
      }
      imul-=4;
    }
  }
  VPUSH(PNTTOVAL(VMALLOCSTR(res,ires)));
}
Esempio n. 4
0
void sysItobin2(int c)
{
  unsigned char res[2];
  res[1]=c;
  c>>=8;
  res[0]=c;
  VPUSH(PNTTOVAL(VMALLOCSTR((char*)res,2)));
}
Esempio n. 5
0
void sysCtoh(int c)
{
  unsigned char res[2];
  int v=(c>>4)&15;
  res[0]=(v<10)?'0'+v:'a'+v-10;
  v=c&15;
  res[1]=(v<10)?'0'+v:'a'+v-10;
  VPUSH(PNTTOVAL(VMALLOCSTR((char*)res,2)));
}
Esempio n. 6
0
/**
	UDPEventRead
*/
int udpEventRead(int fd)
{
	char buf[4096];
	struct sockaddr_in add;
	int i=udpbysock(fd);
	int l=sizeof(add);
	int res=recvfrom(fd,buf,4096,0,(struct sockaddr *)&add,&l);
	if (res<0) return 1;

	my_printf(LOG_SIMUNET, "Sockets : UDP Read %d bytes on :%d from %s:%d\n",res,udp_port[i],inet_ntoa(add.sin_addr),ntohs(add.sin_port));
	VPUSH(INTTOVAL(i));
	VPUSH(PNTTOVAL(VMALLOCSTR(buf,res)));
	VPUSH(PNTTOVAL(VMALLOCSTR((char*)&add.sin_addr.s_addr,4)));
	VPUSH(VCALLSTACKGET(sys_start,SYS_CBUDP));
	if (VSTACKGET(0)!=NIL) interpGo();
	else { VPULL();VPULL();VPULL();}
	VPULL();
	return 1;
}
Esempio n. 7
0
int sysI2cRead(unsigned char addr_i2c, int bufsize)
{  
  uchar* data;
  int nmax=1000;
  while((nmax>0)&&(read_i2c(addr_i2c,data,bufsize)==FALSE)){ nmax--;__no_operation(); }
  
  VPUSH(PNTTOVAL(VMALLOCSTR((unsigned char*)data,bufsize)));
  
  return nmax;
}
Esempio n. 8
0
void netSeqAdd(unsigned char* seq,int n)
{
  unsigned char res[4];
  unsigned int val;
  val=(seq[0]<<24)+(seq[1]<<16)+(seq[2]<<8)+seq[3];
  val+=n;
  res[3]=val; val>>=8;
  res[2]=val; val>>=8;
  res[1]=val; val>>=8;
  res[0]=val;
  VPUSH(PNTTOVAL(VMALLOCSTR((char*)res,4)));
}
Esempio n. 9
0
void sysRfidread(char* id,int bloc)
{
#ifdef VSIMU
  VPUSH(NIL);
#endif
#ifdef VREAL
  char buf[4];
  int k=rfid_read(id,bloc,buf);
  if (k)
  {
    VPUSH(NIL);
    return;
  }
  VPUSH(PNTTOVAL(VMALLOCSTR(buf,4)));
#endif
}
Esempio n. 10
0
void sysRfidgetList()
{
#ifdef VSIMU
  VPUSH(NIL);
#endif
#ifdef VREAL
  int n=0;
  n=check_rfid_n();
  if (n<=0)
  {
    VPUSH(NIL);
    return;
  }
  int i;
  for(i=0;i<n;i++)
  {
    VPUSH(PNTTOVAL(VMALLOCSTR(get_nth_rfid(i),8)));
  }
  VPUSH(NIL);
  while(n--) VMKTAB(2);
#endif
}
Esempio n. 11
0
void sysItoa(int v)
{
  char res[16];
  int ires=0;
  if (v==0)
  {
    res[ires++]='0';
  }
  else
  {
    int start=1;
    int imul=0;
    if (v<0)
    {
      v=-v;
      res[ires++]='-';
    }
    while(imul<10)
    {
      int k=0;
      while(v>=itoarsc[imul])
      {
        k++;
        v-=itoarsc[imul];
      }
      if ((k)||(!start))
      {
        start=0;
        res[ires++]='0'+k;
      }
      imul++;
    }
  }

  VPUSH(PNTTOVAL(VMALLOCSTR(res,ires)));

}
Esempio n. 12
0
/**
	 Gère un evt read sur une socket
 */
int tcpEventRead(int fd)
{
	/* soit une donnée à lire, soit un accept, soit un close */
	/* accept si on l'attend, close si on lit 0 data, read sinon */
	int idx = tcpbysock(fd);

	if (idx < 0)
		{
			// TODO gérer l'erreur
			return 0;
		}

	if (tcp_listen[idx])
		{
			// accept
			struct sockaddr_in cor;
			int ns;
			int sizecor;
			int ni,ip,port;
			char buf[16];

			tcp_listen[idx] = 0;

			sizecor=sizeof(cor);
			ns=accept(fd,(struct sockaddr*)&cor,&sizecor);
			if (ns==-1) return 1;

			ni=tcpgetfree();
			if (ni<0)
				{
					close(ns);
					return 1;
				}
			
			ip=cor.sin_addr.s_addr;
			port=ntohs(cor.sin_port);

			tcp_sock[ni]=ns;

			my_printf(LOG_SIMUNET, "Sockets : accept Tcp from %x:%d (socket=%d)\n",ip,port,ns);
			VPUSH(INTTOVAL(ni));
			VPUSH(INTTOVAL(2));
			sprintf(buf,"%d",idx);
			VPUSH(PNTTOVAL(VMALLOCSTR(buf,strlen(buf))));
			VPUSH(VCALLSTACKGET(sys_start,SYS_CBTCP));
			if (VSTACKGET(0)!=NIL) interpGo();
			else { VPULL();VPULL();VPULL();}
			VPULL();
			return 1;
		}
	// donnée ou close
	else
	{
		char buf[2048];
		int res;
		if (!tcp_enable[idx])
		{
//			Sleep(10);
//			recv(sock,buf,0,0);
//			printf("disabled\n");
			return 1;
		}

		my_printf(LOG_SIMUNET, "Sockets : Read event on %d\n",fd);
		res=recv(fd,buf,2048,0);

		helper_write_buffer(buf, res);

		VPUSH(INTTOVAL(idx));
		if (res>0)
		{
			VPUSH(INTTOVAL(1));
			VPUSH(PNTTOVAL(VMALLOCSTR(buf,res)));
		}
		else
		{
			VPUSH(INTTOVAL(-1));
			VPUSH(NIL);
		}

		VPUSH(VCALLSTACKGET(sys_start,SYS_CBTCP));
		if (VSTACKGET(0)!=NIL) interpGo();
		else { VPULL();VPULL();VPULL();}
		VPULL();
		return 1;
	}
}
Esempio n. 13
0
void sysCtoa(int c)
{
  unsigned char res[1];
  res[0]=c;
  VPUSH(PNTTOVAL(VMALLOCSTR((char*)res,1)));
}
Esempio n. 14
0
void netScan(char* ssid)
{
  nscan=0;
  VPUSH(PNTTOVAL(VMALLOCSTR("foo",3)));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-20));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(0));
  VMKTAB(7);
  nscan++;
  VPUSH(PNTTOVAL(VMALLOCSTR("foo",3)));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-10));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(0));
  VMKTAB(7);
  nscan++;
  VPUSH(PNTTOVAL(VMALLOCSTR("zzzz",3)));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-10));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(0));
  VMKTAB(7);
  nscan++;
  VPUSH(PNTTOVAL(VMALLOCSTR("",3)));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-10));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(0));
  VMKTAB(7);
  nscan++;
  VPUSH(PNTTOVAL(VMALLOCSTR("a\"a<a'a  a\\a",strlen("a\"a<a'a  a\\a"))));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-10));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(3));
  VMKTAB(7);
  nscan++;
  VPUSH(PNTTOVAL(VMALLOCSTR("foo",3)));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-30));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(0));
  VMKTAB(7);
  nscan++;
  VPUSH(NIL);
  while(nscan--) VMKTAB(2);
}
Esempio n. 15
0
void netScan(char* ssid)
{
  nscan=0;
#ifdef VSIMU
  VPUSH(PNTTOVAL(VMALLOCSTR("foo",3)));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-20));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(0));
  VMKTAB(7);
  nscan++;
  VPUSH(PNTTOVAL(VMALLOCSTR("foo",3)));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-10));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(0));
  VMKTAB(7);
  nscan++;
  VPUSH(PNTTOVAL(VMALLOCSTR("zzzz",3)));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-10));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(0));
  VMKTAB(7);
  nscan++;
  VPUSH(PNTTOVAL(VMALLOCSTR("",3)));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-10));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(0));
  VMKTAB(7);
  nscan++;
  VPUSH(PNTTOVAL(VMALLOCSTR("a\"a<a'a  a\\a",strlen("a\"a<a'a  a\\a"))));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-10));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(3));
  VMKTAB(7);
  nscan++;
  VPUSH(PNTTOVAL(VMALLOCSTR("foo",3)));
  VPUSH(PNTTOVAL(VMALLOCSTR("xyzxyz",6)));
  VPUSH(PNTTOVAL(VMALLOCSTR("765432",6)));
  VPUSH(INTTOVAL(-30));
  VPUSH(INTTOVAL(11));
  VPUSH(INTTOVAL(1));
  VPUSH(INTTOVAL(0));
  VMKTAB(7);
  nscan++;
#endif
#ifdef VREAL
  rt2501_scan(ssid, netScan_, NULL);
#endif
  VPUSH(NIL);
  while(nscan--) VMKTAB(2);
}