diff options
Diffstat (limited to 'src/net')
| -rw-r--r-- | src/net/cachedhcp.c | 78 | ||||
| -rw-r--r-- | src/net/udp/dhcp.c | 27 |
2 files changed, 1 insertions, 104 deletions
diff --git a/src/net/cachedhcp.c b/src/net/cachedhcp.c deleted file mode 100644 index fc7dabc90..000000000 --- a/src/net/cachedhcp.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2009 Joshua Oreman <oremanj@rwcr.net>. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - */ - -FILE_LICENCE ( GPL2_OR_LATER ); - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ipxe/dhcp.h> -#include <ipxe/dhcppkt.h> -#include <ipxe/netdevice.h> -#include <ipxe/iobuf.h> -#include <ipxe/uaccess.h> - -/** @file - * - * Cached DHCP packet handling - * - */ - -/** - * Store cached DHCPACK packet - * - * @v data User pointer to cached DHCP packet data - * @v len Length of cached DHCP packet data - * @ret rc Return status code - * - * This function should be called by the architecture-specific - * get_cached_dhcpack() handler. - */ -void store_cached_dhcpack ( userptr_t data, size_t len ) { - struct dhcp_packet *dhcppkt; - struct dhcphdr *dhcphdr; - struct settings *parent; - int rc; - - /* Create DHCP packet */ - dhcppkt = zalloc ( sizeof ( *dhcppkt ) + len ); - if ( ! dhcppkt ) - return; - - /* Fill in data for DHCP packet */ - dhcphdr = ( ( ( void * ) dhcppkt ) + sizeof ( * dhcppkt ) ); - copy_from_user ( dhcphdr, data, 0, len ); - dhcppkt_init ( dhcppkt, dhcphdr, len ); - DBG_HD ( dhcppkt->options.data, dhcppkt->options.used_len ); - - /* Register settings on the last opened network device. - * This will have the effect of registering cached settings - * with a network device when "dhcp netX" is performed for that - * device, which is usually what we want. - */ - parent = netdev_settings ( last_opened_netdev() ); - if ( ( rc = register_settings ( &dhcppkt->settings, parent, - DHCP_SETTINGS_NAME ) ) != 0 ) - DBG ( "DHCP could not register cached settings: %s\n", - strerror ( rc ) ); - - dhcppkt_put ( dhcppkt ); - - DBG ( "DHCP registered cached settings\n" ); -} diff --git a/src/net/udp/dhcp.c b/src/net/udp/dhcp.c index 762ae732a..be03096b6 100644 --- a/src/net/udp/dhcp.c +++ b/src/net/udp/dhcp.c @@ -107,14 +107,6 @@ struct setting user_class_setting __setting ( SETTING_HOST_EXTRA ) = { .type = &setting_type_string, }; -/** Use cached network settings */ -struct setting use_cached_setting __setting ( SETTING_MISC ) = { - .name = "use-cached", - .description = "Use cached settings", - .tag = DHCP_EB_USE_CACHED, - .type = &setting_type_uint8, -}; - /** * Most recent DHCP transaction ID * @@ -1285,37 +1277,20 @@ static struct sockaddr dhcp_peer = { }; /** - * Get cached DHCPACK where none exists - */ -__weak void get_cached_dhcpack ( void ) { __keepme } - -/** * Start DHCP state machine on a network device * * @v job Job control interface * @v netdev Network device - * @ret rc Return status code, or positive if cached + * @ret rc Return status code * * Starts DHCP on the specified network device. If successful, the * DHCPACK (and ProxyDHCPACK, if applicable) will be registered as * option sources. - * - * On a return of 0, a background job has been started to perform the - * DHCP request. Any nonzero return means the job has not been - * started; a positive return value indicates the success condition of - * having fetched the appropriate data from cached information. */ int start_dhcp ( struct interface *job, struct net_device *netdev ) { struct dhcp_session *dhcp; int rc; - /* Check for cached DHCP information */ - get_cached_dhcpack(); - if ( fetch_uintz_setting ( NULL, &use_cached_setting ) ) { - DBG ( "DHCP using cached network settings\n" ); - return 1; - } - /* Allocate and initialise structure */ dhcp = zalloc ( sizeof ( *dhcp ) ); if ( ! dhcp ) |
