From eda51617afb8d3f09105fd22682726057f23d94a Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sun, 23 Feb 2020 11:15:59 +0100 Subject: get mac address implementation --- src/linux/platform.c | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) (limited to 'src/linux/platform.c') diff --git a/src/linux/platform.c b/src/linux/platform.c index 4915138..eb3b8bf 100644 --- a/src/linux/platform.c +++ b/src/linux/platform.c @@ -22,6 +22,8 @@ #include #include #include +#include +#include #define GET_ATOM(X) window.X = XInternAtom(window.display, #X, False) @@ -1619,7 +1621,7 @@ bool platform_send_http_request(char *url, char *params, char *response_buffer) curl_easy_setopt(curl, CURLOPT_URL,fullurl); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); - curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L); + curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L); curl_easy_setopt(curl, CURLOPT_VERBOSE, 0L); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_cb); curl_easy_setopt(curl, CURLOPT_WRITEDATA, response_buffer); @@ -1631,6 +1633,36 @@ bool platform_send_http_request(char *url, char *params, char *response_buffer) bool platform_get_mac_address(char *buffer, s32 buf_size) { - string_copyn(buffer, "", buf_size); - return true; + struct ifaddrs *ifaddr=NULL; + struct ifaddrs *ifa = NULL; + int i = 0; + + if (getifaddrs(&ifaddr) == -1) + { + return false; + } + else + { + for ( ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) + { + if ( (ifa->ifa_addr) && (ifa->ifa_addr->sa_family == AF_PACKET) ) + { + struct sockaddr_ll *s = (struct sockaddr_ll*)ifa->ifa_addr; + for (i=0; i sll_halen; i++) + { + buffer += sprintf(buffer, "%02x", (s->sll_addr[i])); + + if (i+1!=s->sll_halen) + { + buffer += sprintf(buffer, "%c", '-'); + } + } + + freeifaddrs(ifaddr); + return true; + } + } + } + + return false; } \ No newline at end of file -- cgit v1.2.3-70-g09d2