1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2024-06-18 09:24:49 +02:00
Commit graph

933 commits

Author SHA1 Message Date
rcollier 58f56ee31b SMACK-413 Put removed public method back in and marked as deprecated. We can remove in major release.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13592 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-24 15:02:25 +00:00
rcollier d1fdd497d9 SMACK-415 Applied patch to fix improper use of parser.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13590 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-23 22:18:38 +00:00
rcollier b0bdd56b20 SMACK-412 Fixed merge error.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13589 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-23 13:27:55 +00:00
rcollier a14178990b SMACK-412 Added the pingMyServer back in, cleaned up unneeded synchronization and removed minimum ping interval.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13588 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-23 11:59:08 +00:00
rcollier 999c86ef4c SMACK-225 Modified DNSUtils to return a default HostAddress when no DNS resolver is available. This restores the previous default behaviour.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13587 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-23 11:55:43 +00:00
Florian Schmaus 07a0b8f722 SMACK-413 fixed vCard parsing regarding the PHOTO element. Moved vCard test cases to unit-test where appropriate. Added testcases for vCard PHOTO parsing.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13586 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-23 00:30:59 +00:00
Florian Schmaus 374a12b73a Document how an Avatar can be removed from a vCard. Add a convenience method.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13585 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-23 00:30:44 +00:00
Florian Schmaus ebfe3e69ed SMACK-382 Prevent memory leak in AdHocCommandManager by only creating the Thread if it's actually needed
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13578 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-22 18:14:15 +00:00
Florian Schmaus 57a5f88ead SMACK-384 Don't use a semaphore while waiting for PacketReader to be started.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13577 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-22 18:14:08 +00:00
Florian Schmaus b091f6161e SMACK-430 Re-activated code that throws an exception if createOutgoingFileTransfer() was called with a bare JID
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13576 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-22 18:14:01 +00:00
Florian Schmaus ff64c57b4d Added isFullJID() helper in StringUtils
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13575 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-22 18:13:53 +00:00
rcollier aab1dcdabe SMACK-412 Split the ping implementation to a server ping to replace keepalive and a simplified ping manager for manual pings of other entities.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13569 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-19 02:37:36 +00:00
Florian Schmaus a55b54f20b SMACK-417 If both PacketReader and PacketWriter fail at the same time, connectionClosedonError() is called two times
Refactored notifyConnectionError() and notifyReconnection() from PacketReader to XMPPConnection. Made PacketReader.done and PacketWriter.done volatile. Prevent duplicate connectionClosedonError() calls by making the method synchronzied and protected them with an enter guard: if (packetReader.done && packetWriter.done) return;

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13568 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-18 19:58:48 +00:00
Florian Schmaus 6dcf8e0123 SMACK-419 PacketWriter: Only flush if queue is empty
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13567 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-18 19:58:14 +00:00
Florian Schmaus 2eb13f48d2 SMACK-225 Fixed DNS SRV handling, as per RFC 2782. Added support for multiple DNS SRV resolvers namely javax and org.xbill.dns (aka dnsjava).
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13561 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-18 08:53:11 +00:00
Florian Schmaus 21be8c55ee SMACK-361 Added support for Entity Capabilities.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13560 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-18 08:50:48 +00:00
Florian Schmaus 1cdb86989a SMACK-423 Parse unhandled IQ stanzas of type 'request' to dummy IQ class, so that the contents can be examined later on.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_3_0@13539 b35dd754-fafc-0310-a699-88a17e54d16e
2013-03-05 10:35:04 +00:00
Florian Schmaus 5c6f257027 SMACK-388
Use ScheduledExecutorService.
Set ping received when pinging another entity.
Refactored PacketListener and ConnectionListeners as anonymous inner-classes

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13531 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-27 22:49:04 +00:00
Florian Schmaus c6248ec000 SMACK-389 Plugable compression framework
This commit adds the ability to plug-in different compression handlers
for different compression methods. It is also possible to add more
then one handler for the same method. The order how the handlers are
added determines which handler is tried first for usage. This is used
for the 'zlib' compression method, which now can be either provided by
Java7 or by JZlib (just like it was done before).

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13522 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-26 09:26:41 +00:00
Florian Schmaus 5dea9d3ee1 SMACK-379 Removed mandatory session establishment, since it was dropped from the newer XMPP-IM RFC (a.k.a. RFC 6121)
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13521 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-26 08:44:32 +00:00
Florian Schmaus da1987a98b SMACK-376 Allow supplying a custom SSLContext for encrypted connections.
The provided TrustManager / SSLContext implementation is very flexible,
but it does not allow to query the user about accepting possibly
invalid SSL certificates. By supplying a custom SSLContext with a
TrustManager implementing such a query mechanism it is possible to
implement this behaviour.

The patch adds ConnectionConfiguration.customSSLContext with appropriate
getter/setter methods and uses the custom context in XMPPConnection.

Signed-Off-By: Georg Lukas <georg@op-co.de>

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13520 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-26 08:44:17 +00:00
Florian Schmaus 4060a97b65 SMACK-345: Improved detection of last activity. Properly synchronized access to lastMessageSent and registerd last activity namespace with ServiceDiscoveryManager. Improved LastActivity Provider
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13475 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-14 00:00:54 +00:00
Florian Schmaus ddabe436b4 PingManager: Fixed imports
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13474 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-14 00:00:26 +00:00
Florian Schmaus 1a170c1561 ServiceDiscoveryManager: Use 'Set' as data structure for features to prevent reporting duplicate features
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13465 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-11 17:22:42 +00:00
Florian Schmaus 7723b9fcfd ServiceDiscoveryManager: Anounce 'disco#info' and 'disco#items' on service discovery queries in accordance with XEP-0030
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13464 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-11 17:22:31 +00:00
Florian Schmaus b907d606d9 SMACK-352 removed duplicated headers, fixed svn keywords
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13459 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-07 19:10:22 +00:00
Florian Schmaus a686b4c092 Update MultiUserChat to use the correct namespace according to the latest version of XEP-0045.
Newer versions for XEP-0045 (MUC) use muc#admin for all onwer related operations.
Fixes SMACK-371. Credits and thanks go to Colby White for reporting this.

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13458 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-07 19:08:05 +00:00
Florian Schmaus 6bbf425157 SMACK-352
- fixed wrong header
- replaced old Jive license with Apache 2.0 license
- added license header to files without

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13457 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-07 14:19:47 +00:00
rcollier 14f139f642 Fixed small problem in one field and removed possible NPE on get from any field.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13454 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-07 03:57:38 +00:00
rcollier d1e9d81769 SMACK-341 Updated collectors to use concurrent classes.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13452 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-07 03:42:33 +00:00
rcollier e0e92eca76 SMACK-407 Time zones now parse correctly.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13442 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-06 03:38:11 +00:00
Florian Schmaus 04cea9e28c SMACK-395 Forgot to actually add the discovered proxies
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13441 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-04 21:59:07 +00:00
Florian Schmaus 592135c0e9 SMACK-395 Socks5BytestreamManager.establishConnection(): Don't bail out with an Exception uf the local XMPP service does not support Service Discovery (e.g. talk.google.com). Instead remember the Exception and give the local proxy (if enabled) a chance.
Also compute the digest only if it's really needed, that is when streamHosts is not empty.

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13440 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-04 21:36:39 +00:00
Florian Schmaus 0ca8b726bd PubSub SubcribeForm: Use new StringUtils.formatXEP0082Date to get the correct date string. Note that the previous used SimpleDateFormat "yyyy-MM-dd'T'HH:mm:ss.SSSZ" did not produce XEP-0082 conforming strings, since Z is replace with e.g. '+0100' whereas it should be '+01:00'.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13434 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-04 13:33:15 +00:00
Florian Schmaus ca78c5be49 String.isEmpty() only comes with Android API level 9 (or higher). Switching back to old isEmptyString check, making Smack Android compatible again
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13432 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-04 11:04:00 +00:00
Florian Schmaus bfefbdb777 Implement XEP-0184 delivery notifications
This patch provides three components required to implement XEP-0184:

 * DeliveryReceiptRequest is a PacketExtension to request a receipt
 * DeliveryReceipt is a PacketExtension that contains the receipt
 * DeliveryReceiptManager to handle sending/receiving of requests and
   receipts.

Implementation:

For requesting a receipt, just add a new DeliveryReceiptRequest() to
your message or use the helper function:

    DeliveryReceiptManager.addDeliveryReceiptRequest(packet);

Register a ReceiptReceivedListener to find out if your packet arrived:

    DeliveryReceiptManager.getInstanceFor(myConnection)
	.registerReceiptReceivedListener(new ReceiptReceivedListener() {
	    @Override public void onReceiptReceived(String fromJid,
				    String toJid, String receiptId) {
		// receipt received for packet id receiptId
	    }

To answer a receipt request, you can either check incoming packets
manually:

    if (DeliveryReceiptManager.hasDeliveryReceiptRequest(packet)) {
	// send receipt
    }

Or you can enable automatic receipt transmission with:

    DeliveryReceiptManager.getInstanceFor(myConnection)
	    .setAutoReceiptsEnabled(true);

Signed-Off-By: Georg Lukas <georg@op-co.de>

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13431 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-04 09:53:56 +00:00
rcollier f0cd048635 Added check for missing field type for multi list in data forms.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13430 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-04 03:53:53 +00:00
rcollier 457959bc88 SMACK-391 New enum to define date formats and profiles.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13429 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-04 03:52:08 +00:00
rcollier 1d36ae8db4 SMACK-391 Moved all date parsing into StringUtils and made it much more robust in handling multiple valid and invalid formats.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13428 b35dd754-fafc-0310-a699-88a17e54d16e
2013-02-04 03:45:37 +00:00
Florian Schmaus 43619de7aa SMACK-377 Avoid an unnecessary DNS request by using directly the, at this point known IP, instead of using the hostname as argument for the new socket.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13420 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-31 22:31:31 +00:00
Florian Schmaus c76ed51541 SMACK-385 Reuse the KeyStore in order to reduce memory usage. Extended ServerTrustManager with a 'stores' (Hash)Map that allows the reuse of an existing KeyStore. Before that, every call of KeyStore.getInstance() created a new instance which consumes about 250KiB.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13419 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-31 22:31:04 +00:00
Florian Schmaus e75f45082b SMACK-270 MultiUserChat relied on finalize() being called in order to remove packet listeners and the association with RoomListenerMultiplexor. The PacketListeners are referenced by Connection, which meant that MultiUserChat is always strongly reachable until the connection dies.
This patch introduces an new MultiUserChat.cleanup() method that is called when userHashLeft() is triggered.

Thanks to Stuart Chalmers and scgmile for reporting this.

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13418 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-31 22:30:49 +00:00
Florian Schmaus a75d2d7d0d SMACK-375 Properly escape Strings in DiscoverInfo and DiscoverItems for XML.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13417 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-31 22:30:36 +00:00
Florian Schmaus 401c37bd28 SMACK-404 Changed StringUtils.decodeBase64(String) behavior so that the method does not try to detect and decompress a gzip-compressed input. Refactored every use of the Base64.(de|en)code* methods to use the StringUtils (de|en)codeBase64 methods instead.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13416 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-29 22:49:20 +00:00
Florian Schmaus 2a1f4e8376 SMACK-403 add support for
XEP-0297 Stanza Forwarding and XEP-0280 Message Carbons
and
XEP-0297: Stanza Forwarding implementation

This patch adds Forwarded.java, a class to wrap messages forwarded
from a different entity. A forwarded stanza contains of a Packet and
an optional timestamp.

WARNING: The current implementation only allows to forward Message
packets, as there is no universal way to parse a Packet from SMACK.

XEP-0280 Message Carbons implementation

This patch adds Carbon.java, a class to wrap the packet extension
defined in XEP-0280 to store copies of messages sent to or received
by a user to his other client(s).

The CarbonManager allows to register XEP-0280 support with the SDM,
to enable and disable the feature and to manipulate messages
accordingly.

Signed-Off-By: Georg Lukas <georg@op-co.de>

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13411 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-28 09:38:02 +00:00
Florian Schmaus b9fe598129 fix typo in PingManager.getInstanceFor() function name
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13410 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-26 09:47:39 +00:00
Florian Schmaus 704ef1f9dc PingManager: Don't register IQProvider since this is done by smack.providers already. This line was actually a leftover from aSmack development.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13406 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-25 00:13:40 +00:00
Florian Schmaus 4018fa3c7b SMACK-388 Moved PingProvider, Ping and Pong under ../smackx/ping package
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13394 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-15 19:56:25 +00:00
Florian Schmaus 6e141eeb68 PingManager: removed debug message that claims to be a error message
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13393 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-11 10:30:52 +00:00
Florian Schmaus e1bb5a6123 SMACK-278: Call socket.close() in XMPPConnection.shutdown() before
closing the reader and writer streams. This basically prevents the
deadlock reported in SMACK-278.

Additionally, we need to tell the PacketReader and PacketWriter that
the socket got closed and that subsequent caused Exceptions can be
ignored. This is done via the socketClosed boolean in XMPP Connection,
that is queried by PacketReader and PacketWriter in case an Exception
is encountered.

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13390 b35dd754-fafc-0310-a699-88a17e54d16e
2013-01-06 14:02:44 +00:00