Re: svn commit: r1585657 - /tomcat/jk/trunk/native/common/jk_connect.c

2014-04-10 Thread Konstantin Kolinko
2014-04-08 11:52 GMT+04:00  mt...@apache.org:
 Author: mturk
 Date: Tue Apr  8 07:52:56 2014
 New Revision: 1585657

 URL: http://svn.apache.org/r1585657
 Log:
 Use port when calling getaddrinfo and skip bogus addresses

 Modified:
 tomcat/jk/trunk/native/common/jk_connect.c

 Modified: tomcat/jk/trunk/native/common/jk_connect.c
 URL: 
 http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_connect.c?rev=1585657r1=1585656r2=1585657view=diff
 ==
 --- tomcat/jk/trunk/native/common/jk_connect.c (original)
 +++ tomcat/jk/trunk/native/common/jk_connect.c Tue Apr  8 07:52:56 2014
 @@ -430,6 +430,8 @@ int jk_resolve(const char *host, int por
   */
  struct addrinfo hints, *ai_list, *ai = NULL;
  int error;
 +char  pbuf[12];
 +char *pbufptr = NULL;

  memset(hints, 0, sizeof(hints));
  hints.ai_socktype = SOCK_STREAM;
 @@ -440,7 +442,11 @@ int jk_resolve(const char *host, int por
  else
  #endif
  hints.ai_family = JK_INET;
 -error = getaddrinfo(host, NULL, hints, ai_list);
 +if (port  0) {
 +snprintf(pbuf, port, sizeof(pbuf));
 +pbufptr = pbuf;
 +}
 +error = getaddrinfo(host, pbufptr, hints, ai_list);


The getaddrinfo method is called twice in this method. The above
modifies the first call.

Apply the same change to the second call, a few lines below?


Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1585657 - /tomcat/jk/trunk/native/common/jk_connect.c

2014-04-10 Thread Mladen Turk

On 04/10/2014 09:57 PM, Konstantin Kolinko wrote:

2014-04-08 11:52 GMT+04:00  mt...@apache.org:

Author: mturk
Date: Tue Apr  8 07:52:56 2014
New Revision: 1585657

URL: http://svn.apache.org/r1585657
Log:
Use port when calling getaddrinfo and skip bogus addresses

Modified:
 tomcat/jk/trunk/native/common/jk_connect.c

Modified: tomcat/jk/trunk/native/common/jk_connect.c
URL: 
http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_connect.c?rev=1585657r1=1585656r2=1585657view=diff
==
--- tomcat/jk/trunk/native/common/jk_connect.c (original)
+++ tomcat/jk/trunk/native/common/jk_connect.c Tue Apr  8 07:52:56 2014
@@ -430,6 +430,8 @@ int jk_resolve(const char *host, int por
   */
  struct addrinfo hints, *ai_list, *ai = NULL;
  int error;
+char  pbuf[12];
+char *pbufptr = NULL;

  memset(hints, 0, sizeof(hints));
  hints.ai_socktype = SOCK_STREAM;
@@ -440,7 +442,11 @@ int jk_resolve(const char *host, int por
  else
  #endif
  hints.ai_family = JK_INET;
-error = getaddrinfo(host, NULL, hints, ai_list);
+if (port  0) {
+snprintf(pbuf, port, sizeof(pbuf));
+pbufptr = pbuf;
+}
+error = getaddrinfo(host, pbufptr, hints, ai_list);



The getaddrinfo method is called twice in this method. The above
modifies the first call.

Apply the same change to the second call, a few lines below?



Hmm, yes, good catch.


Regards
--
^TM

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1585657 - /tomcat/jk/trunk/native/common/jk_connect.c

2014-04-08 Thread mturk
Author: mturk
Date: Tue Apr  8 07:52:56 2014
New Revision: 1585657

URL: http://svn.apache.org/r1585657
Log:
Use port when calling getaddrinfo and skip bogus addresses

Modified:
tomcat/jk/trunk/native/common/jk_connect.c

Modified: tomcat/jk/trunk/native/common/jk_connect.c
URL: 
http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_connect.c?rev=1585657r1=1585656r2=1585657view=diff
==
--- tomcat/jk/trunk/native/common/jk_connect.c (original)
+++ tomcat/jk/trunk/native/common/jk_connect.c Tue Apr  8 07:52:56 2014
@@ -430,6 +430,8 @@ int jk_resolve(const char *host, int por
  */
 struct addrinfo hints, *ai_list, *ai = NULL;
 int error;
+char  pbuf[12];
+char *pbufptr = NULL;
 
 memset(hints, 0, sizeof(hints));
 hints.ai_socktype = SOCK_STREAM;
@@ -440,7 +442,11 @@ int jk_resolve(const char *host, int por
 else
 #endif
 hints.ai_family = JK_INET;
-error = getaddrinfo(host, NULL, hints, ai_list);
+if (port  0) {
+snprintf(pbuf, port, sizeof(pbuf));
+pbufptr = pbuf;
+}
+error = getaddrinfo(host, pbufptr, hints, ai_list);
 #if JK_HAVE_IPV6
 /* XXX:
  * Is the check for EAI_FAMILY/WSAEAFNOSUPPORT correct
@@ -461,12 +467,13 @@ int jk_resolve(const char *host, int por
 ai = ai_list;
 while (ai) {
 if (ai-ai_family == AF_INET6) {
-family = JK_INET6;
-break;
-}
-else {
-ai = ai-ai_next;
+/* ignore elements without required address info */
+if((ai-ai_addr != NULL)  (ai-ai_addrlen  0)) {

+family = JK_INET6;
+break;
+}
 }
+ai = ai-ai_next;
 }
 }
 #endif
@@ -474,12 +481,13 @@ int jk_resolve(const char *host, int por
 ai = ai_list;
 while (ai) {
 if (ai-ai_family == AF_INET) {
-family = JK_INET;
-break;
-}
-else {
-ai = ai-ai_next;
+/* ignore elements without required address info */
+if((ai-ai_addr != NULL)  (ai-ai_addrlen  0)) {

+family = JK_INET;
+break;
+}
 }
+ai = ai-ai_next;
 }
 }
 if (ai == NULL) {



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org