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; }
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++; }
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))); }
void sysItobin2(int c) { unsigned char res[2]; res[1]=c; c>>=8; res[0]=c; VPUSH(PNTTOVAL(VMALLOCSTR((char*)res,2))); }
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))); }
/** 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; }
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; }
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))); }
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 }
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 }
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))); }
/** 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; } }
void sysCtoa(int c) { unsigned char res[1]; res[0]=c; VPUSH(PNTTOVAL(VMALLOCSTR((char*)res,1))); }
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); }
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); }