Blame ui/raw.c

Packit b802ec
/*
Packit b802ec
    mtr  --  a network diagnostic tool
Packit b802ec
    Copyright (C) 1998  R.E.Wolff@BitWizard.nl
Packit b802ec
Packit b802ec
    raw.c -- raw output (for logging for later analysis)
Packit b802ec
Packit b802ec
    This program is free software; you can redistribute it and/or modify
Packit b802ec
    it under the terms of the GNU General Public License version 2 as 
Packit b802ec
    published by the Free Software Foundation.
Packit b802ec
Packit b802ec
    This program is distributed in the hope that it will be useful,
Packit b802ec
    but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit b802ec
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit b802ec
    GNU General Public License for more details.
Packit b802ec
Packit b802ec
    You should have received a copy of the GNU General Public License
Packit b802ec
    along with this program; if not, write to the Free Software
Packit b802ec
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Packit b802ec
*/
Packit b802ec
Packit b802ec
#include "config.h"
Packit b802ec
Packit b802ec
#include <ctype.h>
Packit b802ec
#include <stdlib.h>
Packit b802ec
#include <stdio.h>
Packit b802ec
#include <sys/types.h>
Packit b802ec
#include <sys/socket.h>
Packit b802ec
#include <netinet/in.h>
Packit b802ec
#include <arpa/inet.h>
Packit b802ec
Packit b802ec
#include "mtr.h"
Packit b802ec
#include "raw.h"
Packit b802ec
#include "net.h"
Packit b802ec
#include "dns.h"
Packit b802ec
Packit b802ec
Packit b802ec
/* Log an echo request, or a "ping" */
Packit b802ec
void raw_rawxmit(
Packit b802ec
    int host,
Packit b802ec
    int seq)
Packit b802ec
{
Packit b802ec
    printf("x %d %d\n", host, seq);
Packit b802ec
    fflush(stdout);
Packit b802ec
}
Packit b802ec
Packit b802ec
/* Log an echo reply, or a "pong" */
Packit b802ec
void raw_rawping(
Packit b802ec
    struct mtr_ctl *ctl,
Packit b802ec
    int host,
Packit b802ec
    int msec,
Packit b802ec
    int seq)
Packit b802ec
{
Packit b802ec
    static int havename[MaxHost];
Packit b802ec
    char *name;
Packit b802ec
Packit b802ec
    if (ctl->dns && !havename[host]) {
Packit b802ec
        name = dns_lookup2(ctl, net_addr(host));
Packit b802ec
        if (name) {
Packit b802ec
            havename[host]++;
Packit b802ec
            printf("d %d %s\n", host, name);
Packit b802ec
        }
Packit b802ec
    }
Packit b802ec
    printf("p %d %d %d\n", host, msec, seq);
Packit b802ec
    fflush(stdout);
Packit b802ec
}
Packit b802ec
Packit b802ec
Packit b802ec
void raw_rawhost(
Packit b802ec
    struct mtr_ctl *ctl,
Packit b802ec
    int host,
Packit b802ec
    ip_t * ip_addr)
Packit b802ec
{
Packit b802ec
    printf("h %d %s\n", host, strlongip(ctl, ip_addr));
Packit b802ec
    fflush(stdout);
Packit b802ec
}