Branch oldpackages for 14.07
[14.07/packages.git] / mail / xmail / patches / 050-ctrlclnt_add_ipv6_support.patch
1 --- a/CTRLClient.cpp
2 +++ b/CTRLClient.cpp
3 @@ -53,7 +53,7 @@ struct CClnChannelCfg {
4  /* Needed by library functions ( START ) */
5  bool bServerDebug = false;
6  int iLogRotateHours = 24;
7 -int iAddrFamily = AF_INET;
8 +int iAddrFamily = SYS_INET64;
9  static char const * const pszCClnErrors[] = {
10         "Wrong command line usage",
11         "Either none or both private key and certificate file must be supplied"
12 @@ -349,7 +349,7 @@ int CClnLogError(int iError)
13  void CClnShowUsage(char const *pszProgName)
14  {
15         fprintf(stderr,
16 -               "use :  %s  [-snuptfSLcKCXHD]  ...\n"
17 +               "use :  %s  [-snuptfSLcKCXHD4657]  ...\n"
18                 "options :\n"
19                 "       -s server        = set server address\n"
20                 "       -n port          = set server port [%d]\n"
21 @@ -364,7 +364,11 @@ void CClnShowUsage(char const *pszProgNa
22                 "       -X filename      = set the SSL certificate-list file\n"
23                 "       -H dir           = set the SSL certificate-store directory\n"
24                 "       -c               = disable MD5 authentication\n"
25 -               "       -D               = enable debug\n",
26 +               "       -D               = enable debug\n"
27 +               "       -4               = connect only to IPv4 addresses\n"
28 +               "       -6               = connect only to IPv6 addresses\n"
29 +               "       -5               = prefer IPv4 addresses over IPv6 addresses\n"
30 +               "       -7               = prefer IPv6 addresses over IPv4 addresses\n",
31                 pszProgName, STD_CTRL_PORT, STD_CTRL_TIMEOUT);
32  }
33  
34 @@ -467,6 +471,22 @@ int CClnExec(int iArgCount, char *pszArg
35                         bServerDebug = true;
36                         break;
37  
38 +               case '4':
39 +                       iAddrFamily = AF_INET;
40 +                       break;
41 +
42 +               case '6':
43 +                       iAddrFamily = AF_INET6;
44 +                       break;
45 +
46 +               case '5':
47 +                       iAddrFamily = SYS_INET46;
48 +                       break;
49 +
50 +               case '7':
51 +                       iAddrFamily = SYS_INET64;
52 +                       break;
53 +
54                 default:
55                         return CCLN_ERR_BAD_USAGE;
56                 }