[PATCH v2 07/13] utils/common: add str_token function
Ilan Peer
ilan.peer
Wed Oct 22 05:03:58 PDT 2014
From: Eliad Peller <eliad at wizery.com>
Add helper function to get next token from a string.
Signed-off-by: Eliad Peller <eliadx.peller at intel.com>
---
src/utils/common.c | 32 ++++++++++++++++++++++++++++++++
src/utils/common.h | 1 +
2 files changed, 33 insertions(+)
diff --git a/src/utils/common.c b/src/utils/common.c
index 9902004..e19bd3e 100644
--- a/src/utils/common.c
+++ b/src/utils/common.c
@@ -866,3 +866,35 @@ int random_mac_addr_keep_oui(u8 *addr)
addr[0] |= 0x02; /* locally administered */
return 0;
}
+
+
+/**
+ * str_token - get next token from string
+ * @buf: string to tokenize. Note that the string might be modified.
+ * @delim: string of delimiters
+ * @context: pointer to save our context. should be initialized with
+ * NULL on the first call, and passed for any further call.
+ * Returns: The next token, NULL if there are no more valid tokens.
+ */
+char *str_token(char *str, const char *delim, char **context)
+{
+ char *end, *pos = str;
+
+ if (*context)
+ pos = *context;
+
+ while (*pos && os_strchr(delim, *pos))
+ pos++;
+ if (!*pos)
+ return NULL;
+
+ end = pos + 1;
+ while (*end && !os_strchr(delim, *end))
+ end++;
+
+ if (*end)
+ *end++ = '\0';
+
+ *context = end;
+ return pos;
+}
diff --git a/src/utils/common.h b/src/utils/common.h
index 14d9ad1..b245244 100644
--- a/src/utils/common.h
+++ b/src/utils/common.h
@@ -534,6 +534,7 @@ void int_array_add_unique(int **res, int a);
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
+char *str_token(char *str, const char *delim, char **context);
void str_clear_free(char *str);
void bin_clear_free(void *bin, size_t len);
--
1.8.3.2
More information about the Hostap
mailing list