- fp = fopen(tempfilename, "r");
- if (fp != NULL) {
- newfp = fopen(filename, "w");
- if (newfp != NULL) {
- bytes_copied = 0L;
- while (bytes_copied < download_len) {
- plen = download_len - bytes_copied;
- if (plen > sizeof buf) {
- plen = sizeof buf;
- }
- siz = fread(buf, plen, 1, fp);
- fwrite(buf, plen, 1, newfp);
- bytes_copied += plen;
- }
- fclose(newfp);
- }
- fclose(fp);
+
+ if (link(tempfilename, filename) != 0) {
+ CtdlLogPrintf(CTDL_ALERT, "Could not link %s to %s: %s\n",
+ tempfilename, filename, strerror(errno)
+ );