From 01c1abd3cc4b424fab4ec598a65a7b835fd32944 Mon Sep 17 00:00:00 2001 From: Jeremy Katz Date: Fri, 28 May 2004 19:13:52 +0000 Subject: add set_managed --- isys/wireless.c | 18 ++++++++++++++++++ isys/wireless.h | 1 + 2 files changed, 19 insertions(+) (limited to 'isys') diff --git a/isys/wireless.c b/isys/wireless.c index 231dc5774..becf4c303 100644 --- a/isys/wireless.c +++ b/isys/wireless.c @@ -215,6 +215,24 @@ int set_wep_key(char * ifname, char * key) { return 0; } +enum { MODE_AUTO, MODE_ADHOC, MODE_MANAGED, MODE_MASTER, MODE_REPEATER, + MODE_SECONDARY, MODE_MONITOR }; + +int set_managed(char * ifname) { + int sock = get_socket(); + struct iwreq wreq = get_wreq(ifname); + + wreq.u.mode = MODE_MANAGED; + int rc = ioctl(sock, SIOCSIWMODE, &wreq); + close(sock); + + if (rc < 0) { + fprintf(stderr, "failed to set wep key: %s\n", strerror(errno)); + return -1; + } + + return 0; +} #ifdef STANDALONE int main(int argc, char **argv) { diff --git a/isys/wireless.h b/isys/wireless.h index 99d1fe42f..01396c419 100644 --- a/isys/wireless.h +++ b/isys/wireless.h @@ -5,5 +5,6 @@ int is_wireless_interface(char * ifname); int set_essid(char * ifname, char * essid); char * get_essid(char * ifname); int set_wep_key(char * ifname, char * key); +int set_managed(char * ifname); #endif -- cgit