summaryrefslogtreecommitdiffstats
path: root/loader2/net.c
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2004-01-06 23:37:50 +0000
committerJeremy Katz <katzj@redhat.com>2004-01-06 23:37:50 +0000
commitc2705387272baa56829b9236ee095390119eb36a (patch)
tree93648fda09f6f1976bfbd1d7cb8a9440af4647ae /loader2/net.c
parenta417b6e2edac5605f284697460be59bc587b5b0d (diff)
downloadanaconda-c2705387272baa56829b9236ee095390119eb36a.tar.gz
anaconda-c2705387272baa56829b9236ee095390119eb36a.tar.xz
anaconda-c2705387272baa56829b9236ee095390119eb36a.zip
add dhcp class id support (#107946). requires pump >= 0.8.20
Diffstat (limited to 'loader2/net.c')
-rw-r--r--loader2/net.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/loader2/net.c b/loader2/net.c
index 3691cb81c..299010ab2 100644
--- a/loader2/net.c
+++ b/loader2/net.c
@@ -199,6 +199,8 @@ void printLoaderDataIPINFO(struct loaderData_s *loaderData) {
logMessage("loaderData->noDns = %d", loaderData->noDns);
logMessage("loaderData->netDev_set = %d", loaderData->netDev_set);
logMessage("loaderData->netDev = %s", loaderData->netDev);
+ logMessage("loaderData->netCls_set = %d", loaderData->netCls_set);
+ logMessage("loaderData->netCls = %s", loaderData->netCls);
}
/* given loader data from kickstart, populate network configuration struct */
@@ -234,7 +236,7 @@ void setupNetworkDeviceConfig(struct networkDeviceConfig * cfg,
if (!FL_TESTING(flags)) {
waitForLink(loaderData->netDev);
- chptr = pumpDhcpRun(loaderData->netDev, 0, 0, NULL, &cfg->dev, NULL);
+ chptr = pumpDhcpClassRun(loaderData->netDev, 0, 0, NULL, loaderData->netCls ? loaderData->netCls : "anaconda", &cfg->dev, NULL);
} else {
chptr = NULL;
}
@@ -346,7 +348,8 @@ void setupNetworkDeviceConfig(struct networkDeviceConfig * cfg,
cfg->noDns = loaderData->noDns;
}
-int readNetConfig(char * device, struct networkDeviceConfig * cfg, int flags) {
+int readNetConfig(char * device, struct networkDeviceConfig * cfg,
+ char * dhcpclass, int flags) {
newtComponent text, f, okay, back, answer, dhcpCheckbox;
newtGrid grid, subgrid, buttons;
struct networkDeviceConfig newCfg;
@@ -485,7 +488,7 @@ int readNetConfig(char * device, struct networkDeviceConfig * cfg, int flags) {
_("Sending request for IP information for %s..."),
device, 0);
waitForLink(device);
- chptr = pumpDhcpRun(device, 0, 0, NULL, &newCfg.dev, NULL);
+ chptr = pumpDhcpClassRun(device, 0, 0, NULL, dhcpclass ? dhcpclass : "anaconda", &newCfg.dev, NULL);
newtPopWindow();
} else {
chptr = NULL;
@@ -678,13 +681,14 @@ int findHostAndDomain(struct networkDeviceConfig * dev, int flags) {
void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
char ** argv, int * flagsPtr) {
- char * arg, * bootProto = NULL, * device = NULL, *ethtool = NULL;
+ char * arg, * bootProto = NULL, * device = NULL, *ethtool = NULL, * class = NULL;
int noDns = 0, rc;
poptContext optCon;
struct poptOption ksOptions[] = {
{ "bootproto", '\0', POPT_ARG_STRING, &bootProto, 0 },
{ "device", '\0', POPT_ARG_STRING, &device, 0 },
+ { "dhcpclass", '\0', POPT_ARG_STRING, &class, 0 },
{ "gateway", '\0', POPT_ARG_STRING, NULL, 'g' },
{ "ip", '\0', POPT_ARG_STRING, NULL, 'i' },
{ "nameserver", '\0', POPT_ARG_STRING, NULL, 'n' },
@@ -755,6 +759,11 @@ void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
loaderData->netDev_set = 1;
}
+ if (class) {
+ loaderData->netCls = strdup(class);
+ loaderData->netCls_set = 1;
+ }
+
if (ethtool) {
if (loaderData->ethtool)
free(loaderData->ethtool);
@@ -918,7 +927,8 @@ int kickstartNetworkUp(struct loaderData_s * loaderData,
setupNetworkDeviceConfig(netCfgPtr, loaderData, flags);
- rc = readNetConfig(loaderData->netDev, netCfgPtr, flags);
+ rc = readNetConfig(loaderData->netDev, netCfgPtr, loaderData->netCls,
+ flags);
if ((rc == LOADER_BACK) || (rc == LOADER_ERROR)) {
logMessage("unable to setup networking");
return -1;