Page 84 of 106 FirstFirst ... 3474828384858694 ... LastLast
Results 831 to 840 of 1052

Thread: Z-Push Zimbra Backend (Push Email, Contacts, Appointments & Tasks)

  1. #831
    rfr
    rfr is offline Member
    Join Date
    Feb 2011
    Location
    Belgium
    Posts
    12
    Rep Power
    4

    Default

    My fault, you are right

    Quote Originally Posted by svn
    Path: .
    URL: https://zimbrabackend.svn.sourceforg.../z-push-2-beta
    Repository Root: https://zimbrabackend.svn.sourceforg.../zimbrabackend
    Repository UUID: 110dbdb5-aa49-48b3-85e7-f5126d047bd5
    Revision: 136
    Node Kind: directory
    Schedule: normal
    Last Changed Author: liverpoolfcfan
    Last Changed Rev: 134
    Last Changed Date: 2012-06-21 18:17:40 +0200 (Thu, 21 Jun 2012)

  2. #832
    rfr
    rfr is offline Member
    Join Date
    Feb 2011
    Location
    Belgium
    Posts
    12
    Rep Power
    4

    Default

    Just to report something strange but for which I cannot identify the source.

    I recreated the Exchange account on my GS3 yesterday and everything seamed to work fine. This morning, I noticed that the phone started to download mail older than the synchronization period set on the phone. It seems it only happened when the synchro method was set as "Push" (set for working hours).

    It may be related to the following entry in the log:

    22/06/2012 08:22:33 [30462] [XXXXXXX] [ERROR] LoopDetection->ProcessLoopDetectionPreviousConnectionFailed(): Command 'Sync' at 22/06/2012 08:22:18 with pid '22019' terminated unexpectedly or is still running.

    Hope it helps

  3. #833
    liverpoolfcfan's Avatar
    liverpoolfcfan is offline Outstanding Member
    Join Date
    Oct 2009
    Location
    Dublin, IRELAND
    Posts
    710
    Rep Power
    6

    Default

    The zimbra backend has no control over how many days email to sync. It gets told what to do by z-push. You should raise this issue on the z-push forum for troubleshooting. As it is a very new phone - there could be some changes in the email client that are causing issues with the filtering rules.

    Quote Originally Posted by rfr View Post
    Just to report something strange but for which I cannot identify the source.

    I recreated the Exchange account on my GS3 yesterday and everything seamed to work fine. This morning, I noticed that the phone started to download mail older than the synchronization period set on the phone. It seems it only happened when the synchro method was set as "Push" (set for working hours).

    It may be related to the following entry in the log:

    22/06/2012 08:22:33 [30462] [XXXXXXX] [ERROR] LoopDetection->ProcessLoopDetectionPreviousConnectionFailed(): Command 'Sync' at 22/06/2012 08:22:18 with pid '22019' terminated unexpectedly or is still running.

    Hope it helps

  4. #834
    marco.davi is offline Starter Member
    Join Date
    Jun 2012
    Posts
    1
    Rep Power
    3

    Default

    Hi,

    I am working with Zimbra, Release 7.1.3_GA_3346.RHEL6_64_20110928134428 CentOSUNKNOWN_64 FOSS edition (from zmcontrol -v), and I am trying to Sync.
    I have followed this guide Z-Push (v1 with HTML ActiveSync) for Zimbra FOSS | vBlog but when I try to test if the configuration in working instead of the expected “GET not supported” page I get this page:

    output( "xml"); $r->parse(); if( count( $r->err) == 0) // no errors detected echo $r->out; History: ======== Sat Nov 25 09:52:12 CET 2000 mfischer First version which has useable but only well-formed xml output; rtf data structure is only logically rebuild, no real parsing yet Mon Nov 27 16:17:18 CET 2000 mfischer Wrote handler for \plain control word (thanks to Peter Kursawe for this one) Tue Nov 28 02:22:16 CET 2000 mfischer Implemented alignment (left, center, right) with HTML
    character when outputting html or xml Sun Dec 18 16:36:00 CET 2011 mfischer Switch to GNU AGPLv3 (GNU Affero General Public License - GNU Project - Free Software Foundation (FSF)) and update links. Sun Jan 01 14:30:00 CET 2012 dw2412 Replaced ereg with preg_match function since ereg is deprecated with PHP 5.3 Introduced fonttbl_want_fcharset watch to prevent nasty message about uninitialized var Remarks: ======== This class and all work done here is dedicated to Tatjana. */ /* was just a brainlag suggestion of my inner link; don't know if I'll use it */ class rtfState { var $bold; var $italic; var $underlined; } class rtf { var $rtf; // rtf core stream var $len; // length in characters of the stream (get performace due avoiding calling strlen everytime) var $err = array(); // array of error message, no entities on no error var $wantXML; // convert to XML var $wantHTML; // convert to HTML // the only variable which should be accessed from the outside var $out; // output data stream (depends on which $wantXXXXX is set to true var $outstyles; // htmlified styles (generated after parsing if wantHTML var $styles; // if wantHTML, stylesheet definitions are put in here // internal parser variables -------------------------------- // control word variables var $cword; // holds the current (or last) control word, depending on $cw var $cw; // are we currently parsing a control word ? var $cfirst; // could this be the first character ? so watch out for control symbols var $flags = array(); // parser flags var $queue; // every character which is no sepcial char, not belongs to a control word/symbol; is generally considered being 'plain' var $stack = array(); // group stack /* keywords which don't follw the specification (used by Word '97 - 2000) */ // not yet used var $control_exception = array( "clFitText", "clftsWidth(-?[0-9]+)?", "clNoWrap(-?[0-9]+)?", "clwWidth(-?[0-9]+)?", "tdfrmtxtBottom(-?[0-9]+)?", "tdfrmtxtLeft(-?[0-9]+)?", "tdfrmtxtRight(-?[0-9]+)?", "tdfrmtxtTop(-?[0-9]+)?", "trftsWidthA(-?[0-9]+)?", "trftsWidthB(-?[0-9]+)?", "trftsWidth(-?[0-9]+)?", "trwWithA(-?[0-9]+)?", "trwWithB(-?[0-9]+)?", "trwWith(-?[0-9]+)?", "spectspecifygen(-?[0-9]+)?" ); var $charset_table = array( "0" => "ANSI", "1" => "Default", "2" => "Symbol", "77" => "Mac", "128" => "Shift Jis", "129" => "Hangul", "130" => "Johab", "134" => "GB2312", "136" => "Big5", "161" => "Greek", "162" => "Turkish", "163" => "Vietnamese", "177" => "Hebrew", "178" => "Arabic", "179" => "Arabic Traditional", "180" => "Arabic user", "181" => "Hebrew user", "186" => "Baltic", "204" => "Russion", "222" => "Thai", "238" => "Eastern European", "255" => "PC 437", "255" => "OEM" ); /* note: the only conversion table used */ var $fontmodifier_table = array( "bold" => "b", "italic" => "i", "underlined" => "u", "strikethru" => "strike" ); /* Class Constructor: Takes as argument the raw RTF stream (Note under certain circumstances the stream has to be stripslash'ed before handling over) Initialises some class-global variables */ function rtf( $data) { $this->len = strlen( $data); $this->rtf = $data; $this->wantXML = false; $this->wantHTML = false; $this->out = ""; $this->outstyles = ""; $this->styles = array(); $this->text = ""; if( $this->len == 0) array_push( $this->err, "No data in stream found"); } function parserInit() { /* Default values according to the specs */ $this->flags = array( "fontsize" => 24, "beginparagraph" => true ); } /* Sets the output type */ function output( $typ) { switch( $typ) { case "xml": $this->wantXML = true; break; case "html": $this->wantHTML = true; break; default: break; } } function parseControl( $control, $parameter) { switch( $control) { // font table definition start case "fonttbl": $this->flags["fonttbl"] = true; // signal fonttable control words they are allowed to behave as expected break; // define or set font case "f": if( $this->flags["fonttbl"]) { // if its set, the fonttable definition is written to; else its read from $this->flags["fonttbl_current_write"] = $parameter; } else { $this->flags["fonttbl_current_read"] = $parameter; } break; case "fcharset": // this is for preparing flushQueue; it then moves the Queue to $this->fonttable .. instead to formatted output $this->flags["fonttbl_want_fcharset"] = $parameter; break; case "fs": // sets the current fontsize; is used by stylesheets (which are therefore generated on the fly $this->flags["fontsize"] = $parameter; break; // handle alignment case "qc": $this->flags["alignment"] = "center"; break; case "qr": $this->flags["alignment"] = "right"; break; // reset paragraph settings ( only alignment) case "pard": $this->flags["alignment"] = ""; break; // define new paragraph (for now, thats a simple break in html) case "par": // begin new line $this->flags["beginparagraph"] = true; if( $this->wantHTML) { $this->out .= "
    "; } break; // bold case "bnone": $parameter = "0"; case "b": // haven'y yet figured out WHY I need a (string)-cast here ... hm if( (string)$parameter == "0") $this->flags["bold"] = false; else $this->flags["bold"] = true; break; // underlined case "ulnone": $parameter = "0"; case "ul": if( (string)$parameter == "0") $this->flags["underlined"] = false; else $this->flags["underlined"] = true; break; // italic case "inone": $parameter = "0"; case "i": if( (string)$parameter == "0") $this->flags["italic"] = false; else $this->flags["italic"] = true; break; // strikethru case "strikenone": $parameter = "0"; case "strike": if( (string)$parameter == "0") $this->flags["strikethru"] = false; else $this->flags["strikethru"] = true; break; // reset all font modifiers and fontsize to 12 case "plain": $this->flags["bold"] = false; $this->flags["italic"] = false; $this->flags["underlined"] = false; $this->flags["strikethru"] = false; $this->flags["fontsize"] = 12; $this->flags["subscription"] = false; $this->flags["superscription"] = false; break; // sub and superscription case "subnone": $parameter = "0"; case "sub": if( (string)$parameter == "0") $this->flags["subscription"] = false; else $this->flags["subscription"] = true; break; case "supernone": $parameter = "0"; case "super": if( (string)$parameter == "0") $this->flags["superscription"] = false; else $this->flags["superscription"] = true; break; } } /* Dispatch the control word to the output stream */ function flushControl() { if( preg_match( "/^([A-Za-z]+)(-?[0-9]*) ?$/", $this->cword, $match)) { $this->parseControl( $match[1], $match[2]); if( $this->wantXML) { $this->out.=" 0) $this->out.=" param=\"".$match[2]."\""; $this->out.="/>"; } } } /* If output stream supports comments, dispatch it */ function flushComment( $comment) { if( $this->wantXML || $this->wantHTML) { $this->out.=""; } } /* Dispatch start/end of logical rtf groups (not every output type needs it; merely debugging purpose) */ function flushGroup( $state) { if( $state == "open") { /* push onto the stack */ array_push( $this->stack, $this->flags); if( $this->wantXML) $this->out.=""; } if( $state == "close") { /* pop from the stack */ $this->last_flags = $this->flags; $this->flags = array_pop( $this->stack); $this->flags["fonttbl_current_write"] = ""; // on group close, no more fontdefinition will be written to this id // this is not really the right way to do it ! // of course a '}' not necessarily donates a fonttable end; a fonttable // group at least *can* contain sub-groups // therefore an stacked approach is heavily needed $this->flags["fonttbl"] = false; // no matter what you do, if a group closes, its fonttbl definition is closed too if( $this->wantXML) $this->out.=""; } } function flushHead() { if( $this->wantXML) $this->out.=""; } function flushBottom() { if( $this->wantXML) $this->out.=""; } function checkHtmlSpanContent( $command) { reset( $this->fontmodifier_table); while( list( $rtf, $html) = each( $this->fontmodifier_table)) { if( $this->flags[$rtf] == true) { if( $command == "start") $this->out .= "<".$html.">"; else $this->out .= ""; } } } /* flush text in queue */ function flushQueue() { if( strlen( $this->queue)) { // processing logic if( isset($this->flags["fonttbl_want_fcharset"]) && preg_match( "/^[0-9]+$/", $this->flags["fonttbl_want_fcharset"])) { $this->fonttable[$this->flags["fonttbl_want_fcharset"]]["charset"] = $this->queue; $this->flags["fonttbl_want_fcharset"] = ""; $this->queue = ""; } // output logic if( strlen( $this->queue)) { /* Everything which passes this is (or, at leat, *should*) be only outputted plaintext Thats why we can safely add the css-stylesheet when using wantHTML */ if( $this->wantXML) $this->out.= "".$this->queue.""; if( $this->wantHTML) { // only output html if a valid (for now, just numeric fonttable is given if( preg_match( "/^[0-9]+$/", $this->flags["fonttbl_current_read"])) { if( $this->flags["beginparagraph"] == true) { $this->flags["beginparagraph"] = false; $this->out .= "
    flags["alignment"]) { case "right": $this->out .= "right"; break; case "center": $this->out .= "center"; break; case "left": default: $this->out .= "left"; } $this->out .= "\">"; } /* define new style for that span */ $this->styles["f".$this->flags["fonttbl_current_read"]."s".$this->flags["fontsize"]] = "font-family:".$this->fonttable[$this->flags["fonttbl_current_read"]]["charset"]." font-size:".$this->flags["fontsize"].";"; /* write span start */ $this->out .= "flags["fonttbl_current_read"]."s".$this->flags["fontsize"]."\">"; /* check if the span content has a modifier */ $this->checkHtmlSpanContent( "start"); /* write span content */ $this->out .= $this->queue; /* close modifiers */ $this->checkHtmlSpanContent( "stop"); /* close span */ ""; } } $this->queue = ""; } } } /* handle special charactes like \'ef */ function flushSpecial( $special) { if( strlen( $special) == 2) { if( $this->wantXML) $this->out .= ""; } } /* Output errors at end */ function flushErrors() { if( count( $this->err) > 0) { if( $this->wantXML) { $this->out .= ""; while( list($num,$value) = each( $this->err)) { $this->out .= "".$value.""; } $this->out .= ""; } } } function makeStyles() { $this->outstyles = "\n"; } /* finally .. How this parser (is supposed) to work: ====================================== This parse simple starts at the beginning of the rtf core stream, catches every controlling character {,} and \, automatically builds control words and control symbols during his livetime, trashes every other character into the plain text queue */ function parse() { $this->parserInit(); $i = 0; $this->cw= false; // flag if control word is currently parsed $this->cfirst = false;// first control character ? $this->cword = ""; // last or current control word ( depends on $this->cw $this->queue = ""; // plain text data found during parsing $this->flushHead(); while( $i < $this->len) { switch( $this->rtf[$i]) { case "{": if( $this->cw) { $this->flushControl(); $this->cw= false; $this->cfirst = false; } else $this->flushQueue(); $this->flushGroup( "open"); break; case "}": if( $this->cw) { $this->flushControl(); $this->cw= false; $this->cfirst = false; } else $this->flushQueue(); $this->flushGroup( "close"); break; case "\\": if( $this->cfirst) { // catches '\\' $this->queue .= '\\'; $this->cfirst = false; $this->cw= false; break; } if( $this->cw) { $this->flushControl(); } else $this->flushQueue(); $this->cw = true; $this->cfirst = true; $this->cword = ""; break; default: if( (ord( $this->rtf[$i]) == 10) || (ord($this->rtf[$i]) == 13)) break; // eat line breaks if( $this->cw) { // active control word ? /* Watch the RE: there's an optional space at the end which IS part of the control word (but actually its ignored by flushControl) */ if( preg_match( "/^[a-zA-Z0-9-]?$/", $this->rtf[$i])) { // continue parsing $this->cword .= $this->rtf[$i]; $this->cfirst = false; } else { /* Control word could be a 'control symbol', like \~ or \* etc. */ $specialmatch = false; if( $this->cfirst) { if( $this->rtf[$i] == '\'') { // expect to get some special chars $this->flushQueue(); $this->flushSpecial( $this->rtf[$i+1].$this->rtf[$i+2]); $i+=2; $specialmatch = true; $this->cw = false; $this->cfirst = false; $this->cword = ""; } else if( preg_match( "/^[{}\*]$/", $this->rtf[$i])) { $this->flushComment( "control symbols not yet handled"); $specialmatch = true; } $this->cfirst = false; } else { if( $this->rtf[$i] == ' ') { // space delimtes control words, so just discard it and flush the controlword $this->cw = false; $this->flushControl(); break; } } if( ! $specialmatch) { $this->flushControl(); $this->cw = false; $this->cfirst = false; /* The current character is a delimeter, but is NOT part of the control word so we hop one step back in the stream and process it again */ $i--; } } } else { // < and > need translation before putting into queue when XML or HTML is wanted if( ($this->wantHTML) || ($this->wantXML)) { switch( $this->rtf[$i]) { case "<": $this->queue .= "<"; break; case ">": $this->queue .= ">"; break; default: $this->queue .= $this->rtf[$i]; break; } } else $this->queue .= $this->rtf[$i]; } } $i++; } $this->flushQueue(); $this->flushErrors(); $this->flushBottom(); if( $this->wantHTML) { $this->makeStyles(); } } } ?>


    If I take a look at the error log file, I read the following message: PHP Fatal error: Class 'rtf' not found in /var/www/html/z-push/include/z_RTF.php on line 48
    I then tried to have a look at z_RTF.php but everything looks fine there (I can see the rtfclass/rtfclass.php in which the 'rtf' class is declared).
    Of course then, when I try to configure a new account on my mobile device (a HTC) I get an error (actually, an authentication failure, but from the access log file I understand it is actually a server internal error, so probably that's the problem with the authentication). What should I do to have my z-push working? any advice? thanks in advance!

  5. #835
    rfr
    rfr is offline Member
    Join Date
    Feb 2011
    Location
    Belgium
    Posts
    12
    Rep Power
    4

    Default

    Quote Originally Posted by liverpoolfcfan View Post
    The zimbra backend has no control over how many days email to sync. It gets told what to do by z-push. You should raise this issue on the z-push forum for troubleshooting. As it is a very new phone - there could be some changes in the email client that are causing issues with the filtering rules.
    I posted on the z-push forum ( z-push.net &bull; View topic - Sync period not respected on GS3 with Z-Push2 and Zimbra ) and they send the ball back to the backend.

    What I find really strange is that it works correctly till a given moment which seems to be related to "push" sync.

  6. #836
    liverpoolfcfan's Avatar
    liverpoolfcfan is offline Outstanding Member
    Join Date
    Oct 2009
    Location
    Dublin, IRELAND
    Posts
    710
    Rep Power
    6

    Default

    Quote Originally Posted by rfr View Post
    I posted on the z-push forum ( z-push.net • View topic - Sync period not respected on GS3 with Z-Push2 and Zimbra ) and they send the ball back to the backend.

    What I find really strange is that it works correctly till a given moment which seems to be related to "push" sync.
    I replied to the thread on the z-push forum. Please just use that thread to troubleshoot this so that we can get help from the z-push guys to figure it out.

  7. #837
    rfr
    rfr is offline Member
    Join Date
    Feb 2011
    Location
    Belgium
    Posts
    12
    Rep Power
    4

    Default

    Was busy this weekend, I will test that tomorrow.

    What I can say up to now is that synchronizing every 5 minutes instead of using push does not exhibit the problem.

  8. #838
    rfr
    rfr is offline Member
    Join Date
    Feb 2011
    Location
    Belgium
    Posts
    12
    Rep Power
    4

    Default

    Quote Originally Posted by liverpoolfcfan View Post
    I replied to the thread on the z-push forum. Please just use that thread to troubleshoot this so that we can get help from the z-push guys to figure it out.
    I replied on the z-push thread.

  9. #839
    bofh is offline Elite Member
    Join Date
    May 2010
    Posts
    272
    Rep Power
    5

    Default

    Hello,

    ahm im not upgrading to zpush 2.0 very soon but in case i will sometime

    whats about the state directory (iam using smart folder and db provis)
    my problem is i cannot do anything on the phones (too many already)

    so as ive understand ife to clean the state and reinstall the sync on the phone ? is that correct?
    or does it jsut mean to stop the httpd server and clean out the directory ?


    so is there any way to upgrade without doing anything on the phones besides running both on seperate subdomains and send out an email and pray user going to upgrade themself

    btw whats the real benefits of zpush 2 and the new 2.0 beta backend ?



    ahh and another thing, anyway to clean the state directory from older entrys?
    ife several tousands there

  10. #840
    liverpoolfcfan's Avatar
    liverpoolfcfan is offline Outstanding Member
    Join Date
    Oct 2009
    Location
    Dublin, IRELAND
    Posts
    710
    Rep Power
    6

    Default

    My opinion would be to hold off deploying z-push-2 for another couple of months. There are still quite a few issues with it as is normal with any complete re-write of software - though the guys are working very hard to resolve them. I am still working through making/testing all the changes needed in the backend to support the changed architecture too, but again that is getting close to completion.

    The release announcement z-push.net &bull; View topic - Z-Push 2.0 final released explains how z-push-2 uses different state and log directories.

    So, if you update your apache alias to point to a new installation of z-push-2, all your old state stuff will be left in the old state folder, and your new states will be created in the new state folder. z-push-2 has the added advantage that the state data is now spread over multiple folders. For every device, the last two characters of the deviceId are used to create 2 levels of folders. The first sub-folder is named for the last character of the deviceId, and the second level sub-folder is named for the second last character of the deviceId. So, for example - assuming you use the default state folder or /var/lib/z-push and your device id is ABCD1234567890A, the state data for that device will be stored in a folder named /var/lib/z-push/A/0/ Obvoiusly, there could be multiple deviceIDs that end with those same 2 characters - but to make things easy, every state file related to each device is named with a prefix of the deviceId - so when you list the folder you can easily see the files related to each device.

    The old provisioning tools I wrote will not work with z-push-2, as there are no hooks in z-push to the functions that are in the backend to read/write the data to the provisioning database. However, z-push-2 does have it's own built in provisioning support. There is a command line php script provided that allows you to list devices, remove devices, wipe devices, etc.

Page 84 of 106 FirstFirst ... 3474828384858694 ... LastLast

Thread Information

Users Browsing this Thread

There are currently 5 users browsing this thread. (0 members and 5 guests)

Similar Threads

  1. z-push and zimbra backend problem
    By ben1967 in forum Mobility
    Replies: 9
    Last Post: 11-14-2012, 11:29 PM
  2. z-push and zimbra backend problem
    By ben1967 in forum Administrators
    Replies: 0
    Last Post: 11-11-2012, 02:11 PM
  3. [SOLVED] Z-push Zimbra backend workaround
    By Inchoate in forum Mobility
    Replies: 6
    Last Post: 01-19-2012, 04:22 AM
  4. [SOLVED] Z-push Zimbra backend workaround
    By Inchoate in forum Administrators
    Replies: 0
    Last Post: 10-31-2010, 07:06 AM
  5. Replies: 348
    Last Post: 10-11-2010, 05:39 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •