Dan,
So this is the issue with strsav having an extra parameter? I was wondering
where that came from. I just rolled it back to 2 params and set the metaLen
once at the end, seems to work fine.
On Thursday 23 May 2002 05:24 pm, Dan Merillat wrote:
> "Marco A. Calamari" writes:
> > 0 of 39 files left
> > fcpputsite: broke main insert loop
> > insertFreesite: file inserts succeeded, inserting metadata
> > METADATA IS 0 BYTES LONG
> > 1 open sockets
> > 13416: fcpPutKeyFromMem: waiting for response
> > From node: FormatError
> > 13416: fcpPutKeyFromMem: got response
> > fcpPutKeyFromMem: FORMATERROR
> > 0 open sockets
> > Failed to insert DBR root - aborting
> > fcpputsite: returned from insertFreesite
> > [root@dagobah root]#
>
> FORMATERROR is due to trying to insert a 0-byte metadata.
> Mostly due to only half my patch being committed before I had CVS
> access. I re-wrote and sent it again, so the fcp_0_4_6 branch at least
> works properly.
>
> It should forward-port to HEAD just fine, it's only a few lines.
>
> --Dan
>
>
> _______________________________________________
> devl mailing list
> [EMAIL PROTECTED]
> http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/devl
--- ../fcptools-20020416/./fcpputsite/insertFreesite.c Tue Apr 16 18:13:19 2002
+++ ./fcpputsite/insertFreesite.c Fri May 24 15:13:18 2002
@@ -18,5 +18,6 @@
extern int fcpLogCallback(int level, char *buf);
extern SiteFile *scan_dir(char *dirname, int *pNumFiles);
-extern char *strsav(char *old, int * len, char *text_to_append);
+//extern char *strsav(char *old, int * len, char *text_to_append);
+extern char *strsav(char *old, char *text_to_append);
extern char *GetMimeType(char *pathname);
@@ -217,5 +218,4 @@
}
-
int insertFreesite(char *_siteName, char *siteDir, char *pubKey, char *privKey,
char *defaultFile, int daysFuture, int maxThreads,
@@ -442,58 +442,57 @@
sprintf(dbrRootUri, "SSK@%s/%s", privKey, siteName);
- metaRoot = strsav(NULL, NULL,
+ metaRoot = strsav(NULL,
"Version\nRevision=1\nEndPart\n"
"Document\nDateRedirect.Target=freenet:SSK@");
- metaRoot = strsav(metaRoot, NULL, pubKey);
- metaRoot = strsav(metaRoot, NULL, "/");
- metaRoot = strsav(metaRoot, NULL, siteName);
- metaRoot = strsav(metaRoot, NULL, "\nEnd\n");
+ metaRoot = strsav(metaRoot, pubKey);
+ metaRoot = strsav(metaRoot, "/");
+ metaRoot = strsav(metaRoot, siteName);
+ metaRoot = strsav(metaRoot, "\nEnd\n");
// create dbr target uri
- if (dodbr)
- {
- time(&timeNow);
- sprintf(dbrTargetUri, "SSK@%s/%lx-%s",
- privKey,
- (timeNow - (timeNow % 86400)) + (daysFuture * 86400),
- siteName);
- }
- else
- strcpy(dbrTargetUri, dbrRootUri);
+ if (dodbr){
+ time(&timeNow);
+ sprintf(dbrTargetUri, "SSK@%s/%lx-%s",
+ privKey,
+ (timeNow - (timeNow % 86400)) + (daysFuture * 86400),
+ siteName);
+ }else{
+ strcpy(dbrTargetUri, dbrRootUri);
+ }
// create mapfile
- mapLen=0;
- metaMap = strsav(NULL, &mapLen, "Version\nRevision=1\nEndPart\n");
+ mapLen=0;
+ metaMap = strsav(NULL, "Version\nRevision=1\nEndPart\n");
for (i = 0; i < numFiles; i++)
{
- metaMap = strsav(metaMap, &mapLen, "Document\nName=");
- metaMap = strsav(metaMap, &mapLen, files[i].relpath);
- metaMap = strsav(metaMap, &mapLen, "\nInfo.Format=");
- metaMap = strsav(metaMap, &mapLen, GetMimeType(files[i].relpath));
- metaMap = strsav(metaMap, &mapLen, "\nRedirect.Target=");
- metaMap = strsav(metaMap, &mapLen, files[i].chk);
- metaMap = strsav(metaMap, &mapLen, "\n");
+ metaMap = strsav(metaMap, "Document\nName=");
+ metaMap = strsav(metaMap, files[i].relpath);
+ metaMap = strsav(metaMap, "\nInfo.Format=");
+ metaMap = strsav(metaMap, GetMimeType(files[i].relpath));
+ metaMap = strsav(metaMap, "\nRedirect.Target=");
+ metaMap = strsav(metaMap, files[i].chk);
+ metaMap = strsav(metaMap, "\n");
if (i == defaultIndex)
{
// Create an unnamed cdoc for default file
- metaMap = strsav(metaMap, &mapLen, "EndPart\n");
- metaMap = strsav(metaMap, &mapLen, "Document\n");
- metaMap = strsav(metaMap, &mapLen, "Info.Format=");
- metaMap = strsav(metaMap, &mapLen, GetMimeType(files[i].relpath));
- metaMap = strsav(metaMap, &mapLen, "\nRedirect.Target=");
- metaMap = strsav(metaMap, &mapLen, files[i].chk);
- metaMap = strsav(metaMap, &mapLen, "\n");
+ metaMap = strsav(metaMap, "EndPart\n");
+ metaMap = strsav(metaMap, "Document\n");
+ metaMap = strsav(metaMap, "Info.Format=");
+ metaMap = strsav(metaMap, GetMimeType(files[i].relpath));
+ metaMap = strsav(metaMap, "\nRedirect.Target=");
+ metaMap = strsav(metaMap, files[i].chk);
+ metaMap = strsav(metaMap, "\n");
}
if (i + 1 < numFiles)
// not the last cdoc - need an 'EndPart'
- metaMap = strsav(metaMap, &mapLen, "EndPart\n");
+ metaMap = strsav(metaMap, "EndPart\n");
} // 'for (each file written to mapfile)'
- metaMap = strsav(metaMap, &mapLen, "End\n");
-
+ metaMap = strsav(metaMap, "End\n");
+ mapLen = metaMap ? strlen(metaMap) : 0;
_fcpLog(FCP_LOG_NORMAL, "METADATA IS %d BYTES LONG", mapLen);
-// _fcpLog(FCP_LOG_DEBUG, "METADATA Follows: \n%s", metaMap);
+ _fcpLog(FCP_LOG_DEBUG, "METADATA Follows: \n%s", metaMap);
// insert DBR root
@@ -527,9 +526,9 @@
// inserted ok as CHK - now build a redirect to that CHK
- metaChk = strsav(NULL, NULL,
+ metaChk = strsav(NULL,
"Version\nRevision=1\nEndPart\n"
"Document\nRedirect.Target=");
- metaChk = strsav(metaChk, NULL, hfcp->created_uri);
- metaChk = strsav(metaChk, NULL, "\nEnd\n");
+ metaChk = strsav(metaChk, hfcp->created_uri);
+ metaChk = strsav(metaChk, "\nEnd\n");
fcpDestroyHandle(hfcp);