IMAP backend search not working (filter becomes before 1970-01-01 and after 1970-01-01)



  • I found email search not working from Android today. Tracked it down to the search filter giving after and before dates of 1970.

    In the code in BackendIMAP::getSearchRestrictions:
    $searchGreater = strftime("%Y-%m-%d", strtotime($cpo->GetSearchValueGreater()));
    $searchLess = strftime("%Y-%m-%d", strtotime($cpo->GetSearchValueLess()));

    $cpo search values are empty, and strtotime is returning false, which strftime is happily converting to a time string like 1970-01-01 for both.

    I replaced with
    $searchGreater = ‘’;
    $searchLess = ‘’;
    if ($t = strtotime($cpo->GetSearchValueGreater())) {
    $searchGreater = strftime("%Y-%m-%d", $t);
    }
    if ($t = strtotime($cpo->GetSearchValueLess())) {
    $searchLess = strftime("%Y-%m-%d", $t);
    }

    and search is working fine for me now.

    Seems like a new problem as I’ve seen posts from others with debug showing proper dates in the filter string?


  • Kopano

    Hi freescape,

    would you like to contribute the fix to the Z-Push community? See https://wiki.z-hub.io/display/ZP/Development+guidelines for more information.

    Manfred



  • Hrrm, I know about as much about PHP as I do about playing the Antagonistic Undecagonstring two-handed… so sure, why not! :-)


Log in to reply
 

Looks like your connection to Kopano Community Forum was lost, please wait while we try to reconnect.