version 1.1.1.1, 2019/10/21 14:25:31
|
version 1.1.1.3, 2023/09/27 11:18:58
|
Line 11
|
Line 11
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
GNU General Public License for more details. |
|
|
You should have received a copy of the GNU General Public License | You should have received a copy of the GNU General Public License along |
along with this program; if not, write to the Free Software | with this program; if not, write to the Free Software Foundation, Inc., |
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
*/ |
*/ |
|
|
#include "config.h" |
#include "config.h" |
Line 193 static char *split_txtrec(
|
Line 193 static char *split_txtrec(
|
if (i > ctl->ipinfo_max) |
if (i > ctl->ipinfo_max) |
ctl->ipinfo_max = i; |
ctl->ipinfo_max = i; |
if (ctl->ipinfo_no >= i) { |
if (ctl->ipinfo_no >= i) { |
if (ctl->ipinfo_no >= ctl->ipinfo_max) |
|
ctl->ipinfo_no = 0; |
|
return (*items)[0]; |
return (*items)[0]; |
} else |
} else |
return (*items)[ctl->ipinfo_no]; |
return (*items)[ctl->ipinfo_no]; |
Line 209 static void reverse_host6(
|
Line 207 static void reverse_host6(
|
{ |
{ |
int i; |
int i; |
char *b = buff; |
char *b = buff; |
for (i = (sizeof(*addr) / 2 - 1); i >= 0; i--, b += 4) /* 64b portion */ | // We need to process the top 64 bits, or 8 bytes. |
| for (i = 8-1; i >= 0; i--, b += 4, buff_length -= 4) |
snprintf(b, buff_length, |
snprintf(b, buff_length, |
"%x.%x.", addr->s6_addr[i] & 0xf, addr->s6_addr[i] >> 4); |
"%x.%x.", addr->s6_addr[i] & 0xf, addr->s6_addr[i] >> 4); |
| *--b = 0; |
buff[strlen(buff) - 1] = '\0'; | |
} |
} |
#endif |
#endif |
|
|
Line 309 char *fmt_ipinfo(
|
Line 307 char *fmt_ipinfo(
|
int is_printii( |
int is_printii( |
struct mtr_ctl *ctl) |
struct mtr_ctl *ctl) |
{ |
{ |
return ((ctl->ipinfo_no >= 0) && (ctl->ipinfo_no != ctl->ipinfo_max)); | return (ctl->ipinfo_no >= 0); |
} |
} |
|
|
void asn_open( |
void asn_open( |
struct mtr_ctl *ctl) |
struct mtr_ctl *ctl) |
{ |
{ |
if (ctl->ipinfo_no >= 0) { | DEB_syslog(LOG_INFO, "hcreate(%d)", IIHASH_HI); |
DEB_syslog(LOG_INFO, "hcreate(%d)", IIHASH_HI); | if (!(iihash = hcreate(IIHASH_HI))) |
if (!(iihash = hcreate(IIHASH_HI))) | error(0, errno, "ipinfo hash"); |
error(0, errno, "ipinfo hash"); | |
} | |
} |
} |
|
|
void asn_close( |
void asn_close( |
struct mtr_ctl *ctl) |
struct mtr_ctl *ctl) |
{ |
{ |
if ((ctl->ipinfo_no >= 0) && iihash) { | if (iihash) { |
DEB_syslog(LOG_INFO, "hdestroy()"); |
DEB_syslog(LOG_INFO, "hdestroy()"); |
hdestroy(); |
hdestroy(); |
iihash = 0; |
iihash = 0; |