Configurator now shuts net drivers off by itself before loading a new driver
diff --git a/contiki-c64/apps/config.c b/contiki-c64/apps/config.c
index 5db136a..bf99191 100644
--- a/contiki-c64/apps/config.c
+++ b/contiki-c64/apps/config.c
@@ -31,7 +31,7 @@
*
* This file is part of the Contiki desktop OS.
*
- * $Id: config.c,v 1.3 2003/08/12 21:06:41 adamdunkels Exp $
+ * $Id: config.c,v 1.4 2003/08/20 19:51:00 adamdunkels Exp $
*
*/
@@ -43,6 +43,8 @@
#include "uip_arp.h"
#include "resolv.h"
+#include "uip-signal.h"
+
struct ptentry {
char c;
char * (* pfunc)(char *str);
@@ -102,6 +104,12 @@
/* Replace newline with a null char. */
*nt = 0;
+ /* Remove trailing spaces. */
+ while(nt > str && *(nt - 1) == ' ') {
+ *(nt - 1) = 0;
+ --nt;
+ }
+
/* Return pointer to null char. */
return nt;
}
@@ -120,6 +128,23 @@
}
/*-----------------------------------------------------------------------------------*/
static char *
+loaddriver(char *str)
+{
+ char *nt;
+
+ nt = nullterminate(str);
+
+ /* Uninstall old driver. */
+ dispatcher_emit(uip_signal_uninstall, NULL,
+ DISPATCHER_BROADCAST);
+
+ /* Call loader function. */
+ program_handler_load(str);
+
+ return nt + 1;
+}
+/*-----------------------------------------------------------------------------------*/
+static char *
screensaverconf(char *str)
{
char *nt;
@@ -184,12 +209,11 @@
}
/*-----------------------------------------------------------------------------------*/
static struct ptentry configparsetab[] =
- {{'l', loadfile},
- {'m', loadfile},
+ {{'n', loaddriver},
{'t', loadfile},
{'s', screensaverconf},
{'i', ipaddrconf},
- {'n', netmaskconf},
+ {'m', netmaskconf},
{'r', drconf},
{'d', dnsconf},
{'#', skipnewline},