<?xml version="1.0" ?><feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Flyspray</title>
  <subtitle type="text">
    Flyspray::Bombus - mobile Jabber client (J2ME): Recently opened tasks  </subtitle>
  <id>http://bombus.jrudevels.org/flyspray/</id>
    <updated>2010-10-29T01:33:15Z</updated>
  <link rel="self" type="text/xml" href="feed.php?feed_type=atom"/>
  <link rel="alternate" type="text/html" hreflang="en" href="/flyspray/feed.php"/>
    <entry>
    <title>Отсутствие обработки XML тегов и атрибутов может привести к отправке невалидного XML в поток</title>
    <link href="http://bombus.jrudevels.org/flyspray/task/901" />    
    <updated>2010-10-29T01:33:15Z</updated>    
    <published>2010-10-29T01:33:15Z</published>
    <content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        
<p>
Исправление: 
</p>
<pre class="code">
Index: src/xml/XMLParser.java
===================================================================
--- src/xml/XMLParser.java	(revision 1442)
+++ src/xml/XMLParser.java	(working copy)
@@ -98,8 +98,8 @@
                 if (c=='?') continue;
                 if (c==' ') continue;
                 if (c=='=') continue;
-                if (c=='\'') { state=ATRVALQS; atrName=sbuf.toString(); sbuf.setLength(0); continue; }
-                if (c=='\&quot;') { state=ATRVALQD; atrName=sbuf.toString(); sbuf.setLength(0); continue; }
+                if (c=='\'') { state=ATRVALQS; atrName=parsePlainText(sbuf); sbuf.setLength(0); continue; }
+                if (c=='\&quot;') { state=ATRVALQD; atrName=parsePlainText(sbuf); sbuf.setLength(0); continue; }
 
                 if (c!='&gt;' &amp;&amp; c!='/') { 
                     sbuf.append(c);
@@ -117,7 +117,7 @@
                     state=ENDTAGNAME; 
                     sbuf.setLength(0);
                     if (tagName.length()&gt;0) {
-                        String tn=tagName.toString();
+                        String tn=parsePlainText(tagName);
                         eventListener.tagStart(tn, attr); 
                         sbuf.append(tn);
                     }
@@ -126,7 +126,7 @@
                 if (c==' ') { state=ATRNAME; continue; }
                 if (c=='&gt;') { 
                     state=PLAIN_TEXT; 
-                    if (eventListener.tagStart(tagName.toString(), attr))
+                    if (eventListener.tagStart(parsePlainText(tagName), attr))
                         state=BASE64_INIT; 
                     continue; 
                 }

</pre>
      </div>
    </content>
    <author><name>Vitaly</name></author>
    <id>http://bombus.jrudevels.org/flyspray/:901</id>
  </entry>
    <entry>
    <title>Обработка iq с типом result не сверяет id отправителя</title>
    <link href="http://bombus.jrudevels.org/flyspray/task/900" />    
    <updated>2010-10-22T23:34:53Z</updated>    
    <published>2010-10-22T23:34:53Z</published>
    <content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        
<p>
Обработка входящих xmpp-пакетов не подразумевает никакой фильтрации id или отправителя(получателя), благодаря чему возможно сформировать станзу, которую Bombus обработает и нарушится нормальная работа приложения. К примеру, обрабатываются любые результаты jabber:iq:roster, приняв которые Bombus начинает многократно дублировать присутствие, и отображать пользователю неверное содержимое ростера. С приложенным патчем Bombus выполняет фильтрацию iq-пакетов по id, и отбрасывает результаты запросов, которые сам не отправлял.
</p>
<pre class="code">
Index: src/com/alsutton/jabber/JabberDataBlockDispatcher.java
===================================================================
--- src/com/alsutton/jabber/JabberDataBlockDispatcher.java	(revision 1442)
+++ src/com/alsutton/jabber/JabberDataBlockDispatcher.java	(working copy)
@@ -142,6 +142,17 @@
       waitingQueue.removeElementAt( 0 );
       int i=0;
       try {
+          // verify is it our query
+          if (dataBlock instanceof Iq) {
+              if (dataBlock.getTypeAttribute().equals(&quot;result&quot;)) {
+                  String id = dataBlock.getAttribute(&quot;id&quot;);
+                  if (stream.outgoingQueries.indexOf(id) &gt;= 0) {
+                      stream.outgoingQueries.removeElement(id);
+                  } else {
+                      throw new Exception(&quot;Bad IQ result&quot;);
+                  }
+              }
+          }
           int processResult=JabberBlockListener.BLOCK_REJECTED;
           synchronized (blockListeners) {
               while (i&lt;blockListeners.size()) {
@@ -166,7 +177,7 @@
                   dataBlock.setTypeAttribute(&quot;error&quot;);
                   dataBlock.addChild(new XmppError(XmppError.FEATURE_NOT_IMPLEMENTED, null).construct());
                   stream.send(dataBlock);
-              }
+              }                 
               //TODO: reject iq stansas where type ==&quot;get&quot; | &quot;set&quot;
           }
           
Index: src/com/alsutton/jabber/JabberStream.java
===================================================================
--- src/com/alsutton/jabber/JabberStream.java	(revision 1442)
+++ src/com/alsutton/jabber/JabberStream.java	(working copy)
@@ -68,6 +68,8 @@
     public boolean pingSent;
     
     public boolean loggedIn;
+
+    public Vector outgoingQueries = new Vector();
     
     public void enableRosterNotify(boolean en){ rosterNotify=en; }
     
@@ -368,6 +370,12 @@
             new Thread(this).start();
         }
         public void run(){
+            if (data instanceof Iq) {
+                String type = data.getTypeAttribute();
+                if (type.equals(&quot;set&quot;) || type.equals(&quot;get&quot;)) {
+                    outgoingQueries.addElement(data.getAttribute(&quot;id&quot;));
+                }
+            }
             try {
                 Thread.sleep(100);
                 StringBuffer buf=new StringBuffer();
</pre>
      </div>
    </content>
    <author><name>Vitaly</name></author>
    <id>http://bombus.jrudevels.org/flyspray/:900</id>
  </entry>
    <entry>
    <title>Entity capabilities</title>
    <link href="http://bombus.jrudevels.org/flyspray/task/899" />    
    <updated>2010-07-28T21:41:24Z</updated>    
    <published>2010-07-28T21:41:24Z</published>
    <content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        
<p>
ejabberd 2.1.x проверяет валидность хеша возможностей клиента (<a href="http://www.xmpp.org/extensions/xep-0115.html" class="urlextern" title="XEP-0115">XEP-0115</a>), бомбус генерирует их неправильно, в результате как минимум бомбус не получает pep. Исправление: 
</p>
<pre class="code">
--- Base (BASE)
+++ Locally Modified (Based On LOCAL)
@@ -92,13 +92,13 @@
         sha1.init();
         
         //indentity
-        sha1.update(BOMBUS_ID_CATEGORY+&quot;/&quot;+BOMBUS_ID_TYPE+&quot;//&quot;);
-        sha1.update(Version.getNameVersion());
-        sha1.update(&quot;&lt;&quot;);
+        sha1.updateASCII(BOMBUS_ID_CATEGORY+&quot;/&quot;+BOMBUS_ID_TYPE+&quot;//&quot;);
+        sha1.updateASCII(Version.getNameVersion());
+        sha1.updateASCII(&quot;&lt;&quot;);
         
         for (int i=0; i&lt;features.size(); i++) {
-            sha1.update((String) features.elementAt(i));
-            sha1.update(&quot;&lt;&quot;);
+            sha1.updateASCII((String) features.elementAt(i));
+            sha1.updateASCII(&quot;&lt;&quot;);
         }
         
         sha1.finish();</pre>
      </div>
    </content>
    <author><name>Vitaly</name></author>
    <id>http://bombus.jrudevels.org/flyspray/:899</id>
  </entry>
    <entry>
    <title>Поддержка XEP-0071: XHTML-IM</title>
    <link href="http://bombus.jrudevels.org/flyspray/task/898" />    
    <updated>2009-12-07T14:04:59Z</updated>    
    <published>2009-12-07T14:04:59Z</published>
    <content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        
<p>
<a href="http://www.xmpp.org/extensions/xep-0071.html" class="urlextern" title="XEP-0071">XEP-0071</a>: <acronym title="Extensible HyperText Markup Language">XHTML</acronym>-IM &ldquo;This specification defines an <acronym title="Extensible HyperText Markup Language">XHTML</acronym> 1.0 Integration Set for use in exchanging instant messages that contain lightweight text markup. The protocol enables an XMPP entity to format a message using a small range of commonly-used <acronym title="HyperText Markup Language">HTML</acronym> elements, attributes, and style properties that are suitable for use in instant messaging. The protocol also excludes <acronym title="HyperText Markup Language">HTML</acronym> constructs that may introduce malware and other vulnerabilities (such as scripts and objects) for improved security.&rdquo; / <a href="http://xmpp.org/extensions/xep-0071.html" class="urlextern" title="http://xmpp.org/extensions/xep-0071.html">http://xmpp.org/extensions/xep-0071.html</a>
</p>

<p>
Это например, нужно чтобы увидеть такую картинку: <a href="http://www.portal-on.ru/jabber/images/services/gismeteo.ru/pogoda-xhtml.png" class="urlextern" title="http://www.portal-on.ru/jabber/images/services/gismeteo.ru/pogoda-xhtml.png">http://www.portal-on.ru/jabber/images/services/gismeteo.ru/pogoda-xhtml.png</a> 
</p>
      </div>
    </content>
    <author><name>Shiv</name></author>
    <id>http://bombus.jrudevels.org/flyspray/:898</id>
  </entry>
    <entry>
    <title>Варианты передачи файлов</title>
    <link href="http://bombus.jrudevels.org/flyspray/task/897" />    
    <updated>2009-12-07T13:58:06Z</updated>    
    <published>2009-12-07T13:58:06Z</published>
    <content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        
<p>
Возможно, тема названа не совсем верно, но больше ничего в голову не пришло..
</p>

<p>
Взято отсюда: <a href="http://juick.com/409700#52" class="urlextern" title="http://juick.com/409700#52">http://juick.com/409700#52</a>  @ugnich: Добавьте уже кто-нибудь в бомбус SOCKS5. Не знаю, что с передачей файлов делали в BombusMod, но в оригинальном передавалось message-ами, вместо рекомендуемых iq, и без управления очередностью. Короче, полная фигня.
</p>

<p>
Там вообще-то речь шла о том, что не работает FileTransfer в BombusMod.. Но в привведеной цитате ее автор просит добавить SOCKS5 в бомбус (добавка &ldquo;мод&rdquo; отсутствует, так, что видимо имелись ввиду и оф.версия и мод) и утверждает, что передача файлов в bombus рализована неверно.. 
</p>

<p>
Хотелось бы получить комментари по этому поводу.. 
</p>
      </div>
    </content>
    <author><name>Shiv</name></author>
    <id>http://bombus.jrudevels.org/flyspray/:897</id>
  </entry>
    <entry>
    <title>Nokia N78 FW 20 определяется как Motorola</title>
    <link href="http://bombus.jrudevels.org/flyspray/task/896" />    
    <updated>2009-09-20T21:15:30Z</updated>    
    <published>2009-09-20T21:15:30Z</published>
    <content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        
<p>
<a href="http://wiki.forum.nokia.com/index.php/KIJ001297_-_System.getProperty%28%22microedition.platform%22%29_returns_null_for_Nokia_N78" class="urlextern" title="http://wiki.forum.nokia.com/index.php/KIJ001297_-_System.getProperty%28%22microedition.platform%22%29_returns_null_for_Nokia_N78">http://wiki.forum.nokia.com/index.php/KIJ001297_-_System.getProperty%28%22microedition.platform%22%29_returns_null_for_Nokia_N78</a>
</p>

<p>
В соответствии с этим, и следующей ссылкой - <a href="http://library.forum.nokia.com/index.jsp?topic=/Java_Developers_Library/GUID-1F6DF24F-40E4-4450-80F6-783C996A25D7.html" class="urlextern" title="http://library.forum.nokia.com/index.jsp?topic=/Java_Developers_Library/GUID-1F6DF24F-40E4-4450-80F6-783C996A25D7.html">http://library.forum.nokia.com/index.jsp?topic=/Java_Developers_Library/GUID-1F6DF24F-40E4-4450-80F6-783C996A25D7.html</a> - определить эту нокию можно примерно так:
</p>
<pre class="code">try {
            Class.forName(&quot;com.nokia.mid.batterylevel&quot;);
            platformName=&quot;Nokia&quot;; //S60 v3  FP2
            }
            catch (Throwable ex) {}</pre>
      </div>
    </content>
    <author><name>Vitaly</name></author>
    <id>http://bombus.jrudevels.org/flyspray/:896</id>
  </entry>
    <entry>
    <title>NON-Sasl Auth</title>
    <link href="http://bombus.jrudevels.org/flyspray/task/895" />    
    <updated>2009-03-17T22:19:17Z</updated>    
    <published>2009-03-17T22:19:17Z</published>
    <content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        
<p>
Невозможно подключиться к серверам, заявляющими себя как XMPP 1.0, но не поддерживающим SASL-аутентификацию: яркий пример - livejournal.com. 
</p>
      </div>
    </content>
    <author><name>Vitaly</name></author>
    <id>http://bombus.jrudevels.org/flyspray/:895</id>
  </entry>
    <entry>
    <title>BenQ-Siemens S68 - выключается с &quot;пиком&quot;</title>
    <link href="http://bombus.jrudevels.org/flyspray/task/894" />    
    <updated>2009-02-09T19:49:20Z</updated>    
    <published>2009-02-09T19:49:20Z</published>
    <content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        
<p>
на этапе загрузки вырубается с характерным звуком &ldquo;пик&rdquo;. та же проблема с Jimm решались в новой версии  постоянным включением подсветки. 
</p>
      </div>
    </content>
    <author><name>Dan Bronyakin</name></author>
    <id>http://bombus.jrudevels.org/flyspray/:894</id>
  </entry>
    <entry>
    <title>ошибка при смене подключения</title>
    <link href="http://bombus.jrudevels.org/flyspray/task/893" />    
    <updated>2009-02-09T08:21:23Z</updated>    
    <published>2009-02-09T08:21:23Z</published>
    <content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        
<p>
Версия bombus: 0.7.1427 (NY) Телефон: Nokia E51-1
</p>

<p>
подключился по wi-fi, все прекрасно. сменил статус на offline, отключил wi-fi точку доступа, меняю в боумбусе статус на online получаю сообщение: &ldquo;необработанное исключение, закрыть приложение?&rdquo;
</p>

<p>
может как то принудительно разрывать подключение? хотя для gprs соединения это не обязательно. 
</p>
      </div>
    </content>
    <author><name>pavel</name></author>
    <id>http://bombus.jrudevels.org/flyspray/:893</id>
  </entry>
    <entry>
    <title>Nokia 3500 Classic and bombus mod 0.7.1393.421 - application error</title>
    <link href="http://bombus.jrudevels.org/flyspray/task/892" />    
    <updated>2009-02-05T04:24:11Z</updated>    
    <published>2009-02-05T04:24:11Z</published>
    <content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        
<p>
Caution: If I&rsquo;m entering message and post it so I watch next message: &ldquo;application error&rdquo;. After it the bombus app is close ind I just see an native interface of my nokia phone. For all I can&rsquo;t post any message with that app. If I download not &ldquo;mod&rdquo; version and native version of bombus so I don&rsquo;t see any errors. All&rsquo;re well. I need &ldquo;mod&rdquo; version for icq transport support. I can&rsquo;t add any service (transport etc) in the native version of bombus. 
</p>
<pre class="code"></pre>

<p>
the core problem: The mod version of bombus is drop, when I post any message. 
</p>
      </div>
    </content>
    <author><name>Dmitry</name></author>
    <id>http://bombus.jrudevels.org/flyspray/:892</id>
  </entry>
  </feed>

