dump.c
author viric@mandarina
Mon, 28 Apr 2008 21:37:16 +0200
changeset 89 2692e4742267
parent 85 4c5b551bb62e
permissions -rw-r--r--
Moving the utils from stdinmix to tm.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
53
07500c5c53cb Adding license and web html.
viric@llimona
parents: 44
diff changeset
     1
/*
07500c5c53cb Adding license and web html.
viric@llimona
parents: 44
diff changeset
     2
    Terminal Mixer - multi-point multi-user access to terminal applications
07500c5c53cb Adding license and web html.
viric@llimona
parents: 44
diff changeset
     3
    Copyright (C) 2007  LluĂ­s Batlle i Rossell
07500c5c53cb Adding license and web html.
viric@llimona
parents: 44
diff changeset
     4
07500c5c53cb Adding license and web html.
viric@llimona
parents: 44
diff changeset
     5
    Please find the license in the provided COPYING file.
07500c5c53cb Adding license and web html.
viric@llimona
parents: 44
diff changeset
     6
*/
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
     7
#include <stdio.h>
82
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
     8
#include <sys/select.h>
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
     9
#include <stdarg.h>
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    10
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    11
#include "main.h"
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    12
85
4c5b551bb62e Removing dump.
lbatlle@npdl268.bpo.hp.com
parents: 84
diff changeset
    13
int should_dump = 0;
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    14
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    15
void dump_line(const char *msg, ...)
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    16
{
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    17
    va_list v;
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    18
    FILE *f;
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    19
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    20
    if (!should_dump) return;
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    21
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    22
    va_start(v, msg);
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    23
    f = fopen("/tmp/dump.txt", "a");
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    24
    if (f == 0) return;
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    25
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    26
    vfprintf(f, msg, v);
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    27
    fclose(f);
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    28
}
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    29
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    30
void hex_dump(const char *head, const unsigned char *data, int len)
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    31
{
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    32
    int i;
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    33
    FILE *f;
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    34
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    35
    if (!should_dump) return;
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    37
    f = fopen("/tmp/dump.txt", "a");
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    38
    if (f == 0) return;
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    39
68
560d86d7dfc1 Prettier dumper
viric@mandarina
parents: 66
diff changeset
    40
    fprintf(f, "%s (%i): \"", head, len);
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    41
    for(i=0;i<len; ++i)
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    42
    {
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    43
        int c;
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    44
        c = data[i];
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    45
        if (c >= 32 && c <= 127)
68
560d86d7dfc1 Prettier dumper
viric@mandarina
parents: 66
diff changeset
    46
            fprintf(f, "%c", c);
69
c107ac7b3d29 Prettier dumper 2.
viric@mandarina
parents: 68
diff changeset
    47
        else if (c == 0x0a)
c107ac7b3d29 Prettier dumper 2.
viric@mandarina
parents: 68
diff changeset
    48
            fprintf(f, "\\n");
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    49
        else
68
560d86d7dfc1 Prettier dumper
viric@mandarina
parents: 66
diff changeset
    50
            fprintf(f, "\\x%02x", c);
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    51
    }
68
560d86d7dfc1 Prettier dumper
viric@mandarina
parents: 66
diff changeset
    52
    fprintf(f, "\"\n");
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    53
    fclose(f);
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents:
diff changeset
    54
}
82
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    55
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    56
void fdset_dump(fd_set *set, int maxfd)
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    57
{
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    58
  int i;
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    59
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    60
  fprintf(stderr, "fdset:");
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    61
  for (i=0; i <= maxfd; ++i)
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    62
    if (FD_ISSET(i, set))
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    63
      fprintf(stderr, " %i", i);
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    64
  fprintf(stderr, "\n");
5cbe47923060 Added a terminal-creation capability.
lbatlle@npdl268.bpo.hp.com
parents: 75
diff changeset
    65
}