diff -Naur hostapd-0.4.9/ctrl_iface.c hostapd-0.4.9-patched/ctrl_iface.c
--- hostapd-0.4.9/ctrl_iface.c	2005-06-12 18:18:50.000000000 +0000
+++ hostapd-0.4.9-patched/ctrl_iface.c	2006-06-21 14:06:21.000000000 +0000
@@ -11,6 +11,8 @@
  * license.
  *
  * See README and COPYING for more details.
+ *
+ * 21/06/06 : addition of NEWSTA command (by A. Fenyo - alex@fenyo.net)
  */
 
 #include <stdlib.h>
@@ -35,6 +37,7 @@
 #include "ieee802_11.h"
 #include "ctrl_iface.h"
 #include "sta_info.h"
+#include "driver_wired.h"
 
 
 struct wpa_ctrl_dst {
@@ -211,7 +214,23 @@
 	memcpy(reply, "OK\n", 3);
 	reply_len = 3;
 
-	if (strcmp(buf, "PING") == 0) {
+	if (strncmp(buf, "NEWSTA ", 7) == 0) {
+	  u8 mac_address[6];
+	  unsigned int mac_address_int[6];
+
+	  wpa_printf(MSG_DEBUG, buf);
+	  if (sscanf(buf + 7, "%x:%x:%x:%x:%x:%x",
+		     mac_address_int, mac_address_int + 1,
+		     mac_address_int + 2, mac_address_int + 3,
+		     mac_address_int + 4, mac_address_int + 5) == 6) {
+	    int i;
+	    for (i = 0; i < 6; i++) mac_address[i] = mac_address_int[i];
+	    wired_possible_new_sta(hapd, mac_address);
+	  } else {
+	    memcpy(reply, "FORMAT ERROR\n", 13);
+	    reply_len = 13;
+	  }
+	} else if (strcmp(buf, "PING") == 0) {
 		memcpy(reply, "PONG\n", 5);
 		reply_len = 5;
 	} else if (strcmp(buf, "MIB") == 0) {
diff -Naur hostapd-0.4.9/driver_wired.c hostapd-0.4.9-patched/driver_wired.c
--- hostapd-0.4.9/driver_wired.c	2006-05-01 03:55:40.000000000 +0000
+++ hostapd-0.4.9-patched/driver_wired.c	2006-06-21 14:07:33.000000000 +0000
@@ -12,6 +12,8 @@
  * license.
  *
  * See README and COPYING for more details.
+ *
+ * 21/06/06 : addition of new_sta command (by A. Fenyo - alex@fenyo.net)
  */
 
 #include <stdlib.h>
@@ -84,7 +86,7 @@
 };
 
 
-static void wired_possible_new_sta(struct hostapd_data *hapd, u8 *addr)
+void wired_possible_new_sta(struct hostapd_data *hapd, u8 *addr)
 {
 	struct sta_info *sta;
 
diff -Naur hostapd-0.4.9/driver_wired.h hostapd-0.4.9-patched/driver_wired.h
--- hostapd-0.4.9/driver_wired.h	1970-01-01 00:00:00.000000000 +0000
+++ hostapd-0.4.9-patched/driver_wired.h	2006-06-21 14:08:31.000000000 +0000
@@ -0,0 +1,8 @@
+/* 21/06/06 : addition of this file (by A. Fenyo - alex@fenyo.net) */
+
+#ifndef DRIVER_WIRED_H
+#define DRIVER_WIRED_H
+
+void wired_possible_new_sta(struct hostapd_data *hapd, u8 *addr);
+
+#endif /* DRIVER_WIRED_H */
diff -Naur hostapd-0.4.9/hostapd_cli.c hostapd-0.4.9-patched/hostapd_cli.c
--- hostapd-0.4.9/hostapd_cli.c	2005-04-23 23:50:42.000000000 +0000
+++ hostapd-0.4.9-patched/hostapd_cli.c	2006-06-21 14:09:09.000000000 +0000
@@ -10,6 +10,8 @@
  * license.
  *
  * See README and COPYING for more details.
+ *
+ * 21/06/06 : addition of NEWSTA command (by A. Fenyo - alex@fenyo.net)
  */
 
 #include <stdlib.h>
@@ -83,7 +85,8 @@
 static const char *commands_help =
 "Commands:\n"
 "   mib                  get MIB variables (dot1x, dot11, radius)\n"
-"   sta <addr>           get MIB vatiables for one station\n"
+"   new_sta <addr>       new station to authenticate\n"
+"   sta <addr>           get MIB variables for one station\n"
 "   all_sta              get MIB variables for all stations\n"
 "   help                 show this usage help\n"
 "   interface [ifname]   show interfaces/select interface\n"
@@ -217,6 +220,18 @@
 	return wpa_ctrl_command(ctrl, buf);
 }
 
+static int hostapd_cli_cmd_new_sta(struct wpa_ctrl *ctrl, int argc, char *argv[])
+{
+	char buf[64];
+	if (argc != 1) {
+		printf("Invalid 'new_sta' command - exactly one argument, STA "
+		       "address, is required.\n");
+		return -1;
+	}
+	snprintf(buf, sizeof(buf), "NEWSTA %s", argv[0]);
+	return wpa_ctrl_command(ctrl, buf);
+}
+
 
 static int wpa_ctrl_command_sta(struct wpa_ctrl *ctrl, char *cmd,
 				char *addr, size_t addr_len)
@@ -370,6 +385,7 @@
 	{ "level", hostapd_cli_cmd_level },
 	{ "license", hostapd_cli_cmd_license },
 	{ "quit", hostapd_cli_cmd_quit },
+	{ "new_sta", hostapd_cli_cmd_new_sta },
 	{ NULL, NULL }
 };
 
diff -Naur hostapd-0.4.9/version.h hostapd-0.4.9-patched/version.h
--- hostapd-0.4.9/version.h	2006-05-07 04:05:39.000000000 +0000
+++ hostapd-0.4.9-patched/version.h	2006-06-21 14:15:10.000000000 +0000
@@ -1,6 +1,8 @@
+/* 21/06/06 : addition of this file (by A. Fenyo - alex@fenyo.net) */
+
 #ifndef VERSION_H
 #define VERSION_H
 
-#define VERSION_STR "0.4.9"
+#define VERSION_STR "0.4.9-newsta"
 
 #endif /* VERSION_H */
