static char *set_new_datapth(struct sbuf *sb, const char *datadirtmp, struct dpth *dpth, int *istreedata, struct config *cconf) { char *rpath=NULL; if(cconf->directory_tree) *istreedata=treedata(sb); if(*istreedata) { // We want to place this file in a directory structure like // the directory structure on the original client. if(!(sb->datapth=prepend_s("t", sb->path, strlen(sb->path)))) { log_and_send_oom(__FUNCTION__); return NULL; } } else { mk_dpth(dpth, cconf, sb->cmd); if(!(sb->datapth=strdup(dpth->path))) // file data path { log_and_send_oom(__FUNCTION__); return NULL; } } if(build_path(datadirtmp, sb->datapth, strlen(sb->datapth), &rpath, datadirtmp)) { log_and_send("build path failed"); return NULL; } return rpath; }
static char *set_new_datapth(struct asfd *asfd, struct sdirs *sdirs, struct conf **cconfs, struct sbuf *sb, struct dpth *dpth, int *istreedata) { char *tmp=NULL; char *rpath=NULL; if(get_int(cconfs[OPT_DIRECTORY_TREE])) *istreedata=treedata(sb, cconfs); if(*istreedata) { // We want to place this file in a directory structure like // the directory structure on the original client. if(!(tmp=prepend_s(TREE_DIR, sb->path.buf))) { log_and_send_oom(asfd, __func__); return NULL; } } else { if(!(tmp=strdup_w(dpth_protocol1_mk(dpth, get_int(cconfs[OPT_COMPRESSION]), sb->path.cmd), __func__))) return NULL; } iobuf_from_str(&sb->protocol1->datapth, CMD_DATAPTH, tmp); if(build_path(sdirs->datadirtmp, sb->protocol1->datapth.buf, &rpath, sdirs->datadirtmp)) { log_and_send(asfd, "build path failed"); return NULL; } return rpath; }
static char *set_new_datapth(struct asfd *asfd, struct sdirs *sdirs, struct conf *cconf, struct sbuf *sb, struct dpthl *dpthl, int *istreedata) { static char *tmp=NULL; char *rpath=NULL; if(cconf->directory_tree) *istreedata=treedata(sb); if(*istreedata) { // We want to place this file in a directory structure like // the directory structure on the original client. if(!(tmp=prepend_s("t", sb->path.buf))) { log_and_send_oom(asfd, __func__); return NULL; } } else { mk_dpthl(dpthl, cconf, sb->path.cmd); if(!(tmp=strdup(dpthl->path))) // file data path { log_and_send_oom(asfd, __func__); return NULL; } } iobuf_from_str(&sb->burp1->datapth, CMD_DATAPTH, tmp); if(build_path(sdirs->datadirtmp, sb->burp1->datapth.buf, &rpath, sdirs->datadirtmp)) { log_and_send(asfd, "build path failed"); return NULL; } return rpath; }