Hello,
In svn of d-i has under /people/stappers/packages/netcfg/
a netcfg that does a DHCP request that can be identified
a request from netcfg.
At DHCP server side you have in /etc/dhcp3/dhcpd.conf lines like these:
if substring (option vendor-class-identifier, 0, 14) = "NetcfgDHClient" {
filename "proto://host.tld/newFileName"; }
else { filename "i386/pxelinux.0"; }
It is work in progress. The following patch is for your information.
ndex: debian/changelog
===================================================================
--- debian/changelog (.../trunk/packages/netcfg) (revision 30884)
+++ debian/changelog (.../people/stappers/packages/netcfg) (working
copy)
@@ -1,6 +1,9 @@
-netcfg (1.15) UNRELEASED; urgency=low
+netcfg (1.15.2) UNRELEASED; urgency=low
[ Geert Stappers ]
+ * Create dhclient config files.
+ So netcfg DHCP requests can be identified.
+
* Use the macro for the resolve file in dhcp.c
(patch by Torsten Landschoff from #328646).
Index: dhcp.c
===================================================================
--- dhcp.c (.../trunk/packages/netcfg) (revision 30884)
+++ dhcp.c (.../people/stappers/packages/netcfg) (working copy)
@@ -146,7 +146,7 @@
if (dhostname)
{
- if ((dc = file_open(DHCLIENT_CONF, "w")))
+ if ((dc = file_open(DHCLIENT_CONF, "a")))
{
fprintf(dc, "send host-name \"%s\";\n", dhostname);
fclose(dc);
@@ -161,7 +161,7 @@
if (dhostname)
{
- if ((dc = file_open(DHCLIENT3_CONF, "w")))
+ if ((dc = file_open(DHCLIENT3_CONF, "a")))
{
fprintf(dc, "send host-name \"%s\";\n", dhostname);
fclose(dc);
Index: netcfg-common.c
===================================================================
--- netcfg-common.c (.../trunk/packages/netcfg) (revision 30884)
+++ netcfg-common.c (.../people/stappers/packages/netcfg) (working
copy)
@@ -859,11 +859,24 @@
{
static char* remove[] =
{ INTERFACES_FILE, HOSTS_FILE, HOSTNAME_FILE, NETWORKS_FILE,
- RESOLV_FILE, DHCLIENT_CONF, DHCLIENT3_CONF, DOMAIN_FILE, 0 };
+ RESOLV_FILE, DOMAIN_FILE, 0 };
char **ptr = remove;
+ FILE *dc = NULL;
while (*ptr)
unlink(*ptr++);
+
+ if ((dc = file_open(DHCLIENT_CONF, "w")))
+ {
+ fprintf(dc, "send dhcp-class-identifier \"NetcfgDHClient\";\n" );
+ fclose(dc);
+ }
+
+ if ((dc = file_open(DHCLIENT3_CONF, "w")))
+ {
+ fprintf(dc, "send dhcp-class-identifier \"NetcfgDHClient\";\n" );
+ fclose(dc);
+ }
}
void netcfg_nameservers_to_array(char *nameservers, struct in_addr array[])
Looking forward for your comments
Geert Stappers
Attachment:
signature.asc
Description: Digital signature