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);

Reply via email to