summaryrefslogtreecommitdiff
path: root/src/tools/irm/irm_bind_ap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/irm/irm_bind_ap.c')
-rw-r--r--src/tools/irm/irm_bind_ap.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/tools/irm/irm_bind_ap.c b/src/tools/irm/irm_bind_ap.c
index b558f072..b83e30dd 100644
--- a/src/tools/irm/irm_bind_ap.c
+++ b/src/tools/irm/irm_bind_ap.c
@@ -21,8 +21,12 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#define _POSIX_C_SOURCE 200809L
+#define _XOPEN_SOURCE 500
+
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <ouroboros/irm.h>
#include <ouroboros/errno.h>
@@ -47,6 +51,7 @@ int do_bind_ap(int argc, char ** argv)
char * ap_name = NULL;
uint16_t flags = 0;
int ret = 0;
+ char * temp = NULL;
while (argc > 0) {
if (matches(*argv, "name") == 0) {
@@ -54,8 +59,11 @@ int do_bind_ap(int argc, char ** argv)
++argv;
--argc;
} else if (matches(*argv, "ap") == 0) {
- ap_name = *(argv + 1);
++argv;
+ temp = realpath(*argv, NULL);
+ if (temp != NULL)
+ *argv = temp;
+ ap_name = *argv;
--argc;
} else if (strcmp(*argv, "auto") == 0) {
flags |= BIND_AP_AUTO;
@@ -92,5 +100,8 @@ int do_bind_ap(int argc, char ** argv)
return -1;
}
+ if (temp != NULL)
+ free(temp);
+
return ret;
}