Rename these functions to a better names:
socket_bind_to_iface() --> dev_bind_ifindex()
socket_bind_to_iface_by_name() --> dev_bind_ifname()
and move them into more appropriate file.
Signed-off-by: Vitezslav Samel <vitezslav(a)samel.cz>
---
src/detstats.c | 2 +-
src/hostmon.c | 2 +-
src/ifaces.c | 24 ++++++++++++++++++++++++
src/ifaces.h | 4 +++-
src/iptraf-ng-compat.h | 3 ---
src/itrafmon.c | 2 +-
src/pktsize.c | 2 +-
src/serv.c | 2 +-
src/wrapper.c | 24 ------------------------
9 files changed, 32 insertions(+), 33 deletions(-)
diff --git a/src/detstats.c b/src/detstats.c
index cf41d91..7d57d3c 100644
--- a/src/detstats.c
+++ b/src/detstats.c
@@ -418,7 +418,7 @@ void detstats(char *iface, const struct OPTIONS *options, time_t
facilitytime,
write_error("Unable to obtain monitoring socket");
goto err;
}
- if(socket_bind_to_iface_by_name(fd, iface) == -1) {
+ if(dev_bind_ifname(fd, iface) == -1) {
write_error("Unable to bind interface on the socket");
goto err_close;
}
diff --git a/src/hostmon.c b/src/hostmon.c
index 1e45e8b..60888f4 100644
--- a/src/hostmon.c
+++ b/src/hostmon.c
@@ -826,7 +826,7 @@ void hostmon(const struct OPTIONS *options, time_t facilitytime, char
*ifptr,
write_error("Unable to obtain monitoring socket");
goto err;
}
- if(ifptr && socket_bind_to_iface_by_name(fd, ifptr) == -1) {
+ if(ifptr && dev_bind_ifname(fd, ifptr) == -1) {
write_error("Unable to bind interface on the socket");
goto err_close;
}
diff --git a/src/ifaces.c b/src/ifaces.c
index f84a950..7b6846e 100644
--- a/src/ifaces.c
+++ b/src/ifaces.c
@@ -264,6 +264,30 @@ int iface_get_ifname(int ifindex, char *ifname)
return ir;
}
+int dev_bind_ifindex(const int fd, const int ifindex)
+{
+ struct sockaddr_ll fromaddr;
+ socklen_t addrlen = sizeof(fromaddr);
+
+ fromaddr.sll_family = AF_PACKET;
+ fromaddr.sll_protocol = htons(ETH_P_ALL);
+ fromaddr.sll_ifindex = ifindex;
+ return bind(fd, (struct sockaddr *) &fromaddr, addrlen);
+}
+
+int dev_bind_ifname(const int fd, const char const *ifname)
+{
+ int ir;
+ struct ifreq ifr;
+
+ strcpy(ifr.ifr_name, ifname);
+ ir = ioctl(fd, SIOCGIFINDEX, &ifr);
+ if(ir != 0)
+ return(ir);
+
+ return dev_bind_ifindex(fd, ifr.ifr_ifindex);
+}
+
void isdn_iface_check(int *fd, char *ifname)
{
if (*fd == -1) {
diff --git a/src/ifaces.h b/src/ifaces.h
index 1aa7627..618a2b9 100644
--- a/src/ifaces.h
+++ b/src/ifaces.h
@@ -11,6 +11,7 @@ ifaces.h - prototype declaration for interface support determination
FILE *open_procnetdev(void);
int get_next_iface(FILE * fd, char *ifname, int n);
int iface_up(char *iface);
+void err_iface_down(void);
int iface_get_ifindex(const char *iface);
int iface_get_mtu(const char *iface);
int iface_get_flags(const char *iface);
@@ -19,7 +20,8 @@ int iface_clear_flags(const char *iface, int flags);
int iface_set_promisc(char *ifname);
int iface_clear_promisc(char *ifname);
int iface_get_ifname(int ifindex, char *ifname);
-void err_iface_down(void);
+int dev_bind_ifindex(const int fd, const int ifindex);
+int dev_bind_ifname(const int fd, const char const *ifname);
void isdn_iface_check(int *fd, char *ifname);
char *gen_iface_msg(char *ifptr);
diff --git a/src/iptraf-ng-compat.h b/src/iptraf-ng-compat.h
index e86502f..d5fc3e7 100644
--- a/src/iptraf-ng-compat.h
+++ b/src/iptraf-ng-compat.h
@@ -95,9 +95,6 @@ extern char *xvasprintf(const char *format, va_list p);
extern void *xmallocz(size_t size);
extern char *xstrdup(const char *s);
-extern int socket_bind_to_iface(const int fd, const int ifindex);
-extern int socket_bind_to_iface_by_name(const int fd, const char const *ifname);
-
extern void die(const char *err, ...);
extern void die_errno(const char *err) __noreturn;
extern void error(const char *err, ...);
diff --git a/src/itrafmon.c b/src/itrafmon.c
index 82fc1f0..0e82517 100644
--- a/src/itrafmon.c
+++ b/src/itrafmon.c
@@ -738,7 +738,7 @@ void ipmon(struct OPTIONS *options, struct filterstate *ofilter,
write_error("Unable to obtain monitoring socket");
goto err;
}
- if(ifptr && socket_bind_to_iface_by_name(fd, ifptr) == -1) {
+ if(ifptr && dev_bind_ifname(fd, ifptr) == -1) {
write_error("Unable to bind interface on the socket");
goto err_close;
}
diff --git a/src/pktsize.c b/src/pktsize.c
index 1d40aa0..a800b37 100644
--- a/src/pktsize.c
+++ b/src/pktsize.c
@@ -262,7 +262,7 @@ void packet_size_breakdown(struct OPTIONS *options, char *ifname,
write_error("Unable to obtain monitoring socket");
goto err;
}
- if(socket_bind_to_iface_by_name(fd, ifname) == -1) {
+ if(dev_bind_ifname(fd, ifname) == -1) {
write_error("Unable to bind interface on the socket");
goto err_close;
}
diff --git a/src/serv.c b/src/serv.c
index 480d662..b326e90 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -881,7 +881,7 @@ void servmon(char *ifname, struct porttab *ports, const struct OPTIONS
*options,
write_error("Unable to obtain monitoring socket");
goto err;
}
- if(socket_bind_to_iface_by_name(fd, ifname) == -1) {
+ if(dev_bind_ifname(fd, ifname) == -1) {
write_error("Unable to bind interface on the socket");
goto err_close;
}
diff --git a/src/wrapper.c b/src/wrapper.c
index 7dc9395..0fee777 100644
--- a/src/wrapper.c
+++ b/src/wrapper.c
@@ -80,27 +80,3 @@ char *xstrdup(const char *s)
return t;
}
-
-int socket_bind_to_iface(const int fd, const int ifindex)
-{
- struct sockaddr_ll fromaddr;
- socklen_t addrlen = sizeof(fromaddr);
-
- fromaddr.sll_family = AF_PACKET;
- fromaddr.sll_protocol = htons(ETH_P_ALL);
- fromaddr.sll_ifindex = ifindex;
- return bind(fd, (struct sockaddr *) &fromaddr, addrlen);
-}
-
-int socket_bind_to_iface_by_name(const int fd, const char const *ifname)
-{
- int ir;
- struct ifreq ifr;
-
- strcpy(ifr.ifr_name, ifname);
- ir = ioctl(fd, SIOCGIFINDEX, &ifr);
- if(ir != 0)
- return(ir);
-
- return socket_bind_to_iface(fd, ifr.ifr_ifindex);
-}
--
1.7.8.4