/*
info.c -- Show information about a node, subnet or address
- Copyright (C) 2012-2013 Guus Sliepen <guus@tinc-vpn.org>
+ Copyright (C) 2012-2017 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
node_status_t status;
long int last_state_change;
- while(recvline(fd, line, sizeof line)) {
- int n = sscanf(line, "%d %d %s %s %s port %s %d %d %d %d %x %"PRIx32" %s %s %d %hd %hd %hd %ld", &code, &req, node, id, host, port, &cipher, &digest, &maclength, &compression, &options, &status_union.raw, nexthop, via, &distance, &pmtu, &minmtu, &maxmtu, &last_state_change);
+ while(recvline(fd, line, sizeof(line))) {
+ int n = sscanf(line, "%d %d %4095s %4095s %4095s port %4095s %d %d %d %d %x %"PRIx32" %4095s %4095s %d %hd %hd %hd %ld", &code, &req, node, id, host, port, &cipher, &digest, &maclength, &compression, &options, &status_union.raw, nexthop, via, &distance, &pmtu, &minmtu, &maxmtu, &last_state_change);
if(n == 2)
break;
return 1;
}
- while(recvline(fd, line, sizeof line)) {
- if(sscanf(line, "%d %d %s", &code, &req, node) == 2)
+ while(recvline(fd, line, sizeof(line))) {
+ if(sscanf(line, "%d %d %4095s", &code, &req, node) == 2)
break;
}
time_t lsc_time = last_state_change;
if(last_state_change)
- strftime(timestr, sizeof timestr, "%Y-%m-%d %H:%M:%S", localtime(&lsc_time));
+ strftime(timestr, sizeof(timestr), "%Y-%m-%d %H:%M:%S", localtime(&lsc_time));
status = status_union.bits;
// List edges
printf("Edges: ");
sendline(fd, "%d %d %s", CONTROL, REQ_DUMP_EDGES, item);
- while(recvline(fd, line, sizeof line)) {
- int n = sscanf(line, "%d %d %s %s", &code, &req, from, to);
+ while(recvline(fd, line, sizeof(line))) {
+ int n = sscanf(line, "%d %d %4095s %4095s", &code, &req, from, to);
if(n == 2)
break;
if(n != 4) {
// List subnets
printf("Subnets: ");
sendline(fd, "%d %d %s", CONTROL, REQ_DUMP_SUBNETS, item);
- while(recvline(fd, line, sizeof line)) {
- int n = sscanf(line, "%d %d %s %s", &code, &req, subnet, from);
+ while(recvline(fd, line, sizeof(line))) {
+ int n = sscanf(line, "%d %d %4095s %4095s", &code, &req, subnet, from);
if(n == 2)
break;
if(n != 4) {
int code, req;
sendline(fd, "%d %d %s", CONTROL, REQ_DUMP_SUBNETS, item);
- while(recvline(fd, line, sizeof line)) {
- int n = sscanf(line, "%d %d %s %s", &code, &req, netstr, owner);
+ while(recvline(fd, line, sizeof(line))) {
+ int n = sscanf(line, "%d %d %4095s %4095s", &code, &req, netstr, owner);
if(n == 2)
break;
} else {
if(find.net.ipv4.prefixlength != subnet.net.ipv4.prefixlength)
continue;
- if(memcmp(&find.net.ipv4.address, &subnet.net.ipv4.address, sizeof subnet.net.ipv4))
+ if(memcmp(&find.net.ipv4.address, &subnet.net.ipv4.address, sizeof(subnet.net.ipv4)))
continue;
}
} else if(find.type == SUBNET_IPV6) {
} else {
if(find.net.ipv6.prefixlength != subnet.net.ipv6.prefixlength)
continue;
- if(memcmp(&find.net.ipv6.address, &subnet.net.ipv6.address, sizeof subnet.net.ipv6))
+ if(memcmp(&find.net.ipv6.address, &subnet.net.ipv6.address, sizeof(subnet.net.ipv6)))
continue;
}
} if(find.type == SUBNET_MAC) {
- if(memcmp(&find.net.mac.address, &subnet.net.mac.address, sizeof subnet.net.mac))
+ if(memcmp(&find.net.mac.address, &subnet.net.mac.address, sizeof(subnet.net.mac)))
continue;
}