FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Laptop

 
 
LinkBack Thread Tools
 
Old 04-06-2012, 01:50 PM
Vratislav Podzimek
 
Default Honour dhcptimeout set for NM in anaconda (#769145)

Ack.

--
Vratislav Podizmek

On Fri, 2012-04-06 at 14:28 +0200, Radek Vykydal wrote:
> Original patch for the BZ was incomplete - anaconda did set the
> timeout for NM but didn't use it when waiting for device activation.
>
> Related: rhbz#769145
> ---
> isys/iface.c | 10 +++++-----
> isys/iface.h | 2 +-
> loader/loader.c | 4 ++--
> loader/net.c | 13 +++++++------
> loader/net.h | 4 +++-
> 5 files changed, 18 insertions(+), 15 deletions(-)
>
> diff --git a/isys/iface.c b/isys/iface.c
> index db3027f..64a7663 100644
> --- a/isys/iface.c
> +++ b/isys/iface.c
> @@ -474,11 +474,11 @@ gboolean is_iface_activated(char * ifname) {
> /*
> * Wait for NetworkManager to appear on the system bus
> */
> -int wait_for_nm(void) {
> +int wait_for_nm(int seconds) {
> int count = 0;
>
> /* send message and block until a reply or error comes back */
> - while (count < 45) {
> + while (count < seconds) {
> if (is_nm_running())
> return 0;
>
> @@ -491,9 +491,9 @@ int wait_for_nm(void) {
>
> /*
> * Start NetworkManager -- requires that you have already written out the
> - * control files in /etc/sysconfig for the interface.
> + * control files in /etc/sysconfig for the interface. Timeout in seconds.
> */
> -int iface_start_NetworkManager(void) {
> +int iface_start_NetworkManager(int timeout) {
> pid_t pid;
>
> if (is_nm_running())
> @@ -520,7 +520,7 @@ int iface_start_NetworkManager(void) {
> } else if (pid == -1) {
> return 1;
> } else {
> - return wait_for_nm();
> + return wait_for_nm(timeout);
> }
>
> return 0;
> diff --git a/isys/iface.h b/isys/iface.h
> index 567f5ee..933ac84 100644
> --- a/isys/iface.h
> +++ b/isys/iface.h
> @@ -157,7 +157,7 @@ gboolean is_iface_activated(char * ifname);
> /*
> * Start NetworkManager
> */
> -int iface_start_NetworkManager(void);
> +int iface_start_NetworkManager(int timeout);
>
> /*
> * Set Maximum Transfer Unit (MTU) on specified interface
> diff --git a/loader/loader.c b/loader/loader.c
> index 0e6be44..3143449 100644
> --- a/loader/loader.c
> +++ b/loader/loader.c
> @@ -2073,7 +2073,7 @@ int main(int argc, char ** argv) {
> loaderData.method = -1;
> loaderData.fw_loader_pid = -1;
> loaderData.fw_search_pathz_len = -1;
> - loaderData.dhcpTimeout = 0;
> + loaderData.dhcpTimeout = NM_DHCP_TIMEOUT;
>
> extraArgs[0] = NULL;
> parseCmdLineFlags(&loaderData, cmdLine);
> @@ -2254,7 +2254,7 @@ int main(int argc, char ** argv) {
> #endif
>
> /* Start NetworkManager now so it's always available to talk to. */
> - if (iface_start_NetworkManager())
> + if (iface_start_NetworkManager(loaderData.dhcpTimeout ))
> logMessage(INFO, "failed to start NetworkManager");
>
> if (!FL_CMDLINE(flags))
> diff --git a/loader/net.c b/loader/net.c
> index af6c90c..14efbf0 100644
> --- a/loader/net.c
> +++ b/loader/net.c
> @@ -487,7 +487,7 @@ int readNetConfig(char * device, iface_t * iface,
> return LOADER_BACK;
> }
>
> - i = wait_for_iface_activation(iface->device);
> + i = wait_for_iface_activation(iface->device, iface->dhcptimeout);
> newtPopWindow();
>
> if (i > 0) {
> @@ -548,7 +548,7 @@ int readNetConfig(char * device, iface_t * iface,
> return LOADER_BACK;
> }
>
> - i = wait_for_iface_activation(iface->device);
> + i = wait_for_iface_activation(iface->device, iface->dhcptimeout);
> newtPopWindow();
>
> if (i > 0) {
> @@ -1585,7 +1585,7 @@ void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
> iface_t iface;
> gchar *bootProto = NULL, *device = NULL, *class = NULL, *ethtool = NULL;
> gchar *essid = NULL, *wepkey = NULL, *onboot = NULL, *gateway = NULL;
> - gint mtu = 1500, dhcpTimeout = 0;
> + gint mtu = 1500;
> gboolean noipv4 = FALSE, noipv6 = FALSE, noDns = FALSE, noksdev = FALSE, activate = FALSE, nodefroute=FALSE, firstnetdev=FALSE;
> GOptionContext *optCon = g_option_context_new(NULL);
> GError *optErr = NULL;
> @@ -1622,7 +1622,7 @@ void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
> { "activate", 0, 0, G_OPTION_ARG_NONE, &activate, NULL, NULL },
> { "firstnetdev", 0, 0, G_OPTION_ARG_NONE, &firstnetdev, NULL, NULL },
> { "nodefroute", 0, 0, G_OPTION_ARG_NONE, &nodefroute, NULL, NULL },
> - { "dhcptimeout", 0, 0, G_OPTION_ARG_INT, &dhcpTimeout, NULL, NULL },
> + { "dhcptimeout", 0, 0, G_OPTION_ARG_INT, &loaderData->dhcpTimeout, NULL, NULL },
> { NULL },
> };
>
> @@ -1650,6 +1650,7 @@ void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
> free(loaderData->wepkey);
> loaderData->wepkey = NULL;
> loaderData->mtu = 0;
> + loaderData->dhcpTimeout = NM_DHCP_TIMEOUT;
>
> #ifdef ENABLE_IPV6
> free(loaderData->ipv6);
> @@ -2237,7 +2238,7 @@ void splitHostname (char *str, char **host, char **port)
> /*
> * Wait for activation of iface by NetworkManager, return non-zero on error.
> */
> -int wait_for_iface_activation(char *ifname) {
> +int wait_for_iface_activation(char *ifname, int timeout) {
> int count = 0, i;
> NMClient *client = NULL;
> NMState state;
> @@ -2297,7 +2298,7 @@ int wait_for_iface_activation(char *ifname) {
> }
>
> /* send message and block until a reply or error comes back */
> - while (count < 45) {
> + while (count < timeout) {
> /* pump the loop again to clear the messages */
> while (g_main_context_pending (ctx)) {
> g_main_context_iteration (ctx, FALSE);
> diff --git a/loader/net.h b/loader/net.h
> index e23582a..a35dd5b 100644
> --- a/loader/net.h
> +++ b/loader/net.h
> @@ -34,6 +34,8 @@
> #define SYSCONFIG_PATH "/etc/sysconfig"
> #define NETWORK_SCRIPTS_PATH "/etc/sysconfig/network-scripts"
>
> +#define NM_DHCP_TIMEOUT 45
> +
> struct intfconfig_s {
> newtComponent ipv4Entry, cidr4Entry;
> newtComponent gwEntry, nsEntry;
> @@ -80,7 +82,7 @@ int activateDevice(struct loaderData_s * loaderData,
> iface_t * iface);
> int disconnectDevice(char *device);
> void splitHostname (char *str, char **host, char **port);
> -int wait_for_iface_activation(char * ifname);
> +int wait_for_iface_activation(char * ifname, int timeout);
> int wait_for_iface_disconnection(char *ifname);
> int isURLRemote(char *url);
> int split_ipv6addr_prefix_length(char *str, char **address, char **prefix);


_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 05:00 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org