cvs commit: jakarta-tomcat-connectors/jni/native/src info.c network.c

2005-04-16 Thread mturk
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  ChangesPath
  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 -  1.2
  +++ Address.java  16 Apr 2005 15:46:36 -  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 -  1.2
  +++ Sockaddr.java 16 Apr 2005 15:46:36 -  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.c17 Jan 2005 07:21:13 -  1.2
  +++ info.c16 Apr 2005 15:46:36 -  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 -  1.9
  +++ network.c 16 Apr 2005 15:46:36 -  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)
  +  

cvs commit: jakarta-tomcat-connectors/jni/native/src info.c network.c

2005-04-16 Thread mturk
mturk   2005/04/16 09:45:13

  Modified:jni/examples/org/apache/tomcat/jni Echo.java
   jni/java/org/apache/tomcat/jni Address.java
   jni/native/src info.c network.c
  Log:
  Add Address.getInfo that creates the Sockaddr object.
  
  Revision  ChangesPath
  1.6   +12 -3 
jakarta-tomcat-connectors/jni/examples/org/apache/tomcat/jni/Echo.java
  
  Index: Echo.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jni/examples/org/apache/tomcat/jni/Echo.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Echo.java 16 Apr 2005 15:47:42 -  1.5
  +++ Echo.java 16 Apr 2005 16:45:13 -  1.6
  @@ -75,6 +75,14 @@
  pool);
   serverSock = Socket.create(Socket.APR_INET, 
Socket.SOCK_STREAM,
  Socket.APR_PROTO_TCP, pool);
  +long sa = Address.get(Socket.APR_LOCAL, serverSock);
  +Sockaddr addr = new Sockaddr();
  +if (Address.fill(addr, sa)) {
  +System.out.println(Host:  + addr.hostname);
  +System.out.println(Server:  + addr.servname);
  +System.out.println(IP:  + Address.getip(sa) +
  +   : + addr.port);
  +}   
   Socket.bind(serverSock, inetAddress);
   Socket.listen(serverSock, 5);
   }
  @@ -90,11 +98,12 @@
   while (true) {
   long clientSock = Socket.accept(serverSock, pool);
   System.out.println(Accepted id:  +  i);
  +
   try {
   long sa = Address.get(Socket.APR_REMOTE, clientSock);
   Sockaddr addr = new Sockaddr();
   if (Address.fill(addr, sa)) {
  -System.out.println(Host:  + 
Address.getnameinfo(clientSock, 0));
  +System.out.println(Host:  + 
Address.getnameinfo(sa, 0));
   System.out.println(IP:  + Address.getip(sa) +
  : + addr.port);
   }
  @@ -102,7 +111,7 @@
   // Ignore
   e.printStackTrace();
   }
  -
  +
   Socket.timeoutSet(clientSock, 1000);
   Worker worker = new Worker(clientSock, i++,
  this.getClass().getName());
  
  
  
  1.4   +8 -2  
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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Address.java  16 Apr 2005 15:46:36 -  1.3
  +++ Address.java  16 Apr 2005 16:45:13 -  1.4
  @@ -26,13 +26,19 @@
   
   static public String APR_ANYADDR = 0.0.0.0;
   /**
  - * Fill the Address class from apr_sockaddr_t
  + * Fill the Sockaddr class from apr_sockaddr_t
* @param info Sockaddr class to fill
* @param sa Structure pointer
*/
   public static native boolean fill(Sockaddr info, long sa);
   
   /**
  + * Create the Sockaddr object from apr_sockaddr_t
  + * @param sa Structure pointer
  + */
  +public static native Sockaddr getInfo(long sa);
  +
  +/**
* Create apr_sockaddr_t from hostname, address family, and port.
* @param hostname The hostname or numeric address string to 
resolve/parse, or
*   NULL to build an address that corresponds to 0.0.0.0 or 
::
  
  
  
  1.4   +29 -0 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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- info.c16 Apr 2005 15:46:36 -  1.3
  +++ info.c16 Apr 2005 16:45:13 -  1.4
  @@ -291,3 +291,32 @@
   }
   return rv;
   }
  +
  +TCN_IMPLEMENT_CALL(jobject, Address, getInfo)(TCN_STDARGS, jlong info)
  +{
  +apr_sockaddr_t *i = J2P(info, apr_sockaddr_t *);
  +jclass aprSockaddrClass;
  +jmethodID constructorID = 0;
  +jobject sockaddrObj = NULL;
  +
  +UNREFERENCED(o);
  +
  +aprSockaddrClass = (*e)-FindClass(e, TCN_AINFO_CLASS);
  +if (aprSockaddrClass == NULL)
  +return NULL;
  +
  +/* Find the constructor ID */
  +constructorID =