mturk 2005/04/16 08:46:36 Modified: jni/java/org/apache/tomcat/jni Address.java Sockaddr.java jni/native/src info.c network.c Log: Add missing Address.getip -> apr_sockaddr_ip_get call and remove unneeded fields for Sockaddr. Revision Changes Path 1.3 +11 -1 jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Address.java Index: Address.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Address.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Address.java 14 Jan 2005 14:42:37 -0000 1.2 +++ Address.java 16 Apr 2005 15:46:36 -0000 1.3 @@ -24,6 +24,7 @@ public class Address { + static public String APR_ANYADDR = "0.0.0.0"; /** * Fill the Address class from apr_sockaddr_t * @param info Sockaddr class to fill @@ -65,6 +66,15 @@ */ public static native String getnameinfo(long sa, int flags); + /**
+ * Return the IP address (in numeric address string format) in + * an APR socket address. APR will allocate storage for the IP address + * string from the pool of the apr_sockaddr_t. + * @param ss The socket address to reference. + * @return The IP address. + */ + public static native String getip(long sa); + /** * Given an apr_sockaddr_t and a service name, set the port for the service * @param sockaddr The apr_sockaddr_t that will have its port set 1.3 +1 -11 jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Sockaddr.java Index: Sockaddr.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Sockaddr.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Sockaddr.java 14 Jan 2005 14:42:37 -0000 1.2 +++ Sockaddr.java 16 Apr 2005 15:46:36 -0000 1.3 @@ -34,16 +34,6 @@ public int port; /** The family */ public int family; - /** How big is the sockaddr we're using? */ - public int salen; - /** How big is the ip address structure we're using? */ - public int ipaddr_len; - /** How big should the address buffer be? 16 for v4 or 46 for v6 - * used in inet_ntop... */ - public int addr_str_len; - /** This points to the IP address structure within the appropriate - * sockaddr structure. */ - public long ipaddr_ptr; /** If multiple addresses were found by apr_sockaddr_info_get(), this * points to a representation of the next address. */ public long next; 1.3 +0 -12 jakarta-tomcat-connectors/jni/native/src/info.c Index: info.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/info.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- info.c 17 Jan 2005 07:21:13 -0000 1.2 +++ info.c 16 Apr 2005 15:46:36 -0000 1.3 @@ -115,10 +115,6 @@ DECLARE_AINFO_FIELD(servname); DECLARE_AINFO_FIELD(port); DECLARE_AINFO_FIELD(family); -DECLARE_AINFO_FIELD(salen); -DECLARE_AINFO_FIELD(ipaddr_len); -DECLARE_AINFO_FIELD(addr_str_len); -DECLARE_AINFO_FIELD(ipaddr_ptr); DECLARE_AINFO_FIELD(next); static int finfo_class_initialized = 0; @@ -173,10 +169,6 @@ GET_AINFO_S(servname); GET_AINFO_I(port); GET_AINFO_I(family); - GET_AINFO_I(salen); - GET_AINFO_I(ipaddr_len); - GET_AINFO_I(addr_str_len); - GET_AINFO_J(ipaddr_ptr); GET_AINFO_J(next); ainfo_class_initialized = 1; @@ -215,10 +207,6 @@ SET_AINFO_S(servname, info->servname); SET_AINFO_I(port, info->port); SET_AINFO_I(family, info->family); - SET_AINFO_I(salen, info->salen); - SET_AINFO_I(ipaddr_len, info->ipaddr_len); - SET_AINFO_I(addr_str_len, info->addr_str_len); - SET_AINFO_J(ipaddr_ptr, P2J(info->ipaddr_ptr)); SET_AINFO_J(next, P2J(info->next)); } 1.10 +12 -0 jakarta-tomcat-connectors/jni/native/src/network.c Index: network.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/network.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- network.c 16 Apr 2005 14:53:36 -0000 1.9 +++ network.c 16 Apr 2005 15:46:36 -0000 1.10 @@ -69,6 +69,18 @@ return NULL; } +TCN_IMPLEMENT_CALL(jstring, Address, getip)(TCN_STDARGS, jlong sa) +{ + apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *); + char *ipaddr; + + UNREFERENCED(o); + if (apr_sockaddr_ip_get(&ipaddr, s) == APR_SUCCESS) + return AJP_TO_JSTRING(ipaddr); + else + return NULL; +} + TCN_IMPLEMENT_CALL(jlong, Address, get)(TCN_STDARGS, jint which, jlong sock) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]