Replace whois by jwhois.
[ipfire-2.x.git] / src / patches / jwhois-4.0-idna.patch
1 diff -up jwhois-4.0/src/jwhois.c.orig jwhois-4.0/src/jwhois.c
2 --- jwhois-4.0/src/jwhois.c.orig        2007-06-26 08:59:35.000000000 +0200
3 +++ jwhois-4.0/src/jwhois.c     2011-05-24 12:29:37.398892451 +0200
4 @@ -98,7 +98,7 @@ main(int argc, char **argv)
5  
6    /* Parse remaining arguments and place them into the wq
7       structure. */
8 -  while (optind < argc)
9 +  while (optind < argc-1)
10      {
11        count += strlen(argv[optind])+1;
12        if (!qstring)
13 @@ -116,19 +116,25 @@ main(int argc, char **argv)
14        strcat(qstring, " ");
15        optind++;
16      }
17 -  qstring[strlen(qstring)-1] = '\0';
18  #ifdef LIBIDN
19 -  rc = idna_to_ascii_lz(qstring, &idn, 0);
20 +  rc = idna_to_ascii_lz(argv[optind], &idn, 0);
21    if (rc != IDNA_SUCCESS)
22      {
23 -      printf("[IDN encoding of '%s' failed with error code %d]\n", qstring, rc);
24 +      printf("[IDN encoding of '%s' failed with error code %d]\n", argv[optind], rc);
25        exit(1);
26      }
27 -  wq.query = strdup(idn);
28 +  qstring = realloc(qstring, count+strlen(idn)+1);
29 +  memcpy(qstring+count,
30 +         idn,
31 +         strlen(idn)+1);
32    free(idn);
33  #else
34 -  wq.query = qstring;
35 +  qstring = realloc(qstring, count+strlen(argv[optind])+1);
36 +  memcpy(qstring+count,
37 +         argv[optind],
38 +         strlen(argv[optind])+1);
39  #endif
40 +  wq.query = qstring;
41  
42    if (ghost)
43      {