public void run() { try { InputStream in; OutputStream out; try { in = sk.getInputStream(); out = sk.getOutputStream(); } catch (IOException e) { throw (new RuntimeException(e)); } while (true) { try { int len = Utils.int32d(read(in, 4), 0); if (!auth && (len > 256)) return; Message msg = new MessageBuf(read(in, len)); String cmd = msg.string(); Object[] args = msg.list(); Object[] reply; if (auth) { Command cc = commands.get(cmd); if (cc != null) reply = cc.run(this, args); else reply = new Object[] {"nocmd"}; } else { if (cmd.equals("nonce")) { reply = new Object[] {nonce}; } else if (cmd.equals("auth")) { if (Arrays.equals((byte[]) args[0], ckey)) { reply = new Object[] {"ok"}; auth = true; } else { reply = new Object[] {"no"}; } } else { return; } } MessageBuf rb = new MessageBuf(); rb.addlist(reply); byte[] rbuf = new byte[4 + rb.size()]; Utils.uint32e(rb.size(), rbuf, 0); rb.fin(rbuf, 4); out.write(rbuf); } catch (IOException e) { return; } } } catch (InterruptedException e) { } finally { try { sk.close(); } catch (IOException e) { throw (new RuntimeException(e)); } } }
private int compare(Revision a, Revision b) { if (Arrays.equals(a._id, b._id)) return 0; Version va = getVersion(a); Version vb = getVersion(b); int n = va.compareTo(vb); if (n != 0) return n; if (a.created != b.created) return a.created > b.created ? 1 : -1; for (int i = 0; i < a._id.length; i++) if (a._id[i] != b._id[i]) return a._id[i] > b._id[i] ? 1 : -1; return 0; }
/** Creates an Message through the advance createMessage() method and inspects its parameters. */ public void testCreateMessage2() { String body = "This is an IM coming from the tested implementation" + " on " + new Date().toString(); String contentType = "text/html"; String encoding = "UTF-16"; String subject = "test message"; net.java.sip.communicator.service.protocol.Message msg = opSetBasicIM.createMessage(body.getBytes(), contentType, encoding, subject); assertEquals("message body", body, msg.getContent()); assertTrue("message body bytes", Arrays.equals(body.getBytes(), msg.getRawData())); assertEquals("message length", body.length(), msg.getSize()); assertEquals("message content type", contentType, msg.getContentType()); assertEquals("message encoding", encoding, msg.getEncoding()); assertNotNull("message uid", msg.getMessageUID()); // a further test on message uid. net.java.sip.communicator.service.protocol.Message msg2 = opSetBasicIM.createMessage(body); assertFalse("message uid", msg.getMessageUID().equals(msg2.getMessageUID())); }
public String verify(JarFile jar, String... algorithms) throws IOException { if (algorithms == null || algorithms.length == 0) algorithms = new String[] {"MD5", "SHA"}; else if (algorithms.length == 1 && algorithms[0].equals("-")) return null; try { Manifest m = jar.getManifest(); if (m.getEntries().isEmpty()) return "No name sections"; for (Enumeration<JarEntry> e = jar.entries(); e.hasMoreElements(); ) { JarEntry je = e.nextElement(); if (MANIFEST_ENTRY.matcher(je.getName()).matches()) continue; Attributes nameSection = m.getAttributes(je.getName()); if (nameSection == null) return "No name section for " + je.getName(); for (String algorithm : algorithms) { try { MessageDigest md = MessageDigest.getInstance(algorithm); String expected = nameSection.getValue(algorithm + "-Digest"); if (expected != null) { byte digest[] = Base64.decodeBase64(expected); copy(jar.getInputStream(je), md); if (!Arrays.equals(digest, md.digest())) return "Invalid digest for " + je.getName() + ", " + expected + " != " + Base64.encodeBase64(md.digest()); } else reporter.error("could not find digest for " + algorithm + "-Digest"); } catch (NoSuchAlgorithmException nsae) { return "Missing digest algorithm " + algorithm; } } } } catch (Exception e) { return "Failed to verify due to exception: " + e.getMessage(); } return null; }
/** Creates an Message through the simple createMessage() method and inspects its parameters. */ public void testCreateMessage1() { String body = "This is an IM coming from the tested implementation" + " on " + new Date().toString(); net.java.sip.communicator.service.protocol.Message msg = opSetBasicIM.createMessage(body); assertEquals("message body", body, msg.getContent()); assertTrue("message body bytes", Arrays.equals(body.getBytes(), msg.getRawData())); assertEquals("message length", body.length(), msg.getSize()); assertEquals( "message content type", OperationSetBasicInstantMessaging.DEFAULT_MIME_TYPE, msg.getContentType()); assertEquals( "message encoding", OperationSetBasicInstantMessaging.DEFAULT_MIME_ENCODING, msg.getEncoding()); assertNotNull("message uid", msg.getMessageUID()); // a further test on message uid. net.java.sip.communicator.service.protocol.Message msg2 = opSetBasicIM.createMessage(body); assertFalse("message uid", msg.getMessageUID().equals(msg2.getMessageUID())); }
/** * Test the converter. * * @throws URISyntaxException */ public static void testConverter() throws URISyntaxException { { // Test collections as value TestReturnTypes trt = set(TestReturnTypes.class, Arrays.asList(55)); assertTrue(Arrays.equals(new boolean[] {true}, trt.rpaBoolean())); assertTrue(Arrays.equals(new byte[] {55}, trt.rpaByte())); assertTrue(Arrays.equals(new short[] {55}, trt.rpaShort())); assertTrue(Arrays.equals(new int[] {55}, trt.rpaInt())); assertTrue(Arrays.equals(new long[] {55}, trt.rpaLong())); assertTrue(Arrays.equals(new float[] {55}, trt.rpaFloat())); assertTrue(Arrays.equals(new double[] {55}, trt.rpaDouble())); assertEquals(Arrays.asList(true), trt.rBooleans()); assertEquals(Arrays.asList(new Byte((byte) 55)), trt.rBytes()); assertEquals(Arrays.asList(new Short((short) 55)), trt.rShorts()); assertEquals(Arrays.asList(Integer.valueOf(55)), trt.rInts()); assertEquals(Arrays.asList(new Long(55L)), trt.rLongs()); assertEquals(Arrays.asList(new Float(55F)), trt.rFloats()); assertEquals(Arrays.asList(new Double(55D)), trt.rDoubles()); assertEquals(Arrays.asList("55"), trt.rStrings()); assertEquals(Arrays.asList(new URI("55")), trt.rURIs()); assertTrue(Arrays.equals(new Boolean[] {true}, trt.raBoolean())); assertTrue(Arrays.equals(new Byte[] {55}, trt.raByte())); assertTrue(Arrays.equals(new Short[] {55}, trt.raShort())); assertTrue(Arrays.equals(new Integer[] {55}, trt.raInt())); assertTrue(Arrays.equals(new Long[] {55L}, trt.raLong())); assertTrue(Arrays.equals(new Float[] {55F}, trt.raFloat())); assertTrue(Arrays.equals(new Double[] {55D}, trt.raDouble())); assertTrue(Arrays.equals(new String[] {"55"}, trt.raString())); assertTrue(Arrays.equals(new URI[] {new URI("55")}, trt.raURI())); } { // Test primitive arrays as value TestReturnTypes trt = set(TestReturnTypes.class, new int[] {55}); assertTrue(Arrays.equals(new boolean[] {true}, trt.rpaBoolean())); assertTrue(Arrays.equals(new byte[] {55}, trt.rpaByte())); assertTrue(Arrays.equals(new short[] {55}, trt.rpaShort())); assertTrue(Arrays.equals(new int[] {55}, trt.rpaInt())); assertTrue(Arrays.equals(new long[] {55}, trt.rpaLong())); assertTrue(Arrays.equals(new float[] {55}, trt.rpaFloat())); assertTrue(Arrays.equals(new double[] {55}, trt.rpaDouble())); assertEquals(Arrays.asList(true), trt.rBooleans()); assertEquals(Arrays.asList(new Byte((byte) 55)), trt.rBytes()); assertEquals(Arrays.asList(new Short((short) 55)), trt.rShorts()); assertEquals(Arrays.asList(Integer.valueOf(55)), trt.rInts()); assertEquals(Arrays.asList(new Long(55L)), trt.rLongs()); assertEquals(Arrays.asList(new Float(55F)), trt.rFloats()); assertEquals(Arrays.asList(new Double(55D)), trt.rDoubles()); assertEquals(Arrays.asList("55"), trt.rStrings()); assertEquals(Arrays.asList(new URI("55")), trt.rURIs()); assertTrue(Arrays.equals(new Boolean[] {true}, trt.raBoolean())); assertTrue(Arrays.equals(new Byte[] {55}, trt.raByte())); assertTrue(Arrays.equals(new Short[] {55}, trt.raShort())); assertTrue(Arrays.equals(new Integer[] {55}, trt.raInt())); assertTrue(Arrays.equals(new Long[] {55L}, trt.raLong())); assertTrue(Arrays.equals(new Float[] {55F}, trt.raFloat())); assertTrue(Arrays.equals(new Double[] {55D}, trt.raDouble())); assertTrue(Arrays.equals(new String[] {"55"}, trt.raString())); assertTrue(Arrays.equals(new URI[] {new URI("55")}, trt.raURI())); } { // Test single value TestReturnTypes trt = set(TestReturnTypes.class, 55); assertEquals(true, trt.rpBoolean()); assertEquals(55, trt.rpByte()); assertEquals(55, trt.rpShort()); assertEquals(55, trt.rpInt()); assertEquals(55L, trt.rpLong()); assertEquals(55.0D, trt.rpDouble()); assertEquals(55.0F, trt.rpFloat()); assertEquals((Boolean) true, trt.rBoolean()); assertEquals(new Byte((byte) 55), trt.rByte()); assertEquals(new Short((short) 55), trt.rShort()); assertEquals(Integer.valueOf(55), trt.rInt()); assertEquals(new Long(55L), trt.rLong()); assertEquals(new Float(55F), trt.rFloat()); assertEquals(new Double(55), trt.rDouble()); assertEquals("55", trt.rString()); assertEquals(new URI("55"), trt.rURI()); assertTrue(Arrays.equals(new boolean[] {true}, trt.rpaBoolean())); assertTrue(Arrays.equals(new byte[] {55}, trt.rpaByte())); assertTrue(Arrays.equals(new short[] {55}, trt.rpaShort())); assertTrue(Arrays.equals(new int[] {55}, trt.rpaInt())); assertTrue(Arrays.equals(new long[] {55}, trt.rpaLong())); assertTrue(Arrays.equals(new float[] {55}, trt.rpaFloat())); assertTrue(Arrays.equals(new double[] {55}, trt.rpaDouble())); assertEquals(Arrays.asList(true), trt.rBooleans()); assertEquals(Arrays.asList(new Byte((byte) 55)), trt.rBytes()); assertEquals(Arrays.asList(new Short((short) 55)), trt.rShorts()); assertEquals(Arrays.asList(Integer.valueOf(55)), trt.rInts()); assertEquals(Arrays.asList(new Long(55L)), trt.rLongs()); assertEquals(Arrays.asList(new Float(55F)), trt.rFloats()); assertEquals(Arrays.asList(new Double(55D)), trt.rDoubles()); assertEquals(Arrays.asList("55"), trt.rStrings()); assertEquals(Arrays.asList(new URI("55")), trt.rURIs()); assertTrue(Arrays.equals(new Boolean[] {true}, trt.raBoolean())); assertTrue(Arrays.equals(new Byte[] {55}, trt.raByte())); assertTrue(Arrays.equals(new Short[] {55}, trt.raShort())); assertTrue(Arrays.equals(new Integer[] {55}, trt.raInt())); assertTrue(Arrays.equals(new Long[] {55L}, trt.raLong())); assertTrue(Arrays.equals(new Float[] {55F}, trt.raFloat())); assertTrue(Arrays.equals(new Double[] {55D}, trt.raDouble())); assertTrue(Arrays.equals(new String[] {"55"}, trt.raString())); assertTrue(Arrays.equals(new URI[] {new URI("55")}, trt.raURI())); } }