include senders in jingle file offer
This commit is contained in:
		
							parent
							
								
									90526efbd4
								
							
						
					
					
						commit
						b845c601d0
					
				|  | @ -78,6 +78,7 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
| 
 | 
 | ||||||
|     private String contentName; |     private String contentName; | ||||||
|     private Content.Creator contentCreator; |     private Content.Creator contentCreator; | ||||||
|  |     private Content.Senders contentSenders; | ||||||
|     private Class<? extends GenericTransportInfo> initialTransport; |     private Class<? extends GenericTransportInfo> initialTransport; | ||||||
|     private boolean remoteSupportsOmemoJet; |     private boolean remoteSupportsOmemoJet; | ||||||
| 
 | 
 | ||||||
|  | @ -339,6 +340,7 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
|     private void init(final Message message, final XmppAxolotlMessage xmppAxolotlMessage) { |     private void init(final Message message, final XmppAxolotlMessage xmppAxolotlMessage) { | ||||||
|         this.mXmppAxolotlMessage = xmppAxolotlMessage; |         this.mXmppAxolotlMessage = xmppAxolotlMessage; | ||||||
|         this.contentCreator = Content.Creator.INITIATOR; |         this.contentCreator = Content.Creator.INITIATOR; | ||||||
|  |         this.contentSenders = Content.Senders.INITIATOR; | ||||||
|         this.contentName = JingleConnectionManager.nextRandomId(); |         this.contentName = JingleConnectionManager.nextRandomId(); | ||||||
|         this.message = message; |         this.message = message; | ||||||
|         final List<String> remoteFeatures = getRemoteFeatures(); |         final List<String> remoteFeatures = getRemoteFeatures(); | ||||||
|  | @ -436,6 +438,13 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
|         final Content content = packet.getJingleContent(); |         final Content content = packet.getJingleContent(); | ||||||
|         final GenericTransportInfo transportInfo = content.getTransport(); |         final GenericTransportInfo transportInfo = content.getTransport(); | ||||||
|         this.contentCreator = content.getCreator(); |         this.contentCreator = content.getCreator(); | ||||||
|  |         Content.Senders senders; | ||||||
|  |         try { | ||||||
|  |             senders = content.getSenders(); | ||||||
|  |         } catch (final Exception e) { | ||||||
|  |              senders = Content.Senders.INITIATOR; | ||||||
|  |         } | ||||||
|  |         this.contentSenders = senders; | ||||||
|         this.contentName = content.getAttribute("name"); |         this.contentName = content.getAttribute("name"); | ||||||
| 
 | 
 | ||||||
|         if (transportInfo instanceof S5BTransportInfo) { |         if (transportInfo instanceof S5BTransportInfo) { | ||||||
|  | @ -571,6 +580,7 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
|     private void sendInitRequest() { |     private void sendInitRequest() { | ||||||
|         final JinglePacket packet = this.bootstrapPacket(JinglePacket.Action.SESSION_INITIATE); |         final JinglePacket packet = this.bootstrapPacket(JinglePacket.Action.SESSION_INITIATE); | ||||||
|         final Content content = new Content(this.contentCreator, this.contentName); |         final Content content = new Content(this.contentCreator, this.contentName); | ||||||
|  |         content.setSenders(this.contentSenders); | ||||||
|         if (message.getEncryption() == Message.ENCRYPTION_AXOLOTL && remoteSupportsOmemoJet) { |         if (message.getEncryption() == Message.ENCRYPTION_AXOLOTL && remoteSupportsOmemoJet) { | ||||||
|             Log.d(Config.LOGTAG, id.account.getJid().asBareJid() + ": remote announced support for JET"); |             Log.d(Config.LOGTAG, id.account.getJid().asBareJid() + ": remote announced support for JET"); | ||||||
|             final Element security = new Element("security", Namespace.JINGLE_ENCRYPTED_TRANSPORT); |             final Element security = new Element("security", Namespace.JINGLE_ENCRYPTED_TRANSPORT); | ||||||
|  | @ -645,6 +655,7 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
|         this.jingleConnectionManager.getPrimaryCandidate(this.id.account, isInitiator(), (success, candidate) -> { |         this.jingleConnectionManager.getPrimaryCandidate(this.id.account, isInitiator(), (success, candidate) -> { | ||||||
|             final JinglePacket packet = bootstrapPacket(JinglePacket.Action.SESSION_ACCEPT); |             final JinglePacket packet = bootstrapPacket(JinglePacket.Action.SESSION_ACCEPT); | ||||||
|             final Content content = new Content(contentCreator, contentName); |             final Content content = new Content(contentCreator, contentName); | ||||||
|  |             content.setSenders(this.contentSenders); | ||||||
|             content.setDescription(this.description); |             content.setDescription(this.description); | ||||||
|             if (success && candidate != null && !equalCandidateExists(candidate)) { |             if (success && candidate != null && !equalCandidateExists(candidate)) { | ||||||
|                 final JingleSocks5Transport socksConnection = new JingleSocks5Transport(this, candidate); |                 final JingleSocks5Transport socksConnection = new JingleSocks5Transport(this, candidate); | ||||||
|  | @ -684,6 +695,7 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
|         this.transport = new JingleInBandTransport(this, this.transportId, this.ibbBlockSize); |         this.transport = new JingleInBandTransport(this, this.transportId, this.ibbBlockSize); | ||||||
|         final JinglePacket packet = bootstrapPacket(JinglePacket.Action.SESSION_ACCEPT); |         final JinglePacket packet = bootstrapPacket(JinglePacket.Action.SESSION_ACCEPT); | ||||||
|         final Content content = new Content(contentCreator, contentName); |         final Content content = new Content(contentCreator, contentName); | ||||||
|  |         content.setSenders(this.contentSenders); | ||||||
|         content.setDescription(this.description); |         content.setDescription(this.description); | ||||||
|         content.setTransport(new IbbTransportInfo(this.transportId, this.ibbBlockSize)); |         content.setTransport(new IbbTransportInfo(this.transportId, this.ibbBlockSize)); | ||||||
|         packet.addJingleContent(content); |         packet.addJingleContent(content); | ||||||
|  | @ -909,8 +921,9 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
| 
 | 
 | ||||||
|     private void sendFallbackToIbb() { |     private void sendFallbackToIbb() { | ||||||
|         Log.d(Config.LOGTAG, id.account.getJid().asBareJid() + ": sending fallback to ibb"); |         Log.d(Config.LOGTAG, id.account.getJid().asBareJid() + ": sending fallback to ibb"); | ||||||
|         JinglePacket packet = this.bootstrapPacket(JinglePacket.Action.TRANSPORT_REPLACE); |         final JinglePacket packet = this.bootstrapPacket(JinglePacket.Action.TRANSPORT_REPLACE); | ||||||
|         Content content = new Content(this.contentCreator, this.contentName); |         final Content content = new Content(this.contentCreator, this.contentName); | ||||||
|  |         content.setSenders(this.contentSenders); | ||||||
|         this.transportId = JingleConnectionManager.nextRandomId(); |         this.transportId = JingleConnectionManager.nextRandomId(); | ||||||
|         content.setTransport(new IbbTransportInfo(this.transportId, this.ibbBlockSize)); |         content.setTransport(new IbbTransportInfo(this.transportId, this.ibbBlockSize)); | ||||||
|         packet.addJingleContent(content); |         packet.addJingleContent(content); | ||||||
|  | @ -944,6 +957,7 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
|         final JinglePacket answer = bootstrapPacket(JinglePacket.Action.TRANSPORT_ACCEPT); |         final JinglePacket answer = bootstrapPacket(JinglePacket.Action.TRANSPORT_ACCEPT); | ||||||
| 
 | 
 | ||||||
|         final Content content = new Content(contentCreator, contentName); |         final Content content = new Content(contentCreator, contentName); | ||||||
|  |         content.setSenders(this.contentSenders); | ||||||
|         content.setTransport(new IbbTransportInfo(this.transportId, this.ibbBlockSize)); |         content.setTransport(new IbbTransportInfo(this.transportId, this.ibbBlockSize)); | ||||||
|         answer.addJingleContent(content); |         answer.addJingleContent(content); | ||||||
| 
 | 
 | ||||||
|  | @ -1123,6 +1137,7 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
|     private void sendProxyActivated(String cid) { |     private void sendProxyActivated(String cid) { | ||||||
|         final JinglePacket packet = bootstrapPacket(JinglePacket.Action.TRANSPORT_INFO); |         final JinglePacket packet = bootstrapPacket(JinglePacket.Action.TRANSPORT_INFO); | ||||||
|         final Content content = new Content(this.contentCreator, this.contentName); |         final Content content = new Content(this.contentCreator, this.contentName); | ||||||
|  |         content.setSenders(this.contentSenders); | ||||||
|         content.setTransport(new S5BTransportInfo(this.transportId, new Element("activated").setAttribute("cid", cid))); |         content.setTransport(new S5BTransportInfo(this.transportId, new Element("activated").setAttribute("cid", cid))); | ||||||
|         packet.addJingleContent(content); |         packet.addJingleContent(content); | ||||||
|         this.sendJinglePacket(packet); |         this.sendJinglePacket(packet); | ||||||
|  | @ -1131,6 +1146,7 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
|     private void sendProxyError() { |     private void sendProxyError() { | ||||||
|         final JinglePacket packet = bootstrapPacket(JinglePacket.Action.TRANSPORT_INFO); |         final JinglePacket packet = bootstrapPacket(JinglePacket.Action.TRANSPORT_INFO); | ||||||
|         final Content content = new Content(this.contentCreator, this.contentName); |         final Content content = new Content(this.contentCreator, this.contentName); | ||||||
|  |         content.setSenders(this.contentSenders); | ||||||
|         content.setTransport(new S5BTransportInfo(this.transportId, new Element("proxy-error"))); |         content.setTransport(new S5BTransportInfo(this.transportId, new Element("proxy-error"))); | ||||||
|         packet.addJingleContent(content); |         packet.addJingleContent(content); | ||||||
|         this.sendJinglePacket(packet); |         this.sendJinglePacket(packet); | ||||||
|  | @ -1139,6 +1155,7 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
|     private void sendCandidateUsed(final String cid) { |     private void sendCandidateUsed(final String cid) { | ||||||
|         JinglePacket packet = bootstrapPacket(JinglePacket.Action.TRANSPORT_INFO); |         JinglePacket packet = bootstrapPacket(JinglePacket.Action.TRANSPORT_INFO); | ||||||
|         final Content content = new Content(this.contentCreator, this.contentName); |         final Content content = new Content(this.contentCreator, this.contentName); | ||||||
|  |         content.setSenders(this.contentSenders); | ||||||
|         content.setTransport(new S5BTransportInfo(this.transportId, new Element("candidate-used").setAttribute("cid", cid))); |         content.setTransport(new S5BTransportInfo(this.transportId, new Element("candidate-used").setAttribute("cid", cid))); | ||||||
|         packet.addJingleContent(content); |         packet.addJingleContent(content); | ||||||
|         this.sentCandidate = true; |         this.sentCandidate = true; | ||||||
|  | @ -1152,6 +1169,7 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple | ||||||
|         Log.d(Config.LOGTAG, id.account.getJid().asBareJid() + ": sending candidate error"); |         Log.d(Config.LOGTAG, id.account.getJid().asBareJid() + ": sending candidate error"); | ||||||
|         JinglePacket packet = bootstrapPacket(JinglePacket.Action.TRANSPORT_INFO); |         JinglePacket packet = bootstrapPacket(JinglePacket.Action.TRANSPORT_INFO); | ||||||
|         Content content = new Content(this.contentCreator, this.contentName); |         Content content = new Content(this.contentCreator, this.contentName); | ||||||
|  |         content.setSenders(this.contentSenders); | ||||||
|         content.setTransport(new S5BTransportInfo(this.transportId, new Element("candidate-error"))); |         content.setTransport(new S5BTransportInfo(this.transportId, new Element("candidate-error"))); | ||||||
|         packet.addJingleContent(content); |         packet.addJingleContent(content); | ||||||
|         this.sentCandidate = true; |         this.sentCandidate = true; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch