summaryrefslogtreecommitdiff
path: root/src/mrl_utils.c
diff options
context:
space:
mode:
authorlijie <[email protected]>2018-12-10 10:25:03 +0800
committerlijie <[email protected]>2018-12-10 10:25:03 +0800
commitcac5c951f20640fa89e23adb55dec8d5ac66a5cc (patch)
tree6e9242cdd2b2a80464537d006212b9de27b159b0 /src/mrl_utils.c
parentd626a2162b0ba811f7e4c5bf253f33e5170b14c7 (diff)
修改部分配置文件选项;修改日志输出形式;修改nominee_key,从uint32_t修改为char *HEADv1.0.0master
Diffstat (limited to 'src/mrl_utils.c')
-rw-r--r--src/mrl_utils.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/mrl_utils.c b/src/mrl_utils.c
index 95d6eb2..6356a00 100644
--- a/src/mrl_utils.c
+++ b/src/mrl_utils.c
@@ -4,11 +4,46 @@
#include<ctype.h>
#include<time.h>
#include<errno.h>
+#include<net/if.h>
+#include <sys/ioctl.h>
+#include <unistd.h>
#include "mrl_utils.h"
#include "mrl_main.h"
extern struct mrl_global_instance mrl_instance;
+int mrl_inet_ntoa(uint32_t ip, char *dest)
+{
+ const char *_ip = inet_ntoa(*(struct in_addr *)&ip);
+ strncpy(dest, _ip, MRL_STR_IP_LEN);
+ return 0;
+}
+
+unsigned int mrl_get_ip_by_eth_name(const char *ifname)
+{
+ int sockfd;
+ struct ifreq ifr;
+ unsigned int ip;
+
+ sockfd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (-1 == sockfd) {
+ goto error;
+ }
+
+ strcpy(ifr.ifr_name,ifname);
+ if (ioctl(sockfd, SIOCGIFADDR, &ifr) < 0) {
+ goto error;
+ }
+
+ ip = ((struct sockaddr_in*)&(ifr.ifr_addr))->sin_addr.s_addr;
+ close(sockfd);
+ return ip;
+
+error:
+ close(sockfd);
+ return -1;
+}
+
/* ascii�ַ�ת16���� */
char mrl_ascii_to_hex(char ascii)
{