2004-07-12-0919Z


Here's one patch to pxe that was necessary to get at least as far as booting the bootloader:

--- ./options.cc.orig	2003-02-02 08:24:29.000000000 -0500
+++ ./options.cc	2004-07-12 09:04:38.000000000 -0400
@@ -170,6 +170,7 @@
 			delete prompt;
 			prompt = new char[strlen(val)+1];
 			strcpy(prompt, val);
+			fprintf(stderr, "new prompt: %s\n", prompt);
 		}
 		else if(strcmp("listen_port", key) == 0)
 		{
@@ -206,6 +207,7 @@
 			delete tftpdbase;
 			tftpdbase = new char[strlen(val)+1];
 			strcpy(tftpdbase, val);
+			fprintf(stderr, "new tftpdbase: %s\n", tftpdbase);
 		}
 		else if(strcmp("service", key) == 0)
 		{
@@ -643,7 +645,8 @@
 	for(i=0; i != CSA_types[i].arch_id; i++);
 	tmpc = new char[strlen(CSA_types[i].arch_name) +
 	  (strlen(serv_ptr->filebase)*2) + 8];
-	sprintf(tmpc, "%s/%s/%s.%d", CSA_types[i].arch_name,
+	sprintf(tmpc, "%s/%s/%s/%s.%d", tftpdbase,
+	  CSA_types[i].arch_name,
 	  serv_ptr->filebase, serv_ptr->filebase, layer);
 
 	return(tmpc);

And now here's a patch to tftpd I needed so it wouldn't croak... at the risk of making it less secure... prolly better use version 0.36, because 0.37 won't even configure on my system.

--- ./tftpd/tftpd.c.orig	2004-07-12 09:24:11.000000000 -0400
+++ ./tftpd/tftpd.c	2004-07-11 06:10:40.000000000 -0400
@@ -633,8 +633,8 @@
 #ifdef HAVE_INITGROUPS
   setrv = initgroups(user, pw->pw_gid);
   if ( setrv ) {
-    syslog(LOG_ERR, "cannot set groups for user %s", user);
-    exit(EX_OSERR);
+    syslog(LOG_ERR, "cannot set groups for user %s: %s", user, strerror(errno));
+    /* exit(EX_OSERR); */
   }
 #else
 #ifdef HAVE_SETGROUPS

These changes may turn out to be unnecessary and/or counterproductive once I solve other problems, but at least now they look like steps in the right direction. (PS - gendiff is your friend)

Back to blog or home page

last updated 2013-01-10 20:24:32. served from tektonic.jcomeau.com