printf ("D1: %d (%c)\n", *(h+p), *(h+p));
hex2bin (char *h, int *len){  static char b[MAX_LINE];  const char hex[] = "0123456789abcdef0123456789ABCDEF";  u_int8_t c;  char *n;  int  p;  for (p = 0; p < strlen (h); p += 2)    {      n = strchr (hex, *(h + p));      if (!n)	{	  printf ("D1: %d (%c)\n", *(h+p), *(h+p));	  fprintf (stderr, "hex2bin: bad input data!\n");	  exit (1);	}      c = ((char)(n - hex) & 0xF) << 4;      n = strchr (hex, *(h + p + 1));      if (!n)	{	  printf ("D2: %d (%c)\n", *(h+p+1), *(h+p+1));	  fprintf (stderr, "hex2bin: bad input data!\n");	  exit (1);	}      c |= ((char)(n - hex)) & 0xF;      *(b + (p/2)) = (char)c;    }  *(b + (p/2)) = (char)0;  *len = p/2;  return b;}     