int handle_add(const char* path) { char dir[MAXPATHLEN], filename[256], buf[1024]; DB_VDA_FILE vf; POLICY policy; double size; int retval; retval = file_size(path, size); if (retval) { printf("no file %s\n", path); return -1; } safe_strcpy(dir, path); char* p = strrchr(dir, '/'); *p = 0; safe_strcpy(filename, p+1); // make sure there's a valid policy file in the dir // sprintf(buf, "%s/boinc_meta.txt", dir); retval = policy.parse(buf); if (retval) { printf("Can't parse policy file.\n"); return -1; } // add a DB record and mark it for update // vf.create_time = dtime(); safe_strcpy(vf.dir, dir); safe_strcpy(vf.file_name, filename); vf.size = size; vf.chunk_size = 0; // don't know this yet; set by vdad vf.need_update = 1; vf.initialized = 0; vf.retrieving = 0; vf.retrieved = 0; retval = vf.insert(); if (retval) { printf("Can't insert DB record\n"); return -1; } return 0; }