#include <arpa/inet.h>
#include <string.h>
+#include "intl.h"
#include "utils.h"
+#include "net-support.h"
+#include "version.h"
+#include "pathnames.h"
char filter_dev[16];
int filter_family;
#define NEWADDR 1
#define DELADDR 2
+char *Release = RELEASE,
+ *Version = "ipmaddr 1.0",
+ *Signature = "Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>";
+
+static void version(void)
+{
+ printf("%s\n%s\n%s\n", Release, Version, Signature);
+ exit(E_VERSION);
+}
+
static void usage(void) __attribute__((noreturn));
static void usage(void)
{
- fprintf(stderr, "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n");
- fprintf(stderr, " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n");
+ fprintf(stderr, _("Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"));
+ fprintf(stderr, _(" ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"));
exit(-1);
}
void read_dev_mcast(struct ma_info **result_p)
{
char buf[256];
- FILE *fp = fopen("/proc/net/dev_mcast", "r");
+ FILE *fp = fopen(_PATH_PROCNET_DEV_MCAST, "r");
if (!fp)
return;
{
struct ma_info m;
char buf[256];
- FILE *fp = fopen("/proc/net/igmp", "r");
+ FILE *fp = fopen(_PATH_PROCNET_IGMP, "r");
if (!fp)
return;
void read_igmp6(struct ma_info **result_p)
{
char buf[256];
- FILE *fp = fopen("/proc/net/igmp6", "r");
+ FILE *fp = fopen(_PATH_PROCNET_IGMP6, "r");
if (!fp)
return;
fd = socket(AF_INET, SOCK_DGRAM, 0);
if (fd < 0) {
- perror("Cannot create socket");
+ perror(_("Cannot create socket"));
exit(1);
}
if (ioctl(fd, cmd, (char*)&ifr) != 0) {
++show_stats;
} else if (matches(argv[1], "-resolve") == 0) {
++resolve_hosts;
+ } else if (matches(argv[1], "-V") == 0) {
+ version();
} else
usage();
argc--; argv++;
#define _PATH_PROCNET_ARP "/proc/net/arp"
#define _PATH_PROCNET_AX25 "/proc/net/ax25"
#define _PATH_PROCNET_IPX "/proc/net/ipx"
-#define _PATH_PROCNET_IPX_ROUTE "/proc/net/ipx_route"
+#define _PATH_PROCNET_IPX_ROUTE "/proc/net/ipx_route"
#define _PATH_PROCNET_ATALK "/proc/net/appletalk"
#define _PATH_PROCNET_IP_BLK "/proc/net/ip_block"
#define _PATH_PROCNET_IP_FWD "/proc/net/ip_forward"
#define _PATH_PROCNET_RARP "/proc/net/rarp"
#define _PATH_ETHERS "/etc/ethers"
#define _PATH_PROCNET_ROSE_ROUTE "/proc/net/rose_routes"
+#define _PATH_PROCNET_DEV_MCAST "/proc/net/dev_mcast"
/* pathname for the netlink device */
#define _PATH_DEV_ROUTE "/dev/route"