Add net_utils.c module with str2mac & str2addr helper functions.
Signed-off-by: Vadim Kochan <[email protected]>
---
net_utils.c | 41 +++++++++++++++++++++++++++++++++++++++++
net_utils.h | 7 +++++++
2 files changed, 48 insertions(+)
create mode 100644 net_utils.c
create mode 100644 net_utils.h
diff --git a/net_utils.c b/net_utils.c
new file mode 100644
index 0000000..749199b
--- /dev/null
+++ b/net_utils.c
@@ -0,0 +1,41 @@
+/*
+ * netsniff-ng - the packet sniffing beast
+ * Subject to the GPL, version 2.
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+#include <arpa/inet.h>
+
+int str2mac(char *str, uint8_t *mac)
+{
+ int i, count;
+ unsigned int tmp[6];
+
+ if (!str)
+ return -1;
+
+ count = sscanf(str, "%02X:%02X:%02X:%02X:%02X:%02X",
+ &tmp[0], &tmp[1], &tmp[2], &tmp[3], &tmp[4], &tmp[5]);
+
+ if (count != 6)
+ count = sscanf(str, "%02x:%02x:%02x:%02x:%02x:%02x",
+ &tmp[0], &tmp[1], &tmp[2], &tmp[3], &tmp[4], &tmp[5]);
+
+ if (count != 6)
+ return -1;
+
+ for (i = 0; i < 6; i++)
+ mac[i] = (uint8_t)tmp[i];
+
+ return 0;
+}
+
+int str2addr(int af, const char *str, uint8_t *addr)
+{
+ if (inet_pton(af, str, addr))
+ return 0;
+
+ return -1;
+}
diff --git a/net_utils.h b/net_utils.h
new file mode 100644
index 0000000..5bd7b7e
--- /dev/null
+++ b/net_utils.h
@@ -0,0 +1,7 @@
+#ifndef NET_UTILS_I_H
+#define NET_UTILS_I_H
+
+int str2mac(char *str, uint8_t *mac);
+int str2addr(int af, const char *str, uint8_t *addr);
+
+#endif
--
2.4.2
--
You received this message because you are subscribed to the Google Groups
"netsniff-ng" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.