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());
}
}