You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by pi...@apache.org on 2001/07/15 10:40:59 UTC

cvs commit: jakarta-tomcat-connectors/webapp/java .cvsignore WarpConfigurationHandler.java WarpConnection.java WarpPacket.java

pier        01/07/15 01:40:59

  Modified:    webapp/java .cvsignore WarpConfigurationHandler.java
                        WarpConnection.java WarpPacket.java
  Log:
  Modified WARP/0.9 protocol.
  
  Revision  Changes    Path
  1.3       +1 -0      jakarta-tomcat-connectors/webapp/java/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/webapp/java/.cvsignore,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- .cvsignore	2001/07/13 02:33:23	1.2
  +++ .cvsignore	2001/07/15 08:40:58	1.3
  @@ -1,4 +1,5 @@
   .DS_Store
  +Constants.java
   Makefile
   org
   warp.jar
  
  
  
  1.5       +10 -0     jakarta-tomcat-connectors/webapp/java/WarpConfigurationHandler.java
  
  Index: WarpConfigurationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/webapp/java/WarpConfigurationHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- WarpConfigurationHandler.java	2001/07/13 03:05:22	1.4
  +++ WarpConfigurationHandler.java	2001/07/15 08:40:58	1.5
  @@ -78,6 +78,16 @@
           packet.writeUnsignedShort(Constants.VERS_MINOR);
           packet.writeInteger(-1);
           connection.send(packet);
  +        
  +        connection.recv(packet);
  +        String appl=packet.readString();
  +        String host=packet.readString();
  +        int port=packet.readUnsignedShort();
  +        String path=packet.readString();
  +        
  +        if (Constants.DEBUG)
  +            connection.getConnector().debug(this,"Deploying application \""+appl+
  +                "\" under \"http://"+host+":"+port+path);
   
           return(true);
           //while (true) {
  
  
  
  1.13      +35 -4     jakarta-tomcat-connectors/webapp/java/WarpConnection.java
  
  Index: WarpConnection.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/webapp/java/WarpConnection.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- WarpConnection.java	2001/07/13 03:05:23	1.12
  +++ WarpConnection.java	2001/07/15 08:40:58	1.13
  @@ -201,10 +201,11 @@
        */
       public void send(WarpPacket packet)
       throws IOException {
  -        if (Constants.DEBUG)
  -            this.getConnector().debug(this,"Sending packet TYPE="+
  -                                      packet.getType()+" LENGTH="+
  -                                      packet.size);
  +        if (Constants.DEBUG) {
  +            this.getConnector().debug(this,">> TYPE="+packet.getType()+
  +                                           " LENGTH="+packet.size);
  +            this.getConnector().debug(this,">> "+packet.dump());
  +        }
   
           this.output.write(packet.getType()&0x0ff);
           this.output.write((packet.size>>8)&0x0ff);
  @@ -217,5 +218,35 @@
       /**
        * Receive a WARP packet over this connection.
        */
  +    public void recv(WarpPacket packet)
  +    throws IOException {
  +        int t=this.input.read();
  +        int l1=this.input.read();
  +        int l2=this.input.read();
   
  +        if ((t|l1|l2)==-1)
  +            throw new IOException("Premature packet header end");
  +
  +        packet.reset();
  +        packet.setType(t&0x0ff);
  +        packet.size=(( l1 & 0x0ff ) << 8) | ( l2 & 0x0ff );
  +
  +        if (packet.size>0) {
  +            int off=0;
  +            int ret=0;
  +            while (true) {
  +                ret=this.input.read(packet.buffer,off,packet.size-off);
  +                if (ret==-1) 
  +                    throw new IOException("Premature packet payload end");
  +                off+=ret;
  +                if(off==packet.size) break;
  +            }
  +        }
  +            
  +        if (Constants.DEBUG) {
  +            this.getConnector().debug(this,"<< TYPE="+packet.getType()+
  +                                           " LENGTH="+packet.size);
  +            this.getConnector().debug(this,"<< "+packet.dump());
  +        }
  +    }
   }
  
  
  
  1.11      +20 -1     jakarta-tomcat-connectors/webapp/java/WarpPacket.java
  
  Index: WarpPacket.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/webapp/java/WarpPacket.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- WarpPacket.java	2001/07/13 03:05:25	1.10
  +++ WarpPacket.java	2001/07/15 08:40:58	1.11
  @@ -218,9 +218,28 @@
       public String readString() {
           int length=this.readUnsignedShort();
           try {
  -            return(new String(this.buffer,this.pointer,length,"UTF-8"));
  +            String ret=new String(this.buffer,this.pointer,length,"UTF-8");
  +            this.pointer+=length;
  +            return(ret);
           } catch (UnsupportedEncodingException s) {
               throw new RuntimeException("Unsupported encoding UTF-8");
           }
  +    }
  +    
  +    public String dump() {
  +        StringBuffer buf=new StringBuffer("DATA=");
  +        for (int x=0; x<this.size; x++) {
  +            if ((this.buffer[x]>32)&&(this.buffer[x]<127)) {
  +                buf.append((char)this.buffer[x]);
  +            } else {
  +                buf.append("0x");
  +                String digit=Integer.toHexString((int)this.buffer[x]);
  +                if (digit.length()<2) buf.append('0');
  +                if (digit.length()>2) digit=digit.substring(digit.length()-2);
  +                buf.append(digit);
  +            }
  +            buf.append(" ");
  +        }
  +        return(buf.toString());
       }
   }