Fehlende Bugs aus dem letzten Release in den Bugtracker eingetragen
alte Bugs die mit dem Einladungsprozess zu tun hatten geschlossen
Diplomarbeit:
XEP-0065 SOCKS5 Bytestreams gelesen und Smack-Implementierung entsprechend des Standards nachvollzogen
Implementierung ist weitestgehend Standardkonform, außer das der Standard vorsieht alle Socks5 Proxies auszuprobieren bis alle fehlgeschlagen sind. Smack bricht nach dem ersten Fehlschlag ab
Tests für SOCKS5 Bytestream-Implementierung
Möglichkeit suchen unabhängig von der Existenz eines XMPP-Servers die Protokollkonformität von Smack zu testen
Evaluation verschiedener Mocking Frameworks
Mocking Frameworks mit den meisten Features und der leichtesten Syntax sind EasyMock und Mockito
für Mockito entschieden
Versuch Test zu schreiben und die XMPPConnection-Klasse zu mocken bislang erfolglos
XMPPConnection enthält sehr viel Funktionalität und die nicht ohne weiteres in ein kontrolliertes Mock-Objekt gebracht werden kann
neuer Plan: zunächst ein Rewrite der Klasse, die für SOCKS5 Bytestream zuständig ist die auch testbar ist
[INTERNAL] Replaced ”JID”s in activities by ”User” objects … from Marc
Patch written:
[FIX] File operations (rename, delete, move) … from Wojtek
[FIX] renaming of folders in project root
Diploma Thesis:
written test for Socks5Bytestream along the XEP-065 specification
Smack doesn't answer to Socks5Bytestream requests (should answer at least with an error but answers nothing)
Smack answers with wrong error message if target can't connect to any Socks5 proxy
if target could connect to more than one proxy and the first in the list is not reachable, this attempt consumes the full timeout on the side of the initiator
found inconsistencies in the XEP-0065 specification
Target is unable to connect to any streamhost
error "item-not-found" (4.6 Example 13)
error "remote-server-not-found" (5.2 A3)
some wrong references between the Primary Flow and the Alternate Flows
e.g. A8#9 refers to P9 and should refer to P11
now I have all information to improve Smacks Socks5 implementation
Problems:
needed too much time to comprehend how Socks5 works → progress is far behind schedule
I'm thinking about writing an email to the XFS concerning the inconsistencies but someone should recheck if i simply don't understand the text right
Problems with Openfire, Socks5 Proxy Activation only works if Openfire saw a FileTransferRequest with the corredponding SessionID before the activation; this behavior can be disabled in Openfire; pure Socks5ByteStream over standard configured Openfire won't work
created a virtual machine with installed ejabberd
took an eternity to configure ejabberd to work with my test because on default about everything is forbidden
created a virtual machine with installed Openfire
startet reimplementing Socks5 in a new package in Smack called socks5bytestream
created a listener that rejects all incoming Socks5Request (if there is not special listener for a request) to fullfill XEP-0065 specification
wrote Test for the Listener with Mockito
found inconsistencies in the XEP-0065 specification:
error messages have a type like cancel, modify, auth, and wait
XEP-0065 specifies to send error with code 406 (not-acceptable) and type auth
deprecated (but apparently not replaced) error specification XEP-0086 requires the type modify for error 406 (not-acceptable)
Smack keeps with XEP-0086
Problems:
again I found more problems then I solved
goal is to finish implementing Socks5 in December
I can't do patches for Saros because I need to get on with my diploma thesis
no one seems to read my weekly reports and there seems to be no interest or understanding of what I am doing from my advisors
[FIX] BinaryChannel::getData() returned byte Array padded with NUL bytes … from Sandor
testing of file streaming (trying out different chunk sizes) with Stephan
current implementation of the stream interface needs java 1.6 (PipedInputStream(int pipeSize))
OSX 10.5 has no 32bit java 1.6 so using a special eclipse version (with 64bit SWT) works
Diploma Theses:
implementing Socks5 API (50% done)
found more inconsistencies in XEP-0065 specification:
query to get network settings of a Socks5 proxy (ip address, port) should contain the session ID used to identify the socks5 stream between target and initiator
this makes no sense because it is not clear at this moment if the proxy will be used for the stream and its prior to the initialisation request send to the target
Openfire and ejabberd ignore this session ID and don't add it in their reply
implemented test for Socks5 API (10% done)
test mocking library Mockito is not sufficient to mock parts of the Smack API since it can not mock static methods
PowerMock extends Mockito to allow mocking of static methods and lots of other magic stuff
Problems:
took a lot of time to find out that the latest Apple update of java changed the default password of the java keystore (from "changeit" to "changeme") and the Smack SASL authentication relies on that by default
integrate new Socks5 API in file transfer implementation
finish javadoc comments
write email to XFS or join the discussion to inform about the inconsistencies in the XEP-0065 specification
contact people from Jive Software in chat on Wednesday 19:00
preparing patch file and email (or discussion board post) to publish the patch
CW3 (4 days)
Activities:
Saros:
Patch reviews:
[FEATURE] Improve abilities to select output file … from coezbek
[FIX] Make BinaryChannel more robust for multiple reading threads … from coezbek
[INTERNAL] Use Google ProtoBuf to serialize data in BinaryChannel for 20-40% speed-up … from coezbek
Diploma Theses:
implementing Socks5 API (98% done)
implemened blacklisting of errornous proxies and prioritizing of working proxies
refactored Socks5 protocol implementation
original implementation by smack made wrong use of DataInputStream and didn't returned any errors to the client
unplanned task that cost me 2 days
finished local Socks5 proxy server
commenting Socks5 API (100% done)
implemented test for Socks5 API (85% done)
had a short chat with someone from Jive Software (in the weekly chat on wednesday)
somehow disappointed because there seems to be not much interest in what exactly I'm about to fix in Smack
no useful answers when I asked if there is a process for managing community patches ("just post them in the message board") or if there are any code guidelines or if a patch has to fulfill any criteria to be committed to the trunk
TODOs:
finish writing of test
integrate new Socks5 API in file transfer implementation
write email to XFS or join the discussion to inform about the inconsistencies in the XEP-0065 specification
preparing patch file and email (or discussion board post) to publish the patch