- Timestamp:
- 07/10/11 22:01:15 (13 years ago)
- Location:
- trunk/src/com/bowman/cardserv
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/com/bowman/cardserv/CamdNetMessage.java
r119 r188 127 127 } 128 128 129 public static CamdNetMessage parseCacheReq(DataInputStream dais ) throws IOException {129 public static CamdNetMessage parseCacheReq(DataInputStream dais, boolean extra) throws IOException { 130 130 CamdNetMessage msg = new CamdNetMessage(dais.readUnsignedByte()); 131 131 msg.setServiceId(dais.readUnsignedShort()); … … 134 134 msg.protocol = "Dummy"; 135 135 msg.dataHash = dais.readInt(); 136 if( dais.available() == 8) { // this is a request with arbitration set136 if(extra && dais.available() == 8) { // this is a request with arbitration set 137 137 msg.arbiterNumber = new Double(dais.readDouble()); 138 138 } … … 140 140 } 141 141 142 public static CamdNetMessage parseCacheRpl(DataInputStream dais, CamdNetMessage request ) throws IOException {142 public static CamdNetMessage parseCacheRpl(DataInputStream dais, CamdNetMessage request, boolean extra) throws IOException { 143 143 CamdNetMessage msg = new CamdNetMessage(dais.readUnsignedByte()); 144 144 msg.type = TYPE_RECEIVED; … … 154 154 msg.dataLength = 16; 155 155 try { 156 if( dais.available() > 0) msg.connectorName = dais.readUTF();156 if(extra && dais.available() > 0) msg.connectorName = dais.readUTF(); 157 157 } catch (EOFException e) { 158 158 } … … 236 236 } 237 237 238 public CamdNetMessage(int commandTag, int dataHash) { 239 this(); 240 this.commandTag = commandTag; 241 this.dataHash = dataHash; 242 this.dataLength = 0; 243 this.customData = new byte[0]; 244 this.stringData = new String[0]; 245 this.fixedData = new byte[10]; 246 this.type = TYPE_RECEIVED; 247 } 248 238 249 public int getCommandTag() { 239 250 return commandTag; -
trunk/src/com/bowman/cardserv/ClusteredCache.java
r187 r188 397 397 if(!hasPeers()) return; 398 398 try { 399 if(hideNames) {400 if(reply != null) {401 reply = new CamdNetMessage(reply);402 reply.setConnectorName(null);403 }404 }405 406 399 // 4 scenarios (type + tag + sid + onid + caid + hash + maybe arbiternr) 407 400 // - request with arbiternumber: 1 + 1 + 2 + 2 + 2 + 4 + 8 (type request) negotiation for lock … … 417 410 request.setArbiterNumber(null); 418 411 } 419 writeCacheReq(dos, request );420 if(reply != null) writeCacheRpl(dos, reply );412 writeCacheReq(dos, request, true); 413 if(reply != null) writeCacheRpl(dos, reply, !hideNames); 421 414 dos.close(); 422 415 byte[] buf = bos.toByteArray(); … … 437 430 private void reSendMessage(CamdNetMessage request, CamdNetMessage reply, CachePeer peer) { 438 431 try { 439 if(hideNames && reply.getConnectorName() != null) {440 reply = new CamdNetMessage(reply);441 reply.setConnectorName(null);442 }443 432 ByteArrayOutputStream bos = new ByteArrayOutputStream(); 444 433 DataOutputStream dos = new DataOutputStream(bos); 445 434 dos.writeByte(TYPE_REPLY); 446 435 request.setArbiterNumber(null); 447 writeCacheReq(dos, request );448 writeCacheRpl(dos, reply );436 writeCacheReq(dos, request, false); 437 writeCacheRpl(dos, reply, !hideNames); 449 438 dos.close(); 450 439 byte[] buf = bos.toByteArray(); … … 468 457 dos.writeByte(TYPE_RESENDREQ); 469 458 dos.writeInt(localPort); 470 request.setArbiterNumber(null); 471 writeCacheReq(dos, request); 459 writeCacheReq(dos, request, false); 472 460 dos.close(); 473 461 byte[] buf = bos.toByteArray(); … … 481 469 } 482 470 483 p rivate static void writeCacheReq(DataOutputStream dos, CamdNetMessage msg) throws IOException {471 public static void writeCacheReq(DataOutputStream dos, CamdNetMessage msg, boolean extra) throws IOException { 484 472 dos.writeByte(msg.getCommandTag()); 485 473 dos.writeShort(msg.getServiceId()); … … 487 475 dos.writeShort(msg.getCaId()); 488 476 dos.writeInt(msg.getDataHash()); 489 if( msg.getArbiterNumber() != null) dos.writeDouble(msg.getArbiterNumber().doubleValue());490 } 491 492 p rivate static void writeCacheRpl(DataOutputStream dos, CamdNetMessage msg) throws IOException {477 if(extra && msg.getArbiterNumber() != null) dos.writeDouble(msg.getArbiterNumber().doubleValue()); 478 } 479 480 public static void writeCacheRpl(DataOutputStream dos, CamdNetMessage msg, boolean extra) throws IOException { 493 481 dos.writeByte(msg.getCommandTag()); 494 482 if(!msg.isEmpty()) { 495 483 dos.write(msg.getCustomData()); 496 if( msg.getConnectorName() != null) dos.writeUTF(msg.getConnectorName());484 if(extra && msg.getConnectorName() != null) dos.writeUTF(msg.getConnectorName()); 497 485 } 498 486 } … … 588 576 receivedEntries++; 589 577 incrementReceived(packet.getAddress().getHostAddress()); 590 request = CamdNetMessage.parseCacheReq(dis );578 request = CamdNetMessage.parseCacheReq(dis, false); 591 579 request.setOriginAddress(packet.getAddress().getHostAddress()); 592 CamdNetMessage reply = CamdNetMessage.parseCacheRpl(dis, request );580 CamdNetMessage reply = CamdNetMessage.parseCacheRpl(dis, request, true); 593 581 reply.setOriginAddress(packet.getAddress().getHostAddress()); 594 582 if(reply.getConnectorName() != null) reply.setConnectorName("remote: " + reply.getConnectorName()); … … 600 588 601 589 case TYPE_REQUEST: 602 request = CamdNetMessage.parseCacheReq(dis );590 request = CamdNetMessage.parseCacheReq(dis, true); 603 591 request.setOriginAddress(packet.getAddress().getHostAddress()); 604 592 if(request.getArbiterNumber() != null) { … … 630 618 receivedResendReqs++; 631 619 port = dis.readInt(); 632 request = CamdNetMessage.parseCacheReq(dis );620 request = CamdNetMessage.parseCacheReq(dis, false); 633 621 CachePeer peer = new CachePeer(packet.getAddress(), port); 634 622 if(peerList.contains(peer)) {
Note:
See TracChangeset
for help on using the changeset viewer.