Publishing details

Changelog

oscam (1.20-11311~r11081-wily) wily; urgency=medium

  * [r11081]

    another tryfix for radegast


  * [r11080]

    VIACCESS:

    - All classes in an emm have to match!



  * [r11079]

    VIACCESS:

    - Seems an emm can contain multiple classes -> reworked the code once more!



  * [r11078]

    radegast: suppressing subecms for caid 0x500 is broken on 0500:041980 -> fix: only suppress subecms when ecmlen > 0xFE


  * [r11077]

    DVBAPI:

    - Revert EMM handling exset and drecrypt since it breaks bulcrypt



  * [r11076]

    RATELIMITER:

    - Fix on cooldown: take the srvidholdtime into account too!



  * [r11075]

    the 0x4A caid range contains a lot of systems, so better revert to the old line.
    caid_is_dre() is meant to be for Drecrypt, if a function for Dreamcrypt is needed, please create another function.


  * [r11074]

    DVBAPI:

    - Increase maximum filters to 32 for now.
      We could increase to 128, some boxes/images do support it but its eating up too much resources we better make it dynamical but it involves many dvbapi code changes
      The fd limit issue on demuxers has been researched in deep by AbrahaM, Mickey and Tequila for quite some time due too 0 size recording issues on some images.
      So a big thank you for the great effort you put into it: https://github.com/Duckbox-Developers/dr...a43375c2fddc7a6

    - Added a check on dvbapi startup how many filters each demuxer can handle (only api 1 and 3, so no stapi/coolstream/whatever)

    - To avoid possibility of 0 recordings on old images/boxes due to too many emmfilters now emm and sdt filters get killed right before new channel is starting to descamble
      that way we make maximize the chance that ecm filters can be started

    - Dreamcrypt seems to use caid 0x2710 too -> added!


    The fd limit on demuxers has been researched by AbrahaM, Mickey and Tequila due to the



  * [r11073]

    fix for long emms


  * [r11072]

    +Added OE2.0 and OE2.2 cipher mode API to module-dvbapi.c (dreambox only for now)
    Possible ciphers on OE2.0: CSA, DES
    Possible ciphers on OE2.2: CSA, DES, AES128
    (if the driver supports it)

    +Updated oscam for extendes cws, this includes:
    ->using different cws for each stream type (video, audio, data)
    ->using CSA, DES, AES128 as cipher

    -> All these changes are DISABLED by default atm, and can be turned on in globals.h:
    //#define WITH_EXTENDED_CW 1





  * [r11071]

    DVBAPI:

    - Tryfix streampid takeover



  * [r11070]

    added caid_is_dre()


  * [r11069]

    *Fix: emmcache truncated last 3 bytes of cached EMM
    *Update: support large EMMs
    *Update: verify EMM length


  * [r11068]

    fix MAX_EMM_SIZE for emm reassembly buffer


  * [r11067]

    DVBAPI:

    - Some rework on ca pmt parsing & connection handling



  * [r11066]

    DVBAPI:

    - Some retrying while disabling filters and their fd's



  * [r11065]

    DVBAPI:

    - Fix PMT parsing for caid 2710 (tricolor)



  * [r11064]

    DVBAPI:

    - Disable all indexes for a streampid on ca right before takeover by new index



  * [r11063]

    DVBAPI:

    - Tryfix takeover streampid from other demuxer with different index



  * [r11062]

    clienttimeout  ->   increasing multiplier to prevent low timeout values


  * [r11061]

    IRDETO:

    - Extended logging cardstatus after ECM request (Tnx Newcslover for providing initial patch!)



  * [r11060]

    SECA:

    - Dont return ERROR on corrupt/fake ECM since it will block the channel for correct ecm too!



  * [r11059]

    IRDETO:

    - Some cards have status on different position, so start using cta_res[cta_lr-2] instead of cta_res[3] (Tnx jsompis for providing patch!)



  * [r11058]

    CRYPTOWORKS:

    - EMM rework

    report issues here: http://www.streamboard.tv/wbb2/thread.php?postid=553585#post553585



  * [r11057]

    IRDETO:

    - Fix for non acs57 based cards: cardstatus after emm was 1 byte off (tnx Jsompis and newcslover!)



  * [r11056]

    VIACCESS:

    - Fixed a logcosmetic



  * [r11055]

    VIACCESS:

    - EMM logcosmetics



  * [r11054]

    IRDETO:

    - Disable emmcache in code since it wont work for this cas:
      some logging revealed 150 unique emms in just 10 minutes, after several hours/days the emmcache will take tremendous resources leading to slow writing and timeouts on ecm handling!



  * [r11053]

    IRDETO:

    - Fix: dont report in log error if its a softerror like 0x7B / 0x7C (chid already up to date / emm already written)



  * [r11052]

    EMM:

    - Attempting to clean stale emms on every single new emm is a complete waste of resources!



  * [r11051]

    - Fix overflow warning r11050



  * [r11050]

    DVBAPI:

    - Add support for seca PBM and date in PMT of a channel (in the old days this was used for cams to determine if channel could be descrambled by card)



  * [r11049]

    IRDETO:

    - More fix emm irdeto card status return (tnx newcslover!)



  * [r11048]

    VIACCESS:

    - Update entitlements a bit more smarter after a successfull nano A9 has been written!



  * [r11047]

    IRDETO:

    - Removed the == 00 as suggested by jsompis



  * [r11046]

    VIACCESS:

    - Fix old classes not added anymore to entitlement database of oscam
    - Attempt to auto refresh entitlement after date emm written to card



  * [r11045]

    VIACCESS:

    - Final tryfix viaccess emm: dont write same dated emm tnx goes to tvglotze and geisivi for assistence with testing and suggestions!



  * [r11044]

    VIACCESS:

    - Next tryfix for 9040 errors



  * [r11043]

    IRDETO:

    - Extend emm card status response to 5 bytes on both acs57 and non acs57 in order to get more details on the many shared error emms



  * [r11042]

    VIACCESS:

    - Experimental tryfix emm 9040 error: card entitlement seems to have always double class entry with startdate just 1 below the other (tnx Pr2!)



  * [r11041]

    VIACCESS:

    - Experimental tryfix emm 9040 error: if class entitlement on card is lower or equal in date skip the emm! (since it seems already being written)



  * [r11040]

    - Partially revert 11038



  * [r11039]

    VIACCESS:

    - Experimental: Avoid emm response 9040 by checking emm enddate, if same enddate -> skip!

    Report your issues / results here:

    http://www.streamboard.tv/wbb2/thread.php?postid=553132#post553132




  * [r11038]

    IRDETO:

    - Fix emm errors, tested on Irdeto SC 58 version 19 revision 1, patch level e
    - Added card emm responsecodes to emmlog



  * [r11037]

    fix: do not display payload for network readers


  * [r11036]

    oscam.version fix output for CARDREADER_INTERNAL_COOLAPI2


  * [r11035]

    DVBAPI:

    - Tryfix prio betatunneled ecmpids



  * [r11034]

    DVBAPI:

    - Resort ecmpid: use is_localreader() to detect localreaders!



  * [r11033]

    DVBAPI:

    - Fix: and dont forget to paste it at the right position! ;)



  * [r11032]

    DVBAPI:

    - Fix: removed a copy / paste error!



  * [r11031]

    DVBAPI:

    - Resort ecmpids fix: the first P: match in oscam.dvbapi is used all next are ignored.



  * [r11030]

    DVBAPI:

    - reworked prio settings once more



  * [r11029]

    DVBAPI:

    - Resort ecmpids more fix for i:0 (attempt to resembles the old behaviour / function of it)



  * [r11028]

    DVBAPI:

    - Resort ecmpids fixed forced ecmpid
    - Resort ecmpids I:0 was acting on all ecmpids -> ignore all -> black screen!



  * [r11027]

    applied coolstream2 patch by flk, thank you!


  * [r11026]

    fixed macro


  * [r11025]

    DVBAPI:

    - Some more rework on sorting ecmpids

    Post your personal input or bugreports here: http://www.streamboard.tv/wbb2/thread.php?postid=552726



  * [r11024]

    fix for last commit


  * [r11023]

    updated coolapi support
    for details see: http://www.streamboard.tv/wbb2/thread.php?&threadid=39134


  * [r11022]

    hide serial by default


  * [r11021]

    added missing file from last commit


  * [r11020]

    Patch from Ultra47:

    - Correct PID in footer (now parent PID instead PID of Webif)
    - Show PID in oscam.conf
    - Fix for v10994: show only files entry constant.cw if constant.cw compiled



  * [r11019]

    fix a segfault


  * [r11018]

    updated via6 atr check.
    this adds support for the new srg via6 card.
    thanks to everyone involved!
    for more details check: http://www.streamboard.tv/wbb2/thread.php?threadid=44106


  * [r11017]

    updated payload messages,thanks to regedit and Optimum Power


  * [r11016]

    change/fix: now payload is always displayed in log, if its a nds card


  * [r11015]

    fix: now 0F06/04 payload should be display for V13 or similar cards, too


  * [r11014]

    DVBAPI:

    - Disable sectionfiltering for ipboxes for more details see ticket #3056



  * [r11013]

    fix: 0F06 prefix was missing in default ecmfmt config


  * [r11012]

    fix: now forwarding ea.tier to write_ecm_answer()


  * [r11011]

    now displaying tier name, if available, by default


  * [r11010]

    better implementation for ecmfmt = y/Y
    enabled display of tier in ecmfmt by default


  * [r11009]

    added ecmfmt = Y to display full payload (6 bytes)
    note: ecmfmt = y displays short payload (3 bytes)


  * [r11008]

    added ecmfmt "t"
    t = used tier (videoguard)


  * [r11007]

    DVBAPI:

    - Tryfix prio in oscam.dvbapi is leading and still keep the new attempted feature that more matching readers for an ecmpid gives a higher prio!



  * [r11006]

    DVBAPI:

    - Revert r10999



  * [r11005]

    DVBAPI:

    - Some rework on filtermatching
    - Some rework on wrong section length



  * [r11004]

    DVBAPI:

    - Some rework on ecm/ecm/sdt section length returned by filters
    - More info about emm filterdata delivered to dvbapi



  * [r11003]

    DVBAPI:

    Removed the filter killer on bad filterdata since there are too many boxes like STAPI and su980 that deliver data we didnt ask for!
    Now bad filtedata will be discarded. We cant kill the filter delivering bad data since its delivering good data too!
    At least the bad filterdata is detected and cant trigger bad things that should not happen.




  * [r11002]

    DVBAPI:

    - Tryfix MCA: reported broken since r10979 by FilipeAmadeuO



  * [r11001]

    DVBAPI:

    - Dont setup filters for cards that dvbapi user has no group match (Tnx AbrahaM for reporting!)



  * [r11000]

    Keepalive: (patch delivered by boneco69)

    - This patch make CCcam client to sent MSG_KEEP_ALIVE to SERVER every 10s so CCcam Server maintains the Client in connected state.
    - This patch enables "keepalive" parameter to IGNORE local timeout so the TCP stream isn't closed.
    - This patch enables "ccckeepalive" to work as espected.




  * [r10999]

    DVBAPI:

    - Fix emm filternum handling: it was always 1 too high!



  * [r10998]

    - Fix return value on different ecmhash: now its always either 0 or 1 nothing else!
    - Tryfix skip betatunneled ecm hash check since they never match!



  * [r10997]

    - Switching to nagra layer still seems to fail for ET-7500 and ET-8500, users affected should enable deprecated on the reader as a workaround!



  * [r10996]

    DVBAPI:

    - r10995: there was no runnning code lost -> revert!
    - dont touch demuxers driven by other pmt files or connections than the current



  * [r10995]

    DVBAPI:

    - Tryfix ticket #4308: somehow setting the demuxer was already running code was lost!



  * [r10994]

    Just commiting a patch delivered by ugola79:




  * [r10993]

    - Auto create oscam.srvid2 if oscam.srvid and oscam.srvid both do not exist (its not nice that user have to create such a file manually in order to let SDT work!)



  * [r10992]

    DVBAPI:

    - Only fix provid if provid could be extracted from ecm!



  * [r10991]

    DVBAPI:

    - Small fix on stopping filters (they could be stopped by another thread!)



  * [r10990]

    DVBAPI:

    - Tryfix disable streampids on stop descrambling channel



  * [r10989]

    DVBAPI:

    - Even more fix for filter setup... Hope I catched them all by now :)



  * [r10988]

    DVBAPI:

    - Fix: only register filter details if filter was set successfully



  * [r10987]

    DVBAPI:

    - Stapi device ca handling fixes
    - Disable stapi filter killer on deliveral of bad filterdata (seems those boxes are notorious for delivering bad data!)


    Keep in mind:

    Stapi code needs to be better integrated into oscam dvbapi.
    Since I'm a bad coder I cant do it without doing a lot of testdriving and I'm not buying a stapi device just to recode and please the crowd ;)



  * [r10986]

    DVBAPI:

    - Some rework on filter input handling 3 strikes out -> 14 strikes out
    - Some rework on dvbapi ecm requests: only request same ecm again if current and previous ecmrequest result delivered no controlword
    - Some rework on ecm hashing for dvbapi (just use our own dvbapimodule only hashalgo)
    - Some rework on prio algo (I'm already starting to regret touching it in the first place!)
    - Revert enable / disable streams on ca device only once (possible sporadic requestmode 1 issues!)




  * [r10985]

    DVBAPI:

    - More fix for ecmpid prio code
    - Ecmhandler fixes the provid, dvbapi needs to do the same otherwise controlword handling fails!



  * [r10984]

    Added new value 'y' for parameter 'ecmfmt' to documentation.


  * [r10983]

    Added new parameter 'getblockemmauprovid' to documentation.


  * [r10982]

    DVBAPI:

    - If enabling stream on ca device fails remove it from oscam internal capid list



  * [r10981]

    DVBAPI:

    - Reworked ecmpid prio code (not all readers were evaluated in prio algo!)
    - More protection against data from unusable/bad filters: its now 3 strikes and you are out!



  * [r10980]

    DVBAPI:

    - Fix memleak / azbox patch provided by ugola79



  * [r10979]

    DVBAPI:

    - Tryfix race condition: ecm request gets answered and handled by dvbapi cw handler before ecmd5 hash has been copied to demuxer for delayed response check



  * [r10978]

    fixed missing html part


  * [r10977]

    fixed crash for negative class settings


  * [r10976]

    fix for commit 10971


  * [r10975]

    fix for twin protocol


  * [r10974]

    free CLASSTAB memory


  * [r10973]

    removed CS_MAXCAIDTAB limit


  * [r10972]

    adjustments for last commit


  * [r10971]

    added patch from #4175.
    patch provided by w33d, thank you!


  * [r10970]

    added support for twin protocol (serial)
    discuss in: http://www.streamboard.tv/wbb2/thread.php?postid=551263
    patch provided by coolirc


  * [r10969]

    fix for last commit


  * [r10968]

    fix for last commit


  * [r10967]

    camd35 tcp, cccam: enable TCP_NODELAY setting when not using cache-ex mode 2 or 3


  * [r10966]

    added fix for missing MSG_WAITALL for cygwin,
    as proposed in http://www.streamboard.tv/wbb2/thread.php?threadid=44029
    thanks goes to softworkz


  * [r10965]

    added proposed fix from http://www.streamboard.tv/wbb2/thread.php?threadid=44031


  * [r10964]

    added fix as proposed in #4294.
    thanks to perexg


  * [r10963]

    DVBAPI:

    - Some rework on CA server PMT connection handling



  * [r10962]

    DVBAPI:

    - Tryfix vdr-plugin-dvbapi



  * [r10961]

    added option to enable syncing of emmfilters and auproviders with server.
    patch created by our well known and loved member the.sniffer, thank you very much!


  * [r10960]

    DVBAPI:

    - Remove filterdata debug line
    - Simplify filterstorage used for comparison



  * [r10959]

    DVBAPI (Experimental!)

    - Added filterdata check: now we are sure filter data we get from the box is matching with the filter that we setup to receive it!



  * [r10958]

    Added new parameter 'cacheex_block_fakecws' and new config file 'oscam.fakecws' to documentation.


  * [r10957]

    DVBAPI:

    - Some rework on disable_unused_streampids() in attempt to improve it (affects channel changes crypted -> FTA, FTA -> crypted)



  * [r10956]

    DVBAPI:

    - Fixed removal of pid in use by multiple indexes on a ca device and using index 0 for decoding was always returning REMOVED_DECODING_STREAMPID_INDEX



  * [r10955]

    DVBAPI:

    - Enable / disable streampids only once on startup of channel
    - Index must be unique on same CA device: just counting up cant be used since ca device accepts not every index number



  * [r10954]

    until oscam is multi threading safe, do not shutdown when a pthread function failed


  * [r10953]

    - Revert nonworking tryfix from r10951



  * [r10952]

    - Tryfix regression introduced r10950 in ecmhandling



  * [r10951]

    - Tryfix regression introduced r10950 in ecmhandling



  * [r10950]

    Ratelimiter:

    - Allow exactly 1 premature ecmtype (odd/even) change for a srvid sitting in a slot (usefull right after zapping to a new channel!)
    - Added trick in matching_reader() -> now dvbapi client will try again same ecm if readers couldnt answer due to ratelimit
    - Fixed reader_get_ecm() -> now asking same ecm that delivered no controlword due to ratelimit is impossible



  * [r10949]

    - Fix regression specific delay introduced in r10944



  * [r10948]

    - Tryfix for original cccam flood issue with repsonses >5000ms in #4282 by TheTroll



  * [r10947]

    fix last commit


  * [r10946]

    fix delayer() calls


  * [r10945]

    dvbapi:

    - Fix misplaced else constuction previous commit!



  * [r10944]

    dvbapi:

    Now the generic delayer configured by delayer = xxx in oscam.conf and
    specific delayer configured in oscam.dvbapi with "D: [CAID]:[provider ID]:[service ID]:[ECM PID] delay"
    behave the same. They both will wait relative to the time of the ecmrequest: No wait is applied if controlword is received and delay time was already gone.
    Before the specific delayer waited always fixed time after controlword was recieved: that is confusing and can lead to pixalization if ecm response was delayed for some other reason. (E.G. card busy, network congestion)



  * [r10943]

    As discussed in http://www.streamboard.tv/wbb2/thread.php?&threadid=43929 ,
    the server can no longer override client block-emm settings.


  * [r10942]

    applied webif cleanup patch from: http://www.streamboard.tv/wbb2/thread.php?threadid=43972
    thanks to the.sniffer and ultra47


  * [r10941]

    added cacheex dynwaittime fix from: http://www.streamboard.tv/wbb2/thread.php?&threadid=43936&page=2
    thanks to w33dburner!


  * [r10940]

    NDS:

    - Datefix from #4188 for Videoguard Norway 0941 (tnx BigGyros for patch and Nimloth for testing!)



  * [r10939]

    - CWCycle improvement from #4274 (Thx lpm11 for patch!)



  * [r10938]

    DVBAPI:

    - Revert 10937: there was no memleak, 10937 freed the BISS ecmrequest before it was handled by the ecmhandler!



  * [r10937]

    DVBAPI:

    - Remove fakecm construction
    - Fix a memleak



  * [r10936]

    fixed a warning



  * [r10935]

    better fake cw statistics


  * [r10934]

    optimized fake cw code.
    oscam can now deal with huge oscam.fakecw lists:

    (config) 18556 fakecws's loaded
    (config) max 112 fakecw compares required for each cw


  * [r10933]

    Added new parameter 'max_connections' to documentation.


  * [r10932]

    fix another warning


  * [r10931]

    fixed a warning


  * [r10930]

    make sure er->ecmlen matches real ecm length


  * [r10929]

    tryfix for #4004


  * [r10928]

    added irdeto base date from #4174.
    but kept out entries for irdeto cards, these do not hurt and make sure we do not break anything with this change.


  * [r10927]

    reduced sleep delay, to avoid bug reported in #4264


  * [r10926]

    added user setting "max_connections", default value: 1;
    when the connection number reaches max_connections, the uniq setting kicks in.


  * [r10925]

    added chid to ecm.info file for oscam, oscam_ms and wicardd mode


  * [r10924]

    added fakecw filtering for csp with "csp_block_fakecws"


  * [r10923]

    move double check up, to avoid bugs


  * [r10922]

    fixed two bugs reported by boneco69 in #4255


  * [r10921]

    only warn when pthread_attr_setstacksize() fails, because there are systems where "sysconf(_SC_PAGESIZE)" returns a wrong value.


  * [r10920]

    no longer using "check_filled()" for keys, because it did not work with keys containing zero bytes


  * [r10919]

    added blocking of invalid cws/dcws for Cache-Ex.
    list the fake cws in oscam.fakecws, one dcw each line.
    fake cw blocking can be enabled with "cacheex_block_fakecws" in reader (ce mode 2)/account (ce mode 3) config


  * [r10918]

    fix for mgcamd clients


  * [r10917]

    updated newcam filtering once more


  * [r10916]

    avoid invalid calls to pthread_cond_timedwait()


  * [r10915]

    revert last commit (fix it good, just needed some tweaking on the other end)


  * [r10914]

    fixed samygo filters


  * [r10913]

    next tryfix for newcamd


  * [r10912]

    fix for non-standard filter on samygo


  * [r10911]

    revert last commit


  * [r10910]

    added command line option to not write oscam.version


  * [r10909]

    tryfix for #4212


  * [r10908]

    Added parameter 'readtiers' to documentation.


  * [r10907]

    Added new boxtype 'samygo' to documentation.


  * [r10906]

    disable read_sdt on samygo


  * [r10905]

    fixed channel switch problem on samygo


  * [r10904]

    fixed for samygo (libOSCAM.so v0.4.0)

    new dvbapi config: (boxtype = samygo)

    [dvbapi]
    enabled                       = 1
    pmt_mode                      = 0
    boxtype                       = samygo


  * [r10903]

    fixed bug #4266


  * [r10902]

    fix for last commit


  * [r10901]

    tryfix for #4267


  * [r10900]

    removed one more hard-coded index to devices[]


  * [r10899]

    removed hard-coded indexes to devices[]


  * [r10898]

    updated wetek dvb device name


  * [r10897]

    added wetek dvbapi devices


  * [r10896]

    Webif:

    - Fix delete individual reader stat (broken since rev 10781)



  * [r10895]

    Added new parameter 'deskey' to documentation.


  * [r10894]

    Viaccess nano E0 postprocessing support for returned CW.
    You still need the 3DES key which is not part of this patch.


  * [r10893]

    WebIf:

    - When polling is paused, the two [+] and [-] buttons are grey.
    - Start/Stop polling button have permanently red color.

    If you can green color for "Start" polling button. You can use in custom.css file this:

    .pollingdisabled {background-color: #0A0}
    .pollingdisabled:hover {background-color: #00D814}


  * [r10892]

    WebIf: Fix for Safari.

    next changes:
    - green color for polling enable
    - new icons (gray color -> white) for off status in readers and users


  * [r10891]

    WebIf: Fix my mistake - thx ultra47


  * [r10890]

    WebIf: The final decision on the buttons

    The backgroundcolor of the button indicates the following:

    - red color - action
    - green color - status on
    - gray color - status off

    I think that this solution is really a good compromise for all

    http://www.streamboard.tv/wbb2/thread.php?threadid=43857

    If you want to use other buttons, please use the Template module.


  * [r10889]

    DVBAPI:

    - If an index of ca has already got cw part written skip it on following pids that use same ca and index



  * [r10888]

    DVBAPI:

    - more rework on polling



  * [r10887]

    - Tryfix viaccess emmtext (tnx Pr2 for delivering the raw emm dumps!)



  * [r10886]

    DVBAPI:

    - remove debugline / logspam



  * [r10885]

    DVBAPI:

    - more rework on polling



  * [r10884]

    fix some warnings


  * [r10883]

    tryfix: fix segfault crash when stopping via SIGTERM (kill command).
    when using "cs_restart_mode = 2" this made it impossible to shutdown oscam.

    this also *maybe* fixes the webif related crash reported here:
    http://www.streamboard.tv/wbb2/thread.php?threadid=30975&page=34


  * [r10882]

    fixed name collision on some toolchains


  * [r10881]

    fixed newlines (converted from win to unix)


  * [r10880]

    DVBAPI:

    - More rework dvbapi_read_device()



  * [r10879]

    updated headers


  * [r10878]

    VIACCESS:

    - Zero out the emm reassembly buffer before copying a fresh emm to it



  * [r10877]

    better buttons
    thanks BIT


  * [r10876]

    EMM:

    - Increase emm maxsize to 512, viaccess send new long emms with text in it!

    VIACCESS:

    - Attempt to add support to dump the new viaccess emm-text to readerlog



  * [r10875]

    replaced des implementation with a faster one (about 20x faster on most systems).
    moved newcamd specific des code into module-newcamd.c.


  * [r10874]

    WebIf: Patch by hook - Make Pollinterval Button styleable in CSS.


  * [r10873]

    WebIf: Add 'hover' effect for green buttons.


  * [r10872]

    WebIf: by ultra47
    Basic idea 'Polling Pause'

    - polling in extra file (same code for 4 pages)
    - pause function for polling
    - show temp dir in files/oscam.version
    - use old play and pause button (is better for pause function and is the better lock for standard webif)
    - button with background image (now no problems with all browsers) => thx to skyndas
    - green background color for paused mode => idea by the.sniffer
    - change 'minus' character in polling and livelog button

    Start discussion - http://www.streamboard.tv/wbb2/thread.php?postid=547587#post547587

    !!Please solve the icons, I-0 style??!!



  * [r10871]

    no longer modify stack size for threads where we did not so before.
    there is no experience whether it works for these threads, so do not risk it.


  * [r10870]

    setting stack size again (not setting it gave problems on systems with low RAM).



  * [r10869]

    Doc: update for autodiscover config path, again.


  * [r10868]

    DVBAPI:

    - More rework dvbapi_read_device()



  * [r10867]

    DVBAPI:

    - Rework dvbapi_read_device() in attempt to make the code less buggy



  * [r10866]

    updated find_conf_dir


  * [r10865]

    webif ssl: fixed creating getssl key when ssl is disabled on startup


  * [r10864]

    Update for autodiscover of config path in documentation.


  * [r10863]

    fix for find_conf_dir()


  * [r10862]

    rand() is fixed now, so use rand() instead of pointer address for client id


  * [r10861]

    username() should return const char*


  * [r10860]

    some fixes for read_sdt when no ecmpid is selected


  * [r10859]

    fix for calls to pthread_join


  * [r10858]

    Update for 'read_sdt' documentation.


  * [r10857]

    no more messing with stack size; new code to align stack size to page size did not work


  * [r10856]

    fixed dereference of null pointer


  * [r10855]

    now printing all direct error messages to stderr


  * [r10854]

    + tryfix for setting stack size on machines which enforce it to be a multiple of page size.
    NOTE: maybe it would be wise to stop setting stack size; we are doing it atm to save RAM, but we cannot know for sure how much stack size oscam really needs. normally it is advised to use the local default stack size. As I am not aware of any reported stack overflows in oscam, I did not remove it.

    + now checking return value of all pthread functions where it makes sense to do so

    + now always use start_thread() instead of pthread_create





  * [r10853]

    added overflow check to read_card()


  * [r10852]

    Update for parameter 'read_sdt' to documentation: auto detection of service type.


  * [r10851]

    fix for finding provider name when provid is zero


  * [r10850]

    read_sdt: now also detecting service type (TV, Radio, Data)


  * [r10849]

    tryfix for writing provid FFFFFE instead of provid 0 to srvid/2


  * [r10848]

    more fixes for srvid/provid search algo


  * [r10847]

    Added new parameter 'write_sdt_prov' to documentation.


  * [r10846]

    Added new parameter 'read_sdt' to documentation.


  * [r10845]

    Added new config file 'oscam.srvid2' to documentation.


  * [r10844]

    Added autodiscover of configuration files to documentation.


  * [r10843]

    Added new paramter 'ecminfo_type' to documentation.


  * [r10842]

    fixed last_provid when provid is 0


  * [r10841]

    updated read_sdt setting.
    new values:
    0 = off
    1 = on, do not save FTA channels
    2 = on, save FTA channels

    added new write_sdt_prov setting.
    values:
    0 = on, do not write provider name into oscam.srvid/2
    1 = on, write provider name into oscam.srvid/2



  * [r10840]

    fixed missing '\0' in ecmfmt


  * [r10839]

    only show first 3 payload bytes in ecmlog


  * [r10838]

    oscam.provid: now ignoring invalid liens


  * [r10837]

    some improvements for ecmfmt


  * [r10836]

    - FTA support for detect channel name (SDT)



  * [r10835]

    fixed overflow in format_ecm() and adjusted buffer sizes


  * [r10834]

    - Fix for AZbox using wrong capmt listcommand



  * [r10833]

    read_sdt: do not add empty provider names


  * [r10832]

    fix compile error


  * [r10831]

    read_sdt: updated to latest dvb standard (2014).
    korean and chinese encodings are not supported atm.


  * [r10830]

    usage of pthread_attr_setstacksize() can now be disabled by defining "NO_PTHREAD_STACKSIZE"

    EXTRA_FLAGS="'-DNO_PTHREAD_STACKSIZE"


  * [r10829]

    re-wrote ecmfmt().
    now displaying vg payload in ecmlog.
    variable name for ecmfmt setting is 'y'


  * [r10828]

    some fixes for loghistory multi-threading


  * [r10827]

    fixed error


  * [r10826]

    fixed typo


  * [r10825]

    updated vg payload name


  * [r10824]

    fix for payload view in webif


  * [r10823]

    added last payload to webif for vg cards


  * [r10822]

    fixed typo


  * [r10821]

    read_sdt: fixed reading sdt data with empty provider name


  * [r10820]

    more fixes for last commit


  * [r10819]

    fixed error


  * [r10818]

    fixed gbox lock bug


  * [r10817]

    Most calls to pthread are now checked for errors.
    From now on use the new SAFE_*() wrappers when using pthread functions.

    Warning:
    After adding the pthread checks, I had to fix several existing bugs, including:
    + no initialization for lockindex in dvbapi
    + using unitialized locks in oscam-log
    + no initialization for ecm_pushed_deleted_lock

    Because of that I execept at least some more bugs related to pthread.
    So keep calm and upload a log file if oscam now crashes you with a "FATAL ERROR" message.
    The bugs were already there, but now we are catching them.




  * [r10816]

    fixed cccam problem introduced in r10812


  * [r10815]

    added oscam.version info for DVB API read-sdt charsets


  * [r10814]

    applied garbage collector patch from pointer2 (thank you!), with some small modifications.


  * [r10813]

    the same changes from r10812 for gbox.
    additionally two calls to cs_writeunlock() have been disabled, because the make so sense for me.

    note to gbox devs:
    there is still an overflow possible in gbox_send_ecm() with its 1024 send buffer, if ecmlen is very big.
    however, the code is very complicated, so I am not touching it.



  * [r10812]

    fixed buffer overflows when sending/receiving ecms/emms

    the rules for ecms are now:
    min. size: 0 or >=3 (a size of 1 or 2 is not allowed)
    max. size: MAX_ECM_SIZE (defined in globals.h)
    SCT_LEN(ecm) must be <= er->ecmlen

    the rules for emms are now:
    min. size: 0 (we could add also a check for >=3 here, but I am not sure atm whether this would affect emm reassembly)
    max. size: MAX_EMM_SIZE (defined in globals.h)




  * [r10811]

    fix for r10809


  * [r10810]

    added sdt data dump to debug log


  * [r10809]

    improvment to emmcache setting display in webif, as requestes in
    http://www.streamboard.tv/wbb2/thread.php?postid=546800


  * [r10808]

    fix for older irdeto cards.
    patch provided by newcslover (#4238), thank you!


  * [r10807]

    fixed some warnings


  * [r10806]

    oscam.srvid2 now supports provider name.
    service ID:CAID1[@PROVID1[@PROVID2[@...]]][,CAID2[@PROVIDA[@PROVIDB[@...]]]]|[channel_name]|[type]|[description]|[provider]


  * [r10805]

    added USE_UTF8 compile flag to enable webif utf-8 mode by default.
    example:
    make USE_UTF8=1


  * [r10804]

    fix: reset last_providptr


  * [r10803]

    more fixes for srvid file link


  * [r10802]

    webif: fixed links to srvid file if oscam.srvid2 exists


  * [r10801]

    webif: fixed oscam.srvid / .srvid2 highlighting


  * [r10800]

    Update for 'fix07' and 'ins2e06' parameter in documentation.


  * [r10799]

    removed "ecminfo_hide_ms_name" setting, because it did not solve the problem for external tools, and this is useless


  * [r10798]

    Back to old 'oscam.srvid' format in documentation. Waiting for new final format.


  * [r10797]

    fixed cccam server not reporting a card when it does not exactly match the SRVID filtering.
    patch provided by TheTroll (#4227), thank you!



  * [r10796]

    Removed limits for 'oscam.srvid' in documentation.


  * [r10795]

    New default value for 'read_old_classes' in documentation.


  * [r10794]

    New 'oscam.srvid' format in documentation, again.


  * [r10793]

    Update for new 'oscam.srvid' format in documentation.


  * [r10792]

    webif: fixed .srvid/.srvid2 logic: if .srvid2 exists, display it first


  * [r10791]

    Added new parameter 'initial_debuglevel' to documentation.


  * [r10790]

    Added new parameter 'sysloghost' and 'syslogport' to documentation.


  * [r10789]

    fix for read_sdt: added ISO8859toUTF8(), now iso-to-utf8 conversion without iconv is possible.
    if you do not need special char support for read_sdt, you can now disable the addon option "READ_SDT_CHARSETS", which will save about 22KB memory


  * [r10788]

    fixed a warning


  * [r10787]

    now also updating last_providptr in oscam-ecm.c


  * [r10786]

    webif: fixed file_exits(oscam.srvid) check


  * [r10785]

    Removed 'via_emm_global' from documentation.


  * [r10784]

    now auto-detecting in webif whether oscam.srvid or oscam.srvid2 is used.
    patch provided by pr2 (#4236), thank you!


  * [r10783]

    updated display of channel name and provider name in webif.
    patch provided by pr2, thank you!


  * [r10782]

    update webif for new caid,provid syntax.
    patch provided by pr2, thank you!


  * [r10781]

    change log syntax from caid:provid to caid@provid.
    patch provided by pr2, thank you! (ticket #4232)


  * [r10780]

    we can never be sure whether a file exists, because it can be deleted at any time.
    so just quietly abort sending gbox sms, if the file disappears


  * [r10779]

    fixed sr_init_locks().
    Patch provided by pointer2, thank you!


  * [r10778]

    loadbalancer save status without blocking



  * [r10777]

    reduced cccam blocking time from 60s to 10s


  * [r10776]

    Webif:

    - Fix for active polling mouse-over current channel and click (tnx Hook for patch!)



  * [r10775]

    As it turned out iconv is not a viable solution for converting charsets to utf-8.
    -> Removed it, until we have a replacement, reading sdt channel names is partly broken


  * [r10774]

    oscam.log: log header should now always have the same size


  * [r10773]

    only use liconv on cygwin, this should fix building


  * [r10772]

    sdt parser now converts all dvb strings to utf-8.
    start oscam with -u  or --utf8 to enable utf-8 webif mode, and the channel names should be detected correctly.
    some providers violate dvb standars however (for exampple TNTSAT, and may give some unreadable names)

    INFO
    oscam now links with iconv, if it is not available on all toolchains, a compile flag needs to be added


  * [r10771]

    fixed typo


  * [r10770]

    fixed crash on reloading oscam.provid


  * [r10769]

    WebIf: Fix typo in css.css and jscript.js


  * [r10768]

    sdt filter now only requests the table it understands.
    this fixes sdt detection for tf1/france3.


  * [r10767]

    raised pmtbuffer to handle some sdt streams correctly


  * [r10766]

    read_sdt: now filtering out control codes


  * [r10765]

    disabled read_sdt by default


  * [r10764]

    sdt parser now writes all caid/provid combinations into oscam.srvid


  * [r10763]

    changed ecm logging syntax from caid&provid to caid@provid


  * [r10762]

    removed extra newline for sdt detection


  * [r10761]

    allow new syntax caid@provid in oscam.dvbapi


  * [r10760]

    added option to hide 'msec' name in ecm.info


  * [r10759]

    added oscam.srvid2 to webif files


  * [r10758]

    only show "unknown" if channel name is unknown on status page


  * [r10757]

    + added new oscam.srvid syntax:

    service ID:CAID1[@PROVID1[@PROVID2[@...]]][,CAID2[@PROVIDA[@PROVIDB[@...]]]]|[name]|[type]|[description]

    these are read from oscam.srvid2 at the moment, due to compatibility reasons.
    if a oscam.srvid2 file exists, it will be used, and oscam.srvid will be ignored.

    + dvbapi channel name detection now also writes provider into oscam.prvid



  * [r10756]

    updated unknown channelname syntax


  * [r10755]

    oscam.provid:

    added new syntax:

    CAID@PROVID1@PROVID2@PROVID3|Provider_Name|satellite|language

    the old syntax still works.
    you still can use : instead of @.

    if provider-name is empty in oscam.srvid, the value from oscam.prvid will be used, if available


  * [r10754]

    updated NO_PROVID_VALUE


  * [r10753]

    oscam.srvid: empty provider name is now allowed

    example:
    0500@030B00:232B||HD1|


  * [r10752]

    applied patch from #4216
    thanks goes to pr2


  * [r10751]

    possible fix for USE_OPENXCAS


  * [r10750]

    dvbapi: added provider and channel name detection via SDT

    if service name is unknown, it will be written into oscam.srvid.
    detection works only for non-FTA channels.

    config: (default: 1)

    oscam.conf

    [dvbapi]
    dvbapi_read_sdt = 1


  * [r10749]

    - Removed static 512 bytes buffer for proxy readers
      (only a minority actually used it and its safer and eats less mem to assign them dynamically to prevent bufferoverflows due to large ecms)
    - Increased / set the static buffers for local readers to MAX_ECM_SIZE
    - Increased MAX_ECM_SIZE to 596 bytes according to new ecm lengths viaccess introduced
    - Some changes to oscam-reader so it can handle larger ecms
    - Some changes to reader-viaccess so it can handle larger ecms



  * [r10748]

    fixed a warning


  * [r10747]

    more fixes for oscam.srvid


  * [r10746]

    more fixes for oscam.srvid


  * [r10745]

    more bugfixes for oscam.srvid


  * [r10744]

    fixed crash on reloading oscam.srvid


  * [r10743]

    fix for r10741


  * [r10742]

    oscam.srvid: fixed compatibility with old syntax


  * [r10741]

    new oscam.srvid syntax:

    CAID1@PROVID1@PROVID2@PROVID3,CAID2@PROVIDA@PROVIDB:SRVID|....

    no more limits!
    no supporting unlimited number of caids and provids per line



  * [r10740]

    updated find_conf_dir() directory list


  * [r10739]

    fixed webif crash when displaying services


  * [r10738]

    dvbapi: use better way to obtain csystem name in ecminfo code


  * [r10737]

    fixed sending log lines without header to monitor


  * [r10736]

    viaccess readers:

    default value for "read_old_classes" is now "1",

    because otherwise emms for expired classes do not get written.
    if you want to speed up card init, you can set "read_old_classes = 0", but keep in mind that emms for expired classes will not get written.


  * [r10735]

    fixed monitor logcount offset


  * [r10734]

    made __get_servicename() faster


    here is the syntax for oscam.srvid (the last info contained a lot of typos):

    CAID(@PROVID)[,CAID(@PROVID),...]:service ID|[provider]|[name]|[type]|[description]

    for example:

    // caid 100, ALL provids, srvid 1111
    0100:1111:x|y|z|v

    // caid 100, provid 123456, srvid 1111
    0100@123456:1111:x|y|z|v

    // caid 100, ALL provids , srvid 1111
    0100@000000:1111:x|y|z|v

    // caid 100, provid 123456, srvid 1111 and caid 200, provid 654321, srvid 1111
    0100@123456,0200@654321:1111:x|y|z|v

    Note 1:
    Max. 10 caids per line possible

    Note 2:
    Only one provid per caid, if you want multiple provids for the same caid, use:
    //caid 100, provid 123456, srvid 1111 and caid 100, provid 654321, srvid 1111
    0100@123456,0100@654321:1111:x|y|z|v

    Note 3:
    If you have these two lines:
    0100@123456:1111:a|b|c|d
    0100@000000:1111:x|y|z|v

    caid 0100, provid 123456, srvid 1111 will get a|b|c|d, and caid 0100, all other provids, srvid 1111 will get x|y|z|v
    -> Non-zero provids are stronger than zero-"catch-all"-provids


  * [r10733]

    fix for last commit


  * [r10732]

    new oscam.srvid syntax:

    CAID(@PROVID)[,CAID(@PROVID),...]:service ID|[provider]|[name]|[type]|[description]

    for example:

    0100:1111:x|y|z|v => caid 100, ALL provids, srvid 1111
    0100@123456:1111:x|y|z|v => caid 100, provid 123456, srvid 1111
    0100@000000:1111:x|y|z|v => caid 100, provid 000000, srvid 1111
    0100@123456,0200:654321:1111:x|y|z|v  => caid 100, provid 000000, srvid 1111 and  => caid 200, provid 654321, srvid 1111


  * [r10731]

    another fix for r10728


  * [r10730]

    fixed r10728


  * [r10729]

    nicer implementation for isValidCW()


  * [r10728]

    oscam.srvid: added support for multiple PROVIDs

    syntax is now:
    CAID[,CAID,...]:PROVID[,PROVID,..]:service ID|[provider]|[name]|[type]|[description

    limits:
    max 10 CAIDs
    max 5  PROVIDs



  * [r10727]

    ecm.info: added signature check


  * [r10726]

    fixed ecm.info for cygwin
    fixed new ecm.info types


  * [r10725]

    added find_conf_dir() as proposed in #4222, but modified it at bit, so that there should be no disadvantages.
    if we cannot find it, we still use the default CS_CONFDIR, and we check CS_CONFDIR first.
    setting the conf dir via command line (-c ...) overrides this detection.


  * [r10724]

    fixed warnings


  * [r10723]

    updated remote syslog syntax


  * [r10722]

    dvbapi: moved ecm.info code into one function, added new ecm.info types

    configured in oscam.conf:

    [dvbapi]
    ecminfo_type = 0


    possible values for ecminfo_type:
    0 - default oscam syntax
    1 - default oscam syntax with ecmtime in ms instead of s
    2 - wicardd
    3 - mgcamd
    4 - cccam
    5 - camd3



  * [r10721]

    fix for videoguard2_poll_status()


  * [r10720]

    removed hardcoded offset from cs_write_log()


  * [r10719]

    update switch/on-off icons


  * [r10718]

    dvbapi:

    - Use SCT_LEN() to get ecmlength
    - Dump received ecm data
    - Warn if received ecm is too long for oscam to handle



  * [r10717]

    oscam.log:

    + fixed and unified syslog logging
    + removed all hardcoded log header offsets,
      it is now possible to easily modify the log header in get_log_header(),
      and we even could log a line without header now


  * [r10716]

    revert 10702


  * [r10715]

    applied "Turn the status field from CAID:SRVID to CAID:PROVID:SRVID" patch, see #4216, thanks goes to pr2


  * [r10714]

    fixed typo in last commit


  * [r10713]

    added support for picons by channel name

    syntax is:

    take service-name from oscam.srvid,
    replace all upper-case letters with lower case,
    replace * with star,
    replace & with and,
    replace + with plus,
    remove everything but a-z and 0-9,
    if the result is name, the picon file will be IC_name.tpl

    for example:
    service-name "BBC-ONE +HD"
    picon file: "IC_bbconeplushd.tpl"

    if service-name ends with hd, and picon is not found, fallback to name without hd, example:
    picon file: "IC_bbconeplushd.tpl"
    -> not found, search for:
    picon file: "IC_bbconeplus.tpl"

    see ticket #4213


  * [r10712]

    added provid to channel picons

    old syntax: (still working)
    IC_[caid]_[srvid].tpl (for example: IC_0500_1234.tpl)
    IC_0000_[srvid].tpl (for example: IC_0000_1234.tpl)

    new syntax:
    IC_[caid]_[provid]_[srvid].tpl (for example: IC_0500_123456_1234.tpl)


  * [r10711]

    more improvement for oscam.srvid fallback: preserve prid if valid and nothing found



  * [r10710]

    improved oscam.srvid fallback:

    case 1: caid, provid, srvid have valid (non-zero) value [dvbapi]

    -> try to find oscam.srvid entry where caid, provid, srvid match (new syntax)
    -> if nothing found try to find oscam.srvid entry where caid, srvid match and provid is 0 (old syntax)


    case 2: caid, srvid have valid (non-zero) value, provid is 0 [cccam, camd35, etc]

    -> try to find oscam.srvid entry where caid, srvid match and provid is 0 (old syntax)
    -> if nothing found try to find oscam.srvid entry where caid, srvid match and ignore provid (new syntax)


  * [r10709]

    fix for Changeset 10697: client->last_provid is now used


  * [r10708]

    now showing emm length as dec and hex number


  * [r10707]

    applied load balancer fixes from #4207


  * [r10706]

    fix for stapi5 bug reported in #4206


  * [r10705]

    added setting "initial_debuglevel" to set the debuglevel on startup with oscam.conf:

    example:
    [global]
    initial_debuglevel            = 8





  * [r10704]

    now starting by default in background on stapi devices
    patch by Vitaliy69, ticket #4209



  * [r10703]

    added remote syslog server support

    example (in oscam.conf):
    [global]
    sysloghost                    = localhost
    syslogport                    = 10517

    if you do not set sysloghost, this feature is disabled

    note that it is also possible to use the local syslog service,
    by setting:

    [global]
    logfile                       = syslog


  * [r10702]

    added videoguard reader option "minimize_emm_filter" for boxes that do not correctly handle all filters

    minimize_emm_filter = 0 => all filters activated (all serial positions, 7 filters total) [DEFAULT]
    minimize_emm_filter = 1 => only filter 1st serial position (3 filters total)
    minimize_emm_filter = 2 => only filter 1st and 2nd serial position (5 filters total)


  * [r10701]

    replaced static pthread mutex initializers, because of buggy gclibs giving a warning


  * [r10700]

    small fix for stapi5 commit


  * [r10699]

    added STAPI5, thanks goes to: schwa226, Vitaliy69, Openbox Team

    compile with:
    make USE_STAPI5=1





  * [r10698]

    fixed off button color


  * [r10697]

    modified and applied service name patch from #3932

    old:
    0500:038f|SSR / SRG|SRF Info

    new: (both formats are possible)
    0500:038f|SSR / SRG|SRF Info
    0500:50800:038f|SSR / SRG|SRF Info

    the new advanced mode will work with dvbapi


  * [r10696]

    fixed compile without gbox


  * [r10695]

    applied fix from ticket #4044


  * [r10694]

    added thread for gbox sms sender, see ticket #4126


  * [r10693]

    module-dvbapi.c: added fix for missing IPV6_V6ONLY, like we are doing it in oscam-net.c
    this should solve ticket #4141


  * [r10692]

    new on/off icons created by Bit


  * [r10691]

    activated "videoguard2_poll_status()" as reported in ticket #.
    looks like it was forgotten in Changeset 10607.
    if it was not forgotten, but intented to be disabled, please revert and add a comment to this function or delete it


  * [r10690]

    increased newcamd CWS_NETMSGSIZE from 400 to 500. [see ticket #4170 ]
    moved newcamd specific des functions from des.c into module-newcamd.c


  * [r10689]

    fixed changeset 10687 for some compilers


  * [r10688]

    applied from ticket #4185: Added entitlements info to the json api


  * [r10687]

    tryfix for #4194


  * [r10686]

    added Sky Mexico (095B) ATR from #4197


  * [r10685]

    module-cccshare.c: removed "card->aufilter" (tryfix for #3904), we no longer make a copy of an au-card without the hex-serial, but hide the hex-serial depending on the user "au = ..." setting.

    In addition, the visibility of the card hexserials has changed:

    Old:
    1) user has au disabled -> user does not see any hexserials
    2) user has "au = rdr1" -> user sees ALL hexserials (local readers + remote (cccam) cards)
    3) user has "au = 1" -> user sees ALL hexserials (local readers + remote (cccam) cards)

    Now:
    1) user has au disabled -> user does not see any hexserials
    2) user has "au = rdr1" -> user sees hexserials of reader "rdr1" [if "rdr1" is a cccam reader, the user will see the hex-serials of its peers]
    3) user has "au = 1" -> user sees ALL hexserials (local readers + remote (cccam) cards)


  * [r10684]

    fixed last commit


  * [r10683]

    revert #10679


  * [r10682]

    emm length should be printed as hex numbers


  * [r10681]

    reader-videoguard-common.c: adjusted emm filter: when filtering for emms with our serial at position #3, we now make sure the sub-emm counter is >= 3; this could also be done for emms with our serial at position #2 but would need an additional filter (because we would needd to filter for sub-emm-counter bits "1x" and "01")


  * [r10680]

    - Revert r10672 ( patch from ticket http://www.streamboard.tv/oscam/ticket/4175 )
      Several users report issues, see here: http://www.streamboard.tv/wbb2/thread.php?threadid=43675&threadview=0&hilight=&hilightuser=0&page=1



  * [r10679]

    cccam proto card loss tryfix #3904


  * [r10678]

    WebIf:
    - fix for only text in Subnav in entitlements.html, readerconfig.html and user_edit.html


  * [r10677]

    WebIf: Better solution for alignment image for text in readerstats.html


  * [r10676]

    WebIf: Added css class for table in scanusb.html


  * [r10675]

    - Oopsy: revert unwanted changes to default config



  * [r10674]

    - Buildfix: without cache_ex module oscam build was broken



  * [r10673]

    - Several webif improvements (committed blind for a change)



  * [r10672]

    - Several webif improvements from here: http://www.streamboard.tv/wbb2/thread.php?postid=540330#post540330
    (Did not review the code, just a blind commit for a change!)



  * [r10671]

    dvbapi:

    - Fix for azbox capmt parsing fails on some channels (introduced r10667) tnx Scader for report, testing and logs!




  * [r10670]

    cryptoworks: Fix possible crash.

    This fixes ticket #4192. Patch submited by danman.


  * [r10669]

    fix clienttimeout lower than 1000ms not possible
    saves always in ms
    example 8 = 800ms



  * [r10668]

    - There is no need to use a lower ATR_TIMEOUT on sci readers -> removed
    - Typo fix io_serial: code comment and real code value do not match -> fixed
    - Sci_FastReset() give some additional timeout -> less chance to leave the card in error state



  * [r10667]

    - Tryfix for regression introduced rev 10666 that affects sh4 octagon receivers (reported by Netview)



  * [r10666]

    dvbapi:

    - Fix wrong pmt parsing as suggested by racocvr



  * [r10665]

    - Just another useless logcosmetic change



  * [r10664]

    - Tryfix dvbapi channelcache: only use exact srvid matches in cache and ignore matches on caid:provid only in order to prevent non-decoding issues



  * [r10663]

    reader-nagra.c: adjusted HD01/02 tier date offset


  * [r10662]

    change again




    ....... for my haters


  * [r10661]

    improved description


  * [r10660]

    - Tryfix show current channelname in text if no picon exists



  * [r10659]

    DVBAPI:

    - Fix for stapi receivers cannot record any program as reported by ngc1927
    - Moved pmtfile stop descrambling channel to the pmtparser



  * [r10658]

    Fix: viaccess aes handling now provider independent

    Thanks Pr2 for providing patch!




  * [r10657]

    reader-nagra.c: fixed expire date for HD01/HD02 cards tier 0BEA


  * [r10656]

    dvbapi:

    - Improved code and log to detect if demuxer is running (demuxer could already have ecmfilters but not started descrambling yet!)



  * [r10655]

    dvbapi:

    - Reworked capmt handling
    - Some log cosmetics



  * [r10654]

    dvbapi:

    - fixed reset of current ecmpids and streams right before capmt table parsing
    - fix for "not requesting cw -> ecm filter was killed!" (on capmt update of already descrambling demuxer the er->provid could be zero again for 1 ecm request)
    - some log cosmetics fixes




  * [r10653]

    Make get_cardsystem_desc_by_caid() function public and use it also in dvbapi/ecminfo

    The function get_cardsystem_desc_by_caid() is used by CCcam share to print nice
    cardsystem description in the webif.

    This commit moves the above function from CCcam specific to oscam-simples.c.
    This way it is also used in the dvbapi/ecminfo to print the cardsystem name
    (eg. when displaing the ECM information in the skin data).



  * [r10652]

    dvbapi: add support for ECMINFO in network mode (bump proto to v2)



  * [r10651]

    irdeto basedate update
    http://www.streamboard.tv/wbb2/thread.php?postid=541615#post541615


  * [r10650]

    - Fix abs() compile warnings reported by BigGyros



  * [r10649]

    Fix for chk_port_tab, 'prids' index should be set to 0 for every 'filts' index change

    Tnx to Azurit3 for catching this bug and testing!

    http://www.streamboard.tv/oscam/ticket/4165



  * [r10648]

    [gbx] Improve rebroadcast thread



  * [r10647]

    - Fix for broken stapi timeshift introduced r10640



  * [r10646]

    - dvbapi: revert flushread before setting new sectionfilter



  * [r10645]

    [gbx] Make compilers happy (fix warnings of r10644)




  * [r10644]

    [gbx] Move hello send to other send functions




  * [r10643]

    dvbapi:

    - Some rework on irdeto handling
    - Requestmode 1: added check on valid oldecmpid
    - Flush ecm filterdata from previous sectionfilter before setting a new ecm sectionfilter



  * [r10642]

    Dvbapi guet rid off compile warning.

    This warning was just cause error msg from function read was not used.
    Error handling is well done. So it's just an ennoying warning in this case.
    With this nothing changes except that we are rid of the compile warning.


  * [r10641]

    [gbx] reshuffle code to make extra declarations superflous




  * [r10640]

    DVBAPI:

    - More CA device streampid rework



  * [r10639]

    [gbx] various patches
    	- revert r10223 to restore good night functionality
    	- split cards write functions to avoid unnecessary local cards writing




  * [r10638]

    fritzbox toolchain buildfix


  * [r10637]

    - Small cs378x and cs357x emm fix



  * [r10636]

    updated hashtable code
    from http://tommyds.sourceforge.net/index.html


  * [r10635]

    gbox build fix


  * [r10634]

    Revert r10633 - the people have spoken...


  * [r10633]

    cccam: Allow to ignore good/bad sids.


  * [r10632]

    - dvbapi: while disabling certain streampid take camask into consideration!



  * [r10631]

    - Stapi dvbapi fix for not stopping old descrambler pid associations after zapping to another channel (introduced r10612)




  * [r10630]

    Newcamd:

    - Fix for non-matching emm caid (introduced r10582)

    However the real reason is that before it was broken too: emmcaid was always 0000 but it was eventually checked against 0000 so it passed
    The improvements gf introduced made the emmchecks more strict and so the bad code of newcamd started to fail.

    Tnx Dukynukem for not whining and complaining like others did but eventually providing 2 simple logs and testing the patch!



  * [r10629]

    - Fix for viaccess provid extraction from emm

    Tnx goes to Pr2 for research and patch!



  * [r10628]

    [gbx] Fix cards list cleaned on client logout




  * [r10627]

    - ECM dump fix for ecms that can not be processed by readers



  * [r10626]

    [gbx] Another better return for r10624




  * [r10625]

    [gbx] Proper return for r10624




  * [r10624]

    [gbx] Add one more LOCKITER in cards module




  * [r10623]

    [gbx] use LOCKITER instead of ITER for pending cards




  * [r10622]

    better to use static inline instead of #ifdef

    thnx jsompis


  * [r10621]

    fix build without HAVE_DVBAPI


  * [r10620]

    dvbapi:

    - More rework on handling streampids



  * [r10619]

    [gbx] Small correction for writing expired.info




  * [r10618]

    Tnx goes to Pr2 for this patch!

    - Add Maturity level for Seca card
    - Small rework on Viaccess maturity
    - Display n/a for not Viaccess or Seca readers




  * [r10617]

    [gbx] Rework some cards functionalities
    	- Unify delete cards function.
    	- Move checkcode to cards module.
    	- Print expired cards which are currently not send.




  * [r10616]

    Viaccess: (patch by Pr2)

    - Get and display the cards maturity level




  * [r10615]

    - Cosmetic rework streampid count
    - Removed workaround for Vu boxes and gigablue boxes -> it doesnt work!



  * [r10614]

    - More rework streampid



  * [r10613]

    dvbapi:

    - Only disable streampids not used on another ecmpid on same demuxer or any other demuxer with same index
    - Some rework on index assign function



  * [r10612]

    dvbapi:

    More streampid rework



  * [r10611]

    - Added workaround for boxes with buggy dvb driver implementations (all vu models and gigablue)



  * [r10610]

    dvbapi:

    - Next tryfix blackscreen while recording and zapping around on same transponder.




  * [r10609]

    dvbapi:

    - Another tryfix for blackscreen while recording and zapping around on same transponder



  * [r10608]

    [gbx] remove unused variables from structs & fix double local cards




  * [r10607]

    All cas systems:

    - cs_add_entitlement: extended with find only modus and some protection: only add if not found jet!

    Viaccess specific:  (Special thanks go again to Bit and Pr2 for their testing and logging!)

    - Separate reassembly buffers for every provid, this should fix reassembly issues if you have viaccess cards with different providers on them.
    - Extract provid from 8c/8d nano instead of provid from emmpid so they never can be mixed up with emm 8e for other provid
    - Combine with the correct provider 8c/8d emm based on the SA info in the 8e emm
    - Smarter and same filters for network and local cards
    - Smarter prio of the filters: shared on top, global at the end and skip not useful providers
    - Nano A9 provider class check to avoid 90 40 (very big thanks goes to Bit for his analysis!)




  * [r10606]

    - Tryfix flushing a BADF filter will result in infitive loop since select() returns -1 forever
    - Compiler warning cosmetics but no log flooding since we are not interested in any result



  * [r10605]

    dvbapi

    Now rid of compile warning with flush read


  * [r10604]

    - Avoid logspam: its slowing down and not funny to see repeating lines



  * [r10603]

    - Dont flush dvb netapi devices: they (mis)use 1 filter for all!
    - Protection against zero-ed emm in case of receiver internal bufferoverflow



  * [r10602]

    Fix for broken dvbapi pmtmode 0 introduced in r10600 (Tnx Q33ny for reporting!)



  * [r10601]

    - Small logcosmetic fix



  * [r10600]

    DVBAPI:

    - Fix for requestmode 1 changing ecmpid while already descrambling (reused streampid could be disabled by stopping old ecm filter and pmt was send again by receiver)
    - Flush stale filterdata at the moment a filter is stopped to empty receiver internal filter databuffer




  * [r10599]

    - Free reassembly buffer



  * [r10598]

    - Rework on emm filter rotation



  * [r10597]

    - Nicer fix for r10596



  * [r10596]

    - Fix for handling of emmfilters if maxfilters is reached.



  * [r10595]

    Introduce caid checking function for Viaccess.


  * [r10594]

    Introduce caid checking function for Cryptoworks.


  * [r10593]

    Introduce caid checking function for Nagra.


  * [r10592]

    Introduce caid checking function for Seca.


  * [r10591]

    Introduce caid checking function for Videoguard.


  * [r10590]

    Introduce caid checking function for Bulcrypt.


  * [r10589]

    Introduce caid checking functions for Irdeto and Betacrypt.


  * [r10588]

    Introduce caid checking functions for BISS.


  * [r10587]

    cosmetic fixes


  * [r10586]

    removed "via_emm_global" setting, since it is no longer used


  * [r10585]

    - Small cosmetic fix!



  * [r10584]

    Viaccess:

    Special tnx goes to Bit and Pr2 for extensive testing, pointers and feedback!

    - Filtering of global emms (needed e.g. for wiping stale entitlement by provider)
    - Local attached cards only: filtering of shared emms that match with the providers on your cards
    - Several bugfixes emm filtering/parsing in generic
    - Added new parameter for reader emmcache
    - Enabled temporarily the viaccess emm debug logs to track down any reported issues

    old emmcache = x,y,z
    new: emmcache = x,y,z,d

    if you set d to 1 then for that reader device specific emms are enabled. default is off
    since this parameter is only handy for certain users and certainly not for users using cards in readers.




  * [r10583]

    globals: Remove unused defines.

    These defines are not used anywhere.


  * [r10582]

    csystem: Build ops as static structures.

    We don't really need to call a function to initialize our ops structure.
    We can directly initialize it and use the structures. Also now we don't
    have to size the caids array statically.


  * [r10581]

    csystem: Make csystem pointer in struct s_reader const.

    This signals that nothing should be changed via this pointer.


  * [r10580]

    csystem: Turn reader->csystem into pointer to struct s_cardsystem.

    Stop copying `struct s_cardsystem` into every reader. We can work with
    pointer to the structure without problems.

    This reduces `struct s_reader` size by ~120 bytes.


  * [r10579]

    csystem: Rename all variables that point to struct s_cardsystem to csystem.

    This makes it easier to grep for places that call back into card systems.


  * [r10578]

    Fix memory leak during RSA operation


  * [r10577]

    csctapi: Constify pointers to struct s_cardreader.

    This communicates clearly that the ops structure can not be changed
    at run time.


  * [r10576]

    csctapi: Build ops as static structures and return pointer to them.

    Now we keep only one copy of card reader ops into memory and next
    step is to constify the structures.


  * [r10575]

    csctapi: Convert s_reader->crdr structure to pointer to struct s_cardreader.

    This allows us to keep only one copy of cardreader ops, instead of
    copying them into every reader context.


  * [r10574]

    csctapi: Move s_cardreader.flush flag to struct s_reader.

    `flush` flag can be changed on per reader bases (sci reader changes
    it for exmaple). If we are going to convert reader->crdr from structure
    to pointer we need to move `flush` into reader context.


  * [r10573]

    csctapi: Preparatons for turning reader->crdr into pointer.

    This commit is just preparation for converting `struct s_reader->crdr`
    into pointer to `struct s_cardreader` instead of copy of the structure.


  * [r10572]

    Do not print # before numbers.

    `#number` is being parsed by trac as reference to ticket number.
    So posting logs into trac that contain `#number` messes up the logs.

    It really is just a cosmetic issue but it annoys me.


  * [r10571]

    newcamd: Try to fix ticket #4125.


  * [r10570]

    [gbx] Fix doubled local cards




  * [r10569]

    copy emm to send in emm.html
    optimized loop


  * [r10568]

    [gbx] code restructuring
    	- Centralize converting gbx caprovid functions in helper module
    	- unify add card functions
    	- move ecm checksum to helper
    	- remove caid and provid from card (use caprovid only)
    	- rename provid_1 to caprovid




  * [r10567]

    boxtype info patch

    http://www.streamboard.tv/wbb2/thread.php?postid=536576#post536576




  * [r10566]

    Move csystem.active flag into struct s_reader.

    This is the only thing that is modified in `struct s_cardsystem`.

    Moving this flag into `struct s_reader` would allow us to start
    using pointer to card system ops, instead of copying the ops into
    every `struct s_reader`.


  * [r10565]

    Constify ->desc field in ops structures.

    desc is always initialized with static strings, so adding const
    communicates this correctly.


  * [r10564]

    Remove ->active field from struct s_module.

    It is only set in one place but it is never used anywhere.


  * [r10563]

    Fix regression introduced in r10557 (try 2).

    This reverts r10162 and should fix fixes regression introduced
    in r10557.

    r10562 was not the right fix. The right fix was to return the
    caid when the list is empty.

    This should fix ticket #4123 and #4142.


  * [r10562]

    Fix regression introduced in r10557.

    This fixes regression introduced in r10557. chk_caid() func was
    broken when I rewrote it and since it is pretty central to the whole
    filtering the results were not pretty.

    This should fix ticket #4123.


  * [r10561]

    smargo: Introduce is_smargo_reader() macro and use it where needed.

    This reduces direct manipulation of crdr.desc field.


  * [r10560]

    smargo: Remove smargo prefixes in log messages rdr_log() already adds them.


  * [r10559]

    Do not leak caidtab when freeing accounts.

    Fix leak introduced in r10557. Account's caidtab was not cleared.


  * [r10558]

    Replace cs_log() with rdr_log() where we have reader context.

    This is not a complete solution, I only changed the places where
    reader desc was already used in the logging message. There are
    a lot of places (in modules) where we have reader context but
    we're using cs_log(). If somebody wants to replace such cs_log()
    calls with rdr_log(), grep for D_READER in modules-*.c


  * [r10557]

    Convert caidtab to dynarray.

    Less code, smaller data structures, smaller binary size and added
    tests for the functionality.

    {{{
     Structures:
       struct s_caidtab | -176
       struct s_reader  | -168
       struct s_client  | -176
       struct s_auth    | -176
       struct s_config  | -520

     Binary:
      add/remove: 3/1 grow/shrink: 10/10 up/down: 577/-1679 (-1102)
    }}}

    caidtab is used by the following config settings:
     ACCOUNT: caid
      READER: caid
      GLOBAL: lb_noproviderforcaid
      GLOBAL: double_check_caid
      GLOBAL: cwcycle_check_caid

    Now each of theses can hold more than 32 values which was the old
    hard coded limit.


  * [r10556]

    [gbx] Minor change regarding pointer handling in reinit proxy.




  * [r10555]

    [gbx] Be even more pessimistic. Addition to 10554.




  * [r10554]

    [gbx] Protect against null pointer deref. Thx gfto.




  * [r10553]

    Convert caidvaluetab to dynarray.

    Less code, smaller data structures, smaller binary size and added
    tests for the functionality.

    {{{
     Structures:
       struct s_caidvaluetab |  -50
       struct s_auth         |  -56

     Binary size:
       add/remove: 3/0 grow/shrink: 4/5 up/down: 285/-872 (-587)
    }}}

    caidvaluetab is used by the following config settings:
      ACCOUNT: lb_nbest_percaid
       GLOBAL: lb_nbest_percaid
       GLOBAL: lb_retrylimits
       GLOBAL: cacheex_mode1_delay
       GLOBAL: fallbacktimeout_percaid

    Now each of theses can hold more than 16 values which was the old
    hard coded limit.


  * [r10552]

    Machine info

    Azbox fix should now cover premium and premium+


  * [r10551]

    Machine Info

    More solid for azbox


  * [r10550]

    Machine info

    Azbox premium


  * [r10549]

    [gbx] Another small addition for r10547.




  * [r10548]

    [gbx] Minor fix for r10547.




  * [r10547]

    [gbx] Move call to init_local_gbox as proposed here:
    http://www.streamboard.tv/wbb2/thread.php?postid=536529#post536529




  * [r10546]

    webif: Change return type of tpl_{addVar,addMsg,printf} to void.

    The return value of these functions was used in only one place (and
    it's usage was fishy). I'm changing the return type to void because
    nothing that these functions can return is currently useful.


  * [r10545]

    webif: Make tpl_addTmp() static and remove it from public headers.

    This function is used only in module-webif-tpl.c. It should not be public.


  * [r10544]

    Update copyright years.

    We have made changes in 2014 and 2015 (and we'll probably make even
    more changes in 2015). So update the years to correctly reflect that
    the code was changed.


  * [r10543]

    If oscam is not running on "generic" device, show the type and name in webif.


  * [r10542]

    Allow boxtype_is() to check for "generic" box type.

    Also return const declaration for box{type,name}_get() functions. const
    is needed because the string returned by these functions should not be
    changed. Using const makes the compiler work for us and warn if we try
    to change the result of box{type,name}_get().


  * [r10541]

    Free stb_boxname when oscam exists.


  * [r10540]

    webif: constify some parameters in template functions.

    This makes it clear that these parameters are not going to be changed.


  * [r10539]

    Machine Info

    Webif cosmetic


  * [r10538]

    Machine info

    Display Machine type into webif status page.
    If not known Machine is generic
    If boxname known Machine is boxname
    If boxtype known and not boxname Machine is boxtype


  * [r10537]

    Patch by ultra47:

    Final patch of configuriable showing of emm in emm.html?label=XXX

    Default set in Config part WebIf:
    httpemmuclean (unique emm) => showing and filtering to a size of 256kb, over them cleaning and backup
    httpemmsclean (shared)     => not showing
    httpemmgclean (global)     => not showing

    Settings for parameter "httpemmsclean, httpemmgclean, httpemmuclean"
    -1 => no showing
    0 => only show emm file
    >1 => show filtered and cleaning (if the size higher as settings) emm file


  * [r10536]

    Machine info

    Extra protection for not cleared parameters


  * [r10535]

    Machine info

    forgot one line


  * [r10534]

    Machine info

    extra fix


  * [r10533]

    Machine Info

    Correction about one name


  * [r10532]

    Machine info

    Added boxname where it's relevant (cosmetic)


  * [r10531]

    [gbx] Minor changes



  * [r10530]

    Machine info

    Print correct info by boxtype if boxtype present. Also the final used variable will have the boxtype.


  * [r10529]

    build: Add needed libraries when building pcsc under cygwin.

    This fixes ticket #4118. The patch is inspired by patch posted by
    routerunner in this ticket.


  * [r10528]

    [gbx] small internal change for calling some card functions




  * [r10527]

    - tryfix newcamd



  * [r10526]

    Reduce camd35/cccam cacheex code differences.

    No code changes just code movement.


  * [r10525]

    Reduce camd35/cccam cacheex code differences.

    This helps reduce the diff.


  * [r10524]

    Reduce camd35/cccam cacheex code differences.

    This helps reduce the diff.


  * [r10523]

    Reduce camd35/cccam cacheex code differences.

    We already have log prefixes, so remove the artificial text difference
    in logging messages.


  * [r10522]

    Reduce camd35/cccam cacheex code differences.

    Reduce the differences by using simple var.


  * [r10521]

    Reduce camd35/cccam cacheex code differences.

    No code changes just code movement.


  * [r10520]

    - Fix for broken VDR support introduced in r10519



  * [r10519]

    DVBApi:

    - On sleepsend stop decoding the channel!
    - Some rework to avoid receiver internal bufferoverflow



  * [r10518]

    move Spam to debug


  * [r10517]

    hide another Spam from init log


  * [r10516]

    [gbx] fix compiler warnings. Thx ni_hao. Fix #4116




  * [r10515]

    - Fix detection of changed host ip for Cs357 connections



  * [r10514]

    [gbx] small addition to r10513




  * [r10513]

    [gbx] Unify list of cards. Move all card specific functionality into separate files.
    Refer to http://www.streamboard.tv/wbb2/thread.php?threadid=43066




  * [r10512]

    don't Spam on nonexistent irrelevant files


  * [r10511]

    tests: Build tests binary by using standard build system machinery.

    This fixes the build under OS X and also allows the tests to cover
    all oscam functionality (once the tests are written of course).

    Note that the binary that build by `make tests` now would be called
    `tests.bin` (previously it was called `tests`). You can override
    that name using an undocumented TESTS_BIN `make` parameter, so
    `make tests TESTS_BIN=blah` would build the tests binary called
    `blah`.


  * [r10510]

    - Move reader emmcache usage detection in function and use it!



  * [r10509]

    New values for parameter 'emmcache'.


  * [r10508]

    - Add Atemio Nemesis to fixed readerspeed of 4.5 Mhz (due to usage of TDA8024)



  * [r10507]

    Sci

    extra fix


  * [r10506]

    Sci

    another small fix on autospeed


  * [r10505]

    Sci vu+

    Forgot the autospeed 1 this could still clock other speeds according to atr tables. For vu+ usseless and even could trigger bug for cards with higher max fs. The vu+ can only run at 4.5 Mhz.


  * [r10504]

    Rewrite ftab parsing and generation functions.

    This commit affects these settings:
     - account:  chid, ident
     - reader: chid, ident, fallback_percaid, localcards

    Makes the code smaller and easier to follow. bloatcheck reports
    binary size savings:
    {{{
     add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-1237 (-1237)
     function                                     old     new   delta
     mk_t_ftab                                    426     351     -75
     ftab_fn                                      446     201    -245
     chk_ftab                                    1524     607    -917
    }}}

    Also add tests for the parser and generator.


  * [r10503]

    tests: Small text change.


  * [r10502]

    Move functions for dynamic array manipulations in oscam-array.{c,h}


  * [r10501]

    tests: Check if clone functions work as expected.


  * [r10500]

    Rename array functions clear_XXX() to XXX_clear()

    This is preparation for unifying array functions.


  * [r10499]

    Rename clone_ftab() to ftab_clone()

    This is preparation for unifying array functions.


  * [r10498]

    Rename clone_ttab() to tuntab_clone().

    This is preparation for unifying array functions.


  * [r10497]

    Refactor code to reduce duplication.

    Introduce array_clone() and use it to prevent copy + paste code.


  * [r10496]

    Refactor code to reduce duplication.

    Introduce array_clear() and use it to prevent copy + paste code.


  * [r10495]

    Refactor code to reduce duplication.

    Introduce array_add() and use it to prevent copy + paste code.


  * [r10494]

    Rename ftab_add_filter() to ftab_add()

    This follows the style of the other TYPE_add() functions.


  * [r10493]

    Exit early if there is nothing to be done in the cfg settings generator.


  * [r10492]

    Rename some variables to make the code easier to understand.


  * [r10491]

    - tryfix dvbapi emm freezing



  * [r10490]

    vg: Clear entitlements before adding new ones.

    Patch by Mandos. This fixes ticket #4115.


  * [r10489]

    Rewrite tuntab (betatunnel) conf parsing and generation functions.

    Makes the code smaller and easier to follow. bloatcheck reports
    binary size savings:
    {{{
     add/remove: 1/0 grow/shrink: 0/2 up/down: 82/-489 (-407)
     function                                     old     new   delta
     tuntab_add                                     -      82     +82
     mk_t_tuntab                                  451     288    -163
     chk_tuntab                                   808     482    -326
    }}}

    Also add tests for 'betatunnel' parser/generator.


  * [r10488]

    - Small fix for dvbapi: only init emm filter values for firstrun on non-running channels



  * [r10487]

    - Fix for emmcache lastseen
    - Some recode for emm handling without emmcache / emmstat



  * [r10486]

    EMM:

    Reworked the emmcache and emmstats once more!

    usecache = 0,x,x  = disable usage of emmcache and emmstats
    usecache = 1,x,x  = enable emmcache, emmstats and save to file if oscam is stopped
    usecache = 2,x,x  = enable emmcache, emmstats but dont save to file if oscam is stopped




  * [r10485]

    Do not increase the number of entries in the dynarray if allocation fails.


  * [r10484]

    Rewrite ecm header whitelist code.

    Change the structure that tracked ecm header whitelist and rewrite
    the related code. Now it is a lot simpler (68 lines less code) and
    closer to ecm whitelist parser and generator.

    Tests module was updated with support for ecm header white list.

    There is a positive effect on binary size as well (-440 bytes).

    {{{
     add/remove: 4/2 grow/shrink: 3/1 up/down: 1639/-2079 (-440)
     function                                     old     new   delta
     chk_ecm_hdr_whitelist                          -     699    +699
     mk_t_ecm_hdr_whitelist                         -     555    +555
     static.ecm_ratelimit_findspace              2499    2685    +186
     ecm_hdr_whitelist_add                          -     113    +113
     matching_reader                             1973    2008     +35
     clear_ecm_hdr_whitelist                        -      34     +34
     static.ecm_ratelimit_check                  2728    2745     +17
     static.free_reader_ecm_headerwhitelist        66       -     -66
     mk_t_ecmheaderwhitelist                      669       -    -669
     ecmheaderwhitelist_fn                       1473     129   -1344
    }}}

    A negative is that after the rewrite the ecm header whitelist structure
    takes a bit more memory than before.


  * [r10483]

    Add 'tests' to .gitignore


  * [r10482]

    - Errorhandling for emmstat, emmcache and channelcache saving: on error remove created file!



  * [r10481]

    tests: Integrate test vectors into test structure.


  * [r10480]

    Make ecm whitelist parser easier to understand.

    Rename some variables and small code cleanup.


  * [r10479]

    Improve ecm whitelist parser and generator.

    Invalid values (0xffff) are reset to zero and now you can have
    filters that have only ident (provider_id) defined. For example
    this is valid filter: `@123456:11,22,33` that will match provider
    with id 123456 and ecm lengths 0x11, 0x22 and 0x33.


  * [r10478]

    Add test module for oscam config entries parsers and generators.

    We have lots of custom parsers and generators for our config file
    settings. Unfortunately there are no test vectors for them or any
    kind of test infrastructure which makes improving them or adding
    features much harder that it needs to be.

    This commit introduces stand alone `tests` module. The purpose of
    this module (the code is in `tests.c`) is to collect test vectors
    and to test them.

    The module is stand-alone and it is built as separate binary by
    using `make tests`.


  * [r10477]

    - fix semicolon typo



  * [r10476]

    - Dont load/save any channelcache on dbox2 since they will crash



  * [r10475]

    - Dont load/save any emmstat or cache on dbox2 since they will crash



  * [r10474]

    - Add dbox2 to recognized boxtypes



  * [r10473]

    sci

    vu+  extra char was not needed


  * [r10472]

    Sci

    fixed speed 4.50 for all vu boxes


  * [r10471]

    Do not initialize openssl twice when ghttp module is enabled.


  * [r10470]

    webif/ghttp/ssl: Do not leak memory allocated by openssl.

    This patch does several related things:
    1. Moves SSL initialization in one place (using it from two threads
       can cause undefined behaviour).
    2. Clean openssl allocated context if ssl initialization in
       webif failed for some reason (not founding certificate file for
       example).
    3. Clear memory after openssl error functions are called.


  * [r10469]

    dvbapi: Fix memset() with reversed parameters.


  * [r10468]

    Rename boxtype() function to boxtype_is().

    This prevents old (and broken) compilers from warning about it.

    {{{
     oscam.c: In function 'init_machine_info':
     oscam.c:706:7: warning: declaration of 'boxtype' shadows a global declaration [-Wshadow]
     globals.h:2042:6: warning: shadowed declaration is here [-Wshadow]
     oscam.c: In function 'boxtype':
     oscam.c:762:26: warning: declaration of ‘boxtype’ shadows a global declaration [-Wshadow]
     oscam.c:762:6: warning: shadowed declaration is here [-Wshadow]
    }}}

    Fixes ticket #4112.


  * [r10467]

    Do not work directly with stb_boxtype.

    stb_boxtype is possible to be NULL, in which case using strcasecmp()
    or similar functions would cause segfault. This patch defines two new
    functions for dealing with stb_boxtype.

      boxtype(X) checks if stb_boxtype equals X.
      boxtype_get() returns the detected box type string.

    As a nice side effect (in addition to cleaner and safer code) we shave
    off a bit of binary size.

    bloatcheck reports:
    {{{
     add/remove: 2/0 grow/shrink: 0/3 up/down: 63/-255 (-192)
     function                                     old     new   delta
     boxtype                                        -      43     +43
     boxtype_get                                    -      20     +20
     dvbapi_ioctl                                 367     359      -8
     Sci_Deactivate                               251     235     -16
     cardreader_init                             1784    1553    -231
    }}}


  * [r10466]

    Sci

    set sci in function off boxtype by a couple of dm boxes.
    Vuduo2 set to the only speed it is clocked.


  * [r10465]

    some webif fixes for commit 10403


  * [r10464]

    updated doc for read_old_classes


  * [r10463]

    dvbapi:

    - More fix for receiver internal bufferoverflow
    - Skip executing of specific emm filter handlingcode if ecm is being handled!



  * [r10462]

    Added default value for 'read_old_classes'.


  * [r10461]

    Added new parameter 'read_old_classes' to documentation.


  * [r10460]

    Do not rely on the compiler to clear the whole structure when using short initializer

    This prevents the compiler from complaining about:
    {{{
     oscam-conf-chk.c: In function 'chk_ecm_whitelist':
     oscam-conf-chk.c:504: warning: missing initializer
     oscam-conf-chk.c:504: warning: (near initialization for 'new_ecm_whitelist.ewdata')
     oscam-conf-chk.c:508: warning: missing initializer
     oscam-conf-chk.c:508: warning: (near initialization for 'd.caid')
    }}}

    Reported by AbrahaM.


  * [r10459]

    Rewrite ecm whitelist code.

    Change the structure that tracked ecm whitelist and rewrite the
    related code. Now it is a lot simpler (160 lines less code).
    There is a positive effect on binary size as well (-1.2k).

    bloatcheck report:
    {{{
     add/remove: 4/2 grow/shrink: 0/5 up/down: 1059/-2357 (-1298)
     function                                     old     new   delta
     chk_ecm_whitelist                              -     533    +533
     mk_t_ecm_whitelist                             -     425    +425
     ecm_whitelist_add                              -      67     +67
     clear_ecm_whitelist                            -      34     +34
     static.ecm_ratelimit_check                  2745    2728     -17
     matching_reader                             2043    1973     -70
     static.free_reader_ecm_whitelist             149       -    -149
     static.ecm_ratelimit_findspace              2685    2499    -186
     update_ecmlen_from_stat                      709     340    -369
     mk_t_ecmwhitelist                            463       -    -463
     ecmwhitelist_fn                             1232     129   -1103
    }}}

    A negative is that after the rewrite the ecm whitelist structure
    takes a bit more memory than before.

    This fixes small memory leak in parsing shown in trac
    ticket #4099 comment 11.


  * [r10458]

    bulcrypt: Another fix for v2 EMMs.

    Patch by chepik suggested in ticket #4110.


  * [r10457]

    EMM:

    - Prevent oscam from running out of resources: remove stale emmcache + emmstats after 30 days (perhaps make this user configable?)
    - Some code adoption to prevent possible null deference



  * [r10456]

    minilzo: Disable internal checks because they cause build errors.

    This fixes:
    {{{
      LINK   ../archiv/oscam-svn8403-fritz33xx-webif.debug
      build/mips-linux-uclibc/minilzo/minilzo.o: In function `_lzo_config_check':
      minilzo.c:(.text+0x678): undefined reference to `__clzsi2'
      collect2: ld returned 1 exit status
    }}}

    This is the same commit as r8404.


  * [r10455]

    - miniLZO update to version 2.09 (released 4 feb 2015)



  * [r10454]

    Allocate TUNTAB dynamically

    The TUNTAB structure size is 602 bytes and also the number of
    entries is limited.

    This structure is used to implement the beta tunnel feature via
    'betatunnel' account setting.

    This feature is not used by everyone but everyone takes the memory hit.

    This patch makes the bulk of the structure dynamically allocated. The
    memory savings are as follows (x86_64 defconfig):

    {{{
     struct         before   after   delta  savings
      s_tuntab         602      16    -586    97.4%
      s_client        2440    1856    -584    24.0%
      s_auth          1976    1392    -584    29.6%

     Binary size:
      add/remove: 1/0 grow/shrink: 5/5 up/down: 335/-485 (-150)
    }}}


  * [r10453]

    doc: Remove CS_MAXTUNTAB mentions in the docs.

    CS_MAXTUNTAB is going away when TUNTAB structure becomes dynamic.


  * [r10452]

    Clear destination FTAB before parsing the new one.


  * [r10451]

    - Cs357 (=camd35 UDP) prevent usage of reconnecttimeout, UDP is stateless so it makes no sense!



  * [r10450]

    Small cleanup of FTAB related code.


  * [r10449]

    Correctly reload ident and chid filters on client reinit.

    This fixes a bug introduced in FTAB rewrite.


  * [r10448]

    - More tryfix for internal filter bufferoverlow of receiver



  * [r10447]

    newcamd: Fix mgclient support which was broken with ftab changes in r10426.

    It seems that FTAB changes in r10426 have broken mgclient support
    in newcamd module. According to the reporter this patch fixes
    the problem.

    Ref: http://www.streamboard.tv/wbb2/thread.php?threadid=43056


  * [r10446]

    bulcrypt: Fix writing of unique EMMs in v2.

    Patch by chepik posted in ticket #4110.


  * [r10445]

    Fix libusb linking on FreeBSD.

    This fixes ticket #4103.


  * [r10444]

    some fixes with ftab allocation


  * [r10443]

    viaccess: now only reading active entitlements/classes, use
    read_old_classes = 1
    in the [reader] config to read all entitlements/classes.
    this should speed up card init.


  * [r10442]

    - Fix for emmcache not loading if emmlogdir is set



  * [r10441]

    Revert "Add -std=c99 to compiler flags."

    This reverts commit r10434.

    It seems that `-std=c99` really breaks oscam subtly at least
    according to ticket #4106.

    Since setting the standart is not bringing anything positive
    but seems to come with it's own set of weird bugs, it is better
    to revert it.


  * [r10440]

    __asm__ fix for c99


  * [r10439]

    Better fix for asm usage in cscrypt.

    This is better fix that the one applied in r10437. Thanks to Jens
    for pointing out that this is a better way.


  * [r10438]

    - Tryfix for dvbapi internal bufferoverlow



  * [r10437]

    cscrypt: Fix for build with -std=c99.

    The optimization that is written in asm for a long time have been
    performed by the compiler so having it in asm is kind of pointless.

    Also not using inline asm makes it possible to build oscam with
    -std=c99 compiler option.

    This fixes ticket #4107.


  * [r10436]

    List destruction should always set the list to NULL.

    This removes ll_destroy_xxx_NULL() macros in favour of making all
    ll_destroyXX() functions set the list parameter to NULL. We already
    have three list destruction functions (too many) in addition to
    that having 2 more (in the form of macros) was starting to get
    unwise.

    This change also removes the need for this idiom (used in couple
    of places):

    {{{
      ll_destroy(x);
      x = NULL;
    }}}

    The ll_destroyXXX() functions are checking if their parameter is
    NULL, so there is no need for the caller to check it.


  * [r10435]

    config-reader: Refactor freeing of ecm_whitelist and ecm_header_whitelist.

    It is a tricky code and duplicating it can only lead to bad things.


  * [r10434]

    Add -std=c99 to compiler flags.

    This changes nothing in the build (we are already c99 compatible).
    It just establishes the base compiler support that we are expecting.


  * [r10433]

    pages_gen: Avoid strict-aliasing warnings.


  * [r10432]

    oscam-emm-cache: Add new lines at the end of file.

    Some compilers warn when files don't end with new lines.


  * [r10431]

    Additional fix for r10422 (Add card_done() callback to card readers).

    I've missed the fact that private data was freed also in free_reader().
    Now the leak described in r10422 should be fixed.


  * [r10430]

    conf-reader: Free strings allocated by config.

    The memory occupied by 'description' and 'readnano' was not freed when
    reader freeing function was called.


  * [r10429]

    camd33/camd35: Allocate aes_keys per client on connect.

    This saves 480 bytes in `struct s_client` for every client that is not using
    camd33 or camd35 protocols.

    Structure changes:

    {{{
     struct         before   after   delta  savings
      s_client        3048    2568    -480    15.8%

     binary size:
      add/remove: 1/0 grow/shrink: 3/0 up/down: 103/0 (103)
    }}}


  * [r10428]

    cryptoworks/viaccess: Allocate EMM reassembly buffers on demand.

    This patch saves 1008 bytes from `struct s_client` in the common case
    where cw/via readers are enabled. Now only AU enabled clients would
    allocate EMM reassembly buffer for themselves.

    Structure changes:

    {{{
     struct         before   after   delta  savings
      s_client        3928    2920   -1008    25.0%
    }}}


  * [r10427]

    newcamd: Prevent filter copying.

    In addition to saving some copying, bloatcheck reports:
    {{{
     add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-120 (-120)
     function                                     old     new   delta
     newcamd_auth_client                         5523    5403    -120
    }}}


  * [r10426]

    Allocate FTAB dynamically

    The FTAB structure size is bigger than 2100 bytes and also the number
    of filters is limited to 16.

    This structure is used to implement the account filters (via 'ident' and
    'chid' settings) and reader filters (via 'fallback_percaid', 'localcards',
    'ident' and 'chid' settings).

    These settings are not used by everyone but everyone takes the memory hit.

    This patch makes the bulk of the structure dynammically allocated. The
    memory savings are very nice:

    {{{
     struct         before   after   delta  savings
      s_ftab          2116      16   -2100    99.3%
      s_reader       13592    5200   -8392    61.8%
      s_client        8120    3928   -4192    51.7%
      s_auth          6176    1976   -4200    68.1%

     Binary size:
      add/remove: 2/0 grow/shrink: 13/23 up/down: 1139/-434 (705)
    }}}


  * [r10425]

    cryptoworks/viaccess: Use rdr_log in EMM reassembly functions.


  * [r10424]

    ghttp: Release all memory on exit.

    valgrind reports:
    {{{
     192 bytes in 1 blocks are still reachable in loss record 1 of 1
        at 0x4C29ADD: malloc (vg_replace_malloc.c:296)
        by 0x4B5773: cs_malloc (oscam-string.c:11)
        by 0x4B1536: ll_create (oscam-llist.c:44)
        by 0x44F744: module_ghttp (module-ghttp.c:758)
        by 0x4048FB: main (oscam.c:1502)
    }}}

    and a lot of things related to SSL error strings that were not freed
    when SSL is enabled.


  * [r10423]

    Wait before stopping GC when running under valgrind.

    This hack leaves some time for oscam threads to finish what they're
    doing before stopping the garbage collector. It is a hack to make
    valgrind happy and to produce clean report of what is possibly leaked.


  * [r10422]

    Add card_done() callback to card readers.

    This allows card readers to free their privately allocated data and
    fixes leak in videoguard2 reader.

    valgrind reported:

    {{{
     344 bytes in 2 blocks are definitely lost in loss record 436 of 733
        at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
        by 0x478FD3: cs_malloc (oscam-string.c:11)
        by 0x44F2C2: memorize_cmd_table (reader-videoguard-common.c:773)
        by 0x45295D: videoguard2_card_init.part.0 (reader-videoguard2.c:587)
        by 0x453A77: videoguard2_card_init (reader-videoguard2.c:539)
        by 0x4436A0: reader_get_cardsystem (reader-common.c:144)
        by 0x443A44: cardreader_do_reset (reader-common.c:194)
        by 0x47AE47: work_thread (oscam-work.c:293)
        by 0x5477181: start_thread (pthread_create.c:312)
        by 0x578800C: clone (clone.S:111)
    }}}


  * [r10421]

    Remove executable bit on source files.


  * [r10420]

    EMM:

    Replace the simple emm ringbuffer with dynamic allocated buffering for emms and emmstats
    Emmcache and emm reader stats are now loaded and saved upon oscam start and stop
    For my usage the cards will only be served with fresh emms no matter how many times I start and stop oscam.

    ToDo:

    The usual fixing of broken stuff :)
    Webif cosmetics: use the new additions like firstseen, lastseen, firstwrite, lastwrite, delete emmcache, delete emm reader stat..




  * [r10419]

    fixed aeskey list memleak


  * [r10418]

    fixed hashtable freeing


  * [r10417]

    Remove dead increments.

    The variables that are incremented are not used after that, so the
    increment can be removed.

    Found by clang checker.


  * [r10416]

    Let the compiler decide if func needs to be inlined.

    This function is the only inlined function (that is not static) in the
    whole oscam source. Surely that func is not that important but also the
    compiler complains about it when c99 mode is switched on.

    With this patch bloatcheck reports 589 byte savings.
    {{{
      add/remove: 1/0 grow/shrink: 0/1 up/down: 152/-741 (-589)
      function                                     old     new   delta
      __xxor                                         -     152    +152
      do_cmd                                      4124    3383    -741
    }}}


  * [r10415]

    strings.h needs to be included for strcasecmp().

    We got strcasecmp() indirectly because of _GNU_SOURCE, but let's be
    explicit that we need that header.


  * [r10414]

    cacheex: Remove unused function and remove inline marks.


  * [r10413]

    reader: Free emm cache.

    valgrind reported:
    {{{
     565,248 bytes in 46 blocks are definitely lost in loss record 483 of 487
        at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
        by 0x477F63: cs_malloc (oscam-string.c:11)
        by 0x4774FF: reader_init (oscam-reader.c:1153)
        by 0x47A0A1: work_thread (oscam-work.c:285)
        by 0x5477181: start_thread (pthread_create.c:312)
        by 0x578800C: clone (clone.S:111)
    }}}


  * [r10412]

    pages_gen: Free all memory when exiting with errors.

    The bug was found with clang checker.


  * [r10411]

    pages_gen: Check if we have any templates at all.

    The bug was found with clang checker.

    This prevents possible allocation with 0 size and weird behaviour
    when there are no defined templates.


  * [r10410]

    pages_gen: Simplify loading of is_defined.txt

    We already have readfile() function, let's use it.


  * [r10409]

    webif color fix


  * [r10408]

    Prevent possible NULL pointer deref.

    Looks impossible to me but according to clang checker it can happen.
    The fix is simple enough.


  * [r10407]

    Check the result of cs_strdup().

    It is not a very likely situation that in this place cs_strdup()
    would fail but crashing is not nice and the result of memory
    allocation functions must be checked at all times.


  * [r10406]

    fixed memleak


  * [r10405]

    revert camd35 pid change


  * [r10404]

    small fix for last commit


  * [r10403]

    applied patches
    10399_status_online_proxys_r4.patch
    10399_duoble_emm_online_proxies_cosmetic s_r1.patch
    from:
    http://www.streamboard.tv/wbb2/thread.php?postid=535337#post535337


  * [r10402]

    Cleanup cache allocations on oscam exit.

    valgrind reports:

    {{{
      272 bytes in 1 blocks are possibly lost in loss record 3 of 5
       at 0x4C2B854: calloc (vg_replace_malloc.c:623)
       by 0x40128C4: _dl_allocate_tls (in /lib64/ld-2.20.so)
       by 0x4E3CFE5: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.20.so)
       by 0x4B8590: start_thread (oscam.c:822)
       by 0x404C2B: main (oscam.c:1562)

      512 bytes in 1 blocks are still reachable in loss record 4 of 5
       at 0x4C29ADD: malloc (vg_replace_malloc.c:296)
       by 0x4918CB: tommy_hashlin_init (tommyhashlin.c:50)
       by 0x492308: init_hash_table (oscam-hashtable.c:11)
       by 0x492602: init_cache (oscam-cache.c:69)
       by 0x4043EA: main (oscam.c:1480)

      512 bytes in 1 blocks are still reachable in loss record 5 of 5
       at 0x4C29ADD: malloc (vg_replace_malloc.c:296)
       by 0x4918CB: tommy_hashlin_init (tommyhashlin.c:50)
       by 0x492308: init_hash_table (oscam-hashtable.c:11)
       by 0x41FC12: cacheex_init_hitcache (module-cacheex.c:56)
       by 0x4043EF: main (oscam.c:1481)
    }}}


  * [r10401]

    Prevent memory loss.

    valgrind reports:

    {{{
     66 bytes in 1 blocks are definitely lost in loss record 1 of 2
        at 0x4C29ADD: malloc (vg_replace_malloc.c:296)
        by 0x4B4A83: cs_malloc (oscam-string.c:11)
        by 0x4B4B6F: cs_strdup (oscam-string.c:46)
        by 0x49EF2B: init_config (oscam-config-global.c:1078)
        by 0x4043F4: main (oscam.c:1482)
    }}}


  * [r10400]

    cache: Mark variables and functions static.

    These are not used outside of oscam-cache.c they should be static.


  * [r10399]

    Sci

    Gives shorter init time for seca/nagra tunneled cards on Vu+ series


  * [r10398]

    cache: Split cacheex code into separate function.


  * [r10397]

    cache: Split cycle check code into separate function.


  * [r10396]

    cache: Simplify code.

    The `if` check is already ugly enough, let's simplify it a bit.


  * [r10395]

    cache: Simplify code.

    Having multiple places that unlock a taken lock is an easy mistake
    waiting to happen.


  * [r10394]

    cache: Reduce CS_CACHEEX ifdefs.

    struct ecm_request_t grows by a pointer but we can always regain this
    space (if needed) by just trimming the structure a bit. vid and prid
    can be uint16_t, from_xxx variables can be packed into bitmask, msglog
    can be slimmed down, cwc_msg_log can trimmed from 64 bytes to 32
    without any problem and there are probably more...).


  * [r10393]

    cache: Remove CW_CYCLE_CHECK ifdefs.

    Due to structure alignment (we have 3 single bytes before uint16_t)
    we've already lost the single byte that is occupied by got_bad_cwc.
    We can use this opportunity to simplify the code.


  * [r10392]

    cwcycle: Move private structures out of the header file.

    This structures are only used in module-cw-cycle-check. I'm leaving
    only the public stuff in the header file.


  * [r10391]

    cacheex: Move cacheex code out of oscam-ecm.c into module-cacheex.c


  * [r10390]

    camd35 tcp: do not complain about packet size if a client closed the connection


  * [r10389]

    dvbapi: new command to stop descrambling all demuxers

    The commit add possibility to close all demuxers related
    with the connection (using network protocol).
    It uses the following packet for this:
    9F 80 3f 04 83 02 00 FF

    If the demux index = 0xff then all related demuxers
    are stopped.



  * [r10388]

    oscam-monitor: fixed sending corrupt packets when strlen(txt) > 255 on crypted connections


  * [r10387]

    gbox: Remove gbox code from garbage collector.

    gbox specific code (that is not even related to memory management)
    have no place in garbage collector which is pretty central part of
    oscam.

    Ref: http://www.streamboard.tv/wbb2/thread.php?postid=535223


  * [r10386]

    gbox: Remove unneeded initialization.

    This field is already zero (the client is cs_malloc()'ed).


  * [r10385]

    gbox: Remove unneeded initializations in oscam-ecm.

    These fields are already zero (courtesy of cs_malloc() couple of lines up).


  * [r10384]

    more fixes


  * [r10383]

    fixed last commit


  * [r10382]

    fixed memory leaks reported here:
    http://www.streamboard.tv/wbb2/thread.php?postid=535176#post535176


  * [r10381]

    added fix for possible crash


  * [r10380]

    added cccam card sid merging


  * [r10379]

    final fix for warning "array subscript has type char"
    we are now using the same syntax as strtolower() [oscam-string.c]
    see thread: http://www.streamboard.tv/wbb2/thread.php?postid=535127


  * [r10378]

    gbox: Disable calling external OSD scripts by default.

    Calling external sripts the way it is implemented is big security
    hole, so this patch disables this feature by default.

    If you need it, uncomment `#define GBOX_ENABLE_UNSAFE_OSD 1` and
    recompile oscam.

    For more info:
      http://www.streamboard.tv/wbb2/thread.php?postid=534454#post534454


  * [r10377]

    Fixes/cleanups related to read tiers patch committed in r10376.


  * [r10376]

    vg2: Add read tiers patch.

    For more info see ticket #4091.

    Original patch by BigGyros. Original readme follows:

    This patch is the sum of various code:
     - some found in streamboard forum (thanks to authors)
     - some were reversed from a (shitty) commercial oscam mods (thanks to an
       anonymous guy who sent to me) some written just by observing the logs from
       a season interface

    What this patch does?
    1) it fix the read of tiers for the nds cards like 09AC that stopped to support
       the ins76 method
        readtiers = 0 //disable
                  = 1 //ins70
                  = 2 //ins76
       (add it in the reader section or use webif)
    2) it adds support for some ins that helps the nds card after the emm update
    3) I hope it will breaks business of assholes who gain money from the free
    works of some streamboard users.

    What this patch does not?
    1) this patch does not break any DRM or any countermeasure done to fight the
       piracy
    2) this patch does not help anybody to share cw
    3) this patch does not help the assholes to sell receivers, lines, oscam-mod,
       fake solutions, birds, woods, monkeys..

    Is the patch tested?
     - Yes, it works..


  * [r10375]

    cacheex: Cleanup the header file a bit for easier reading.


  * [r10374]

    cacheex: Move cacheex code from oscam-cache.c to module-cacheex.c

    oscam-cache.c is for generic code.


  * [r10373]

    better fix for warning "array subscript has type char"


  * [r10372]

    fixed warning "array subscript has type char"


  * [r10371]

    disable ecm odd/even byte check for constcw requests


  * [r10370]

    Smartreader protocol

    fix compile warning


  * [r10369]

    Smartreader protocol

    Modified restart protection to be dev handle base.


  * [r10368]

    Sci

    IOCTL_SET_DEACTIVATE does not work on dm8000.
    Free allocated mem's when closing reader.


  * [r10367]

    [gbx] Introduce optional parameter cccam_reshare in gbox section of oscam.server.

    cccam_reshare can be used to control the number of hops of cccam cards in the gbx network.
    It is independent from the global reshare settings of cccam and is similar to the parameter
    cccreshare in the reader settings of cccam.
    However the logic is gbx-like not cccam.
    Setting it to 0 will prevent cccam cards from being shared. Settings > 0 represent the
    number of hops.




  * [r10366]

    net: Initialize local variable.

    Found by clang checker.


  * [r10365]

    ecm: Prevent possible NULL ptr dereference.

    Found by clang checker.


  * [r10364]

    cccam: Prevent possible NULL ptr dereference.

    Found by clang checker.


  * [r10363]

    Correctly restore errno after nanosleep().

    Additional fix after r10353.


  * [r10362]

    oscam-log: Remove useless check.

    Size can't be zero, no need for check for this at all.


  * [r10361]

    WebIf:

    - Fix typo and set width for table in emm_running.html


  * [r10360]

    enabled and fixed dvbapi for cygwin.
    now it is possible to run a dvbapi tcp server on windows.
    for example together with dvbv-dvbapi-plugin by schwa226
    thread here:
    http://www.streamboard.tv/wbb2/thread.php?threadid=42677


  * [r10359]

    WebIf:

    1. Fix for textarea in script.html. Show height for textarea if isn´t text output.
    2. Same width for table in emm.html as emm output in textares.


  * [r10358]

    Currently we are not sending the (ecm)pid over camd35, this makes constcw requests impossible.
    To fix this, this change will use the "buf+18" field to store the pid. This space is ignored or set to a hard-coded value by all other camd3 implementations I checked. The orignal camd3 code either sets it to zero or fills this field with something related to the crc32 checksum and the value at buf+16.
    Since up to now we just set it to '0xffff', this change should not break anything.
    I have tested connecting to orignal camd3 and everything worked.


  * [r10357]

    Sci

    Modified restart wait until closed protection to act really reader based.
    Added a extra log output to detect incompatible commands versus stb type. Example The IOCTL_SET_DEACTIVATE function. Not supported on dm8000 but required on vuduo2.


  * [r10356]

    Webif: (Tnx Ultra47 and oscam community members for their effort!)

    - Fix for http://www.streamboard.tv/oscam/ticket/4064
    - Patch r9947 enhanced
    - Fix show written emms if emm logdir empty
    - Optical fixes show written emms
    - Show written emms on write emm tab sorted and filtred (oldest first, newest last), idea by schorsch




  * [r10355]

    stat: Remove useless check.

    Checking for 'ea' just tricks static checkers that 'ea' can be NULL
    which it can't be.


  * [r10354]

    smartreader: Prevent NULL pointer derefence.


  * [r10353]

    Correctly restore errno after nanosleep().


  * [r10352]

    [gbx] Obey reshare parameter of cccam also in gbx network.
    Check for ECMs taking too many hops.




  * [r10351]

    fix for #4043


  * [r10350]

    oscam-config: Fix variable types.

    If you have set `lb_force_fallback` in your config, because of wrong
    variable type in oscam-config-reader.c initializing this variable overwrite
    others after it.

    This may lead to crashes and unexpected behaviour.


  * [r10349]

    devtools: Improve messages in check_config_tables.sh


  * [r10348]

    devtools: Improve config table checking script.


  * [r10347]

    Prevent "too many open files" issue on OS X.

    Patch by powercore posted in ticket #4008.


  * [r10346]

    log: Third try to fix anticasc log.

    This is a fix for ticket #4092.


  * [r10345]

    cccam: Move cacheex code into separate file.

    This cleans up module-cccam.c (which is already very big) and
    the ability to compare camd35 and cccam cacheex implementations.

    They have a lot of common.

    Another nice thing is the removal of all CS_CACHEEX ifdefs in
    cccam module.


  * [r10344]

    cacheex: Remove useless ifdefs.

    The whole file is guarded by CS_CACHEEX ifdef, there is no
    need for these extra ifdefs.


  * [r10343]

    log: Fix for anticasc log.

    Additional fix for ticket #4092.


  * [r10342]

    build: Do not warn about using openssl on OS X.


  * [r10341]

    log: Add missing new line in log lines.

    This fixes ticket #4092.


  * [r10340]

    camd35: Move cacheex related code in module-camd35-cacheex.{c,h}

    Over 45% of the code in camd35 was dedicated to cacheex. So much
    code deserves it's own file. This cleans camd35 a lot and makes
    it ifdef free and a lot easier to follow.


  * [r10339]

    camd35: Add proper prefix to all functions that didn't have one.

    * All camd35 funcs now have camd35_ prefix.
    * All camd35 funcs that deal with cacheex now have camd35_cacheex_ prefix.


  * [r10338]

    camd35: Mark funcs static where needed.

    These functions are used only in this module.


  * [r10337]

    camd35: Prepare cacheex code for moving into separate file.

    This commit is just preparation for moving camd35 cacheex code
    into separate file.


  * [r10336]

    camd35: Prepare cacheex code for moving into separate file.

    This commit is just preparation for moving camd35 cacheex code
    into separate file.


  * [r10335]

    camd35: Prepare cacheex code for moving into separate file.

    This commit is just preparation for moving camd35 cacheex code
    into separate file.


  * [r10334]

    camd35: Prepare cacheex code for moving into separate file.

    This commit is just preparation for moving camd35 cacheex code
    into separate file.


  * [r10333]

    camd35: Prepare cacheex code for moving into separate file.

    This commit is just preparation for moving camd35 cacheex code
    into separate file.


  * [r10332]

    camd35: Prepare cacheex code for moving into separate file.

    This commit is just preparation for moving camd35 cacheex code
    into separate file.


  * [r10331]

    camd35: Remove unneeded CS_CACHEEX ifdefs.

    This code is already covered by ifdef CS_CACHEX, no need for
    second check inside this ifdef.


  * [r10330]

    dvbapi experimental: auto filter limiting

    Some users experience "ERROR: read error on fd xx"
    I guess this due to the fact too much filters (presumable emm type) are started and the box is killing random filters started before.
    Even worse, soms boxes accept it all without returning to us no more filters we reached maximum.
    On attempt to read the data from a certain filter the "ERROR: read error on fd xx" is returned.

    Now this filter is killed and the max ammount filters is lowered by 1.
    Once oscam is running for some time the max ammount filters will be settled on a value that works for your box.

    Feedback you can give here: http://www.streamboard.tv/wbb2/thread.php?postid=534445#post534445



  * [r10329]

    WebIf: Right maxlegth for input (set Group) in user_edit.html

    Thx uf2k.


  * [r10328]

    - tryfix: moved the cs_sleepms() to a (hopefully) better place in the handler code



  * [r10327]

    build: Fix smartreader compilation on OS X.


  * [r10326]

    webif/pages_gen: Do not leak fds in readfile().

    readfile() was not closing the file it opened. If your system
    have lowered file open limits (like < 256) pages_gen failed
    because there were too many open files.


  * [r10325]

    Reduce CS_CACHEEX ifdefs.

    * Structure definitions do not need to be guarded.
    * Funcs that are not used would be dropped by the compiler.
    * Func declarations do not need to be guarded.

    No binary changes.


  * [r10324]

    webif: Reduce WITH_LB ifdefs.

    We can use config_enabled() instead of ifdef in these cases.


  * [r10323]

    config-reader: Reduce WITH_LB ifdefs.

    Just code movement, no functional changes.


  * [r10322]

    config-account: Remove duplicated function.

    The function already exists in oscam-config-global.c.
    No need to copy/paste it.


  * [r10321]

    camd35: Remove WITH_LB ifdefs.

    We can use config_enabled() instead of ifdef in this case.


  * [r10320]

    chk: Remove WITH_LB ifdefs.

    Just code movement, no functional changes.


  * [r10319]

    reader: Remove WITH_LB ifdefs.

    Just code movement, no functional changes.


  * [r10318]

    ecm: Reduce WITH_LB ifdefs.

    Just code movement, no functional changes.


  * [r10317]

    ecm: Reduce WITH_LB ifdefs.

    Just code movement, no functional changes.


  * [r10316]

    ecm/dvbapi: Reduce WITH_LB ifdefs.

    Just code movement, no functional changes.


  * [r10315]

    ecm: Reduce WITH_LB ifdefs.

    Just code movement, no functional changes.


  * [r10314]

    ecm: Remove dead code guarded by WITH_LB ifdef.

    The removed code boils down to:

    {{{
    if (!provid) {
      loop {
        if (some_check || some_other_check)
           provid = 0;
           break;
      }
    }
    }}}

    which is obviously bogus since provid is already 0.


  * [r10313]

    Revert "gbox: Do not use popen() to write into files."

    This reverts commit r10286. It turns out that gbox really wanted
    to execute shell commands. See commit r9723.


  * [r10312]

    gbox: Add new lines at the of OSD files.

    Without new lines r10286 probably broke the osd functionality.


  * [r10311]

    pcsc: Do not include PCSC/reader.h on OS X.

    This header do not exist on OS X's pcsc.


  * [r10310]

    build: Check USE_ flags when card reader config is being listed.

    This allows the build to display SMART and PCSC readers, when they
    are enabled.


  * [r10309]

    build: Show what config file is being used.


  * [r10308]

    [gbx] One more it found.




  * [r10307]

    [gbx] Small fix for r10305.




  * [r10306]

    - Fix compile warning introduced in r10305



  * [r10305]

    [gbx] Fix total cards in hello display. Fight against spaghetti code.




  * [r10304]

    [gbx] Consolidate MSG_HELLO1 handling.




  * [r10303]

    [gbx] Collapse first hello handling. Do not malloc hostname on every new hello.




  * [r10302]

    build: When getting include PATHs do not try to compile.

    This speeds up include path detection nearly three times (not that
    it was slow but anyway).


  * [r10301]

    build: Allow PCSC headers to be installed in CROSS/.../local/include/PCSC

    Without this oscam would try to include PCSC headers from host's
    /usr/local/include/PCSC instead of the headers in the toolchain.


  * [r10300]

    build: Fix cross compilation of PCSC.

    We use the compiler's last include PATHs and add PCSC to it.

    Basicaly it is /usr/include but in case of cross compilation it
    might be something else.

    Since using -Iinc_path instructs the compiler to use inc_path
    (without add the toolchain system root) we need to have this hack
    to get the "real" last include path. Why we needs this?

    Well, the PCSC headers are broken and rely on having the directory
    that they are installed it to be in the include PATH.

    We can't just use -I/usr/include/PCSC because it won't work in
    case of cross compilation.


  * [r10299]

    build: A simpler way of fixing PCSC header idiotism.

    Just playing with include paths is enough to work around
    broken PCSC headers which are installed in include/PCSC/...
    but include themselves without PCSC/


  * [r10298]

    README.build: Update.


  * [r10297]

    build: Remove TARGET_SYSROOT.

    gcc option -print-sysroot is not always supported. For example
    on older toolchains and for toolchains compiled without --with-sysroot.

    Also this variable is not used.


  * [r10296]

    build: Allow PCSC to be built with other than shipped headers in extapi.

    If you do not want to use the PCSC headers shipped in extapi,
    you may build oscam by specifiyng another include directory.

    {{{
    make USE_PCSC=1 DEFAULT_PCSC_FLAGS=-I/usr/local/include
    }}}


  * [r10295]

    [gbx] more log cosmetics




  * [r10294]

    README.build: Update.


  * [r10293]

    build: Clean pcsc build variables for OS X.


  * [r10292]

    build: Use local pcsc headers for compilation.


  * [r10291]

    build: Use pcsc headers in extapi.


  * [r10290]

    extapi: Add PCSC headers.

    PCSC headers as shipped by pcsclite project are buggy. They are
    installed in /usr/{local/}include/PCSC but they use #include <wintypes.h>
    and #include <pcsclite.h> (Note the missing PCSC/ directory).

    The result is that the compilation fails if the compiler is
    not instructed to add to its include path /usr/include and/or
    /usr/include/local.

    Adding these paths comes with it's own set of problems for
    cross compilation.

    So the "cleanest" thing is to adopt pscs headers in extapi.

    Currently extapi/PCSC contains all headers that are needed
    for PCSC compilation. The only difference between them and
    the ones shipped by pcsclite is that include statements
    were fixed to correctly include PCSC/...

    Even if you don't have pcsc installed `make pcsc` would
    compile oscam, just the final link phase would fail complaining
    about missing libpcsclite.


  * [r10289]

    Make file PCSC

    better then hack in 10288


  * [r10288]

    build: Fix PCSC cross compilation.

    This hack is needed because PCSC includes <wintypes.h> instead
    of <PCSC/wintypes.h>.

    It is ugly but it'll work.


  * [r10287]

    Revert "build: Remove forced include path in pcsc build."

    This reverts commit r10285.

    PCSC ships with broken headers which include <wintypes.h> when
    they should include <PCSC/wintypes.h>

    It worked for me because I have copied wintypes.h into /usr/local/include.


  * [r10286]

    gbox: Do not use popen() to write into files.

    Using popen() to write into files is highly unusual. Let's do
    this properly.


  * [r10285]

    build: Remove forced include path in pcsc build.

    Adding /usr/include/PCSC in the include path is wrong in
    case of cross compiling. We include pcsc headers using #include <PCSC/...>
    which forces the compiler to use default include search path,
    which in turn contains /usr/include and /usr/local/include.

    So this should fix building pcsc in cross compilation
    environment.


  * [r10284]

    dvbapi:

    Add support for mapped A: lines

    Example:

    A:::10E0:0844::: 2600:000000:1FFF

    Receiver wants to demux srvid 10E0 on adapter 0000 camask 0001 index 0000 pmtpid 0844
    ..
    ..
    Added fake ecmpid 2600:000000:1fff for unencrypted stream on srvid 10E0




  * [r10283]

    log: Unify logging function names under cs_log prefix.

    This commit renames logging functions. Now everything that
    logs can be found by searching for cs_log.

    Here is what is being done:

    `
    > Existing logging:
    >                             ->  cs_log
    >
    > Renamed:
    >   cs_debug_mask             ->  cs_log_dbg
    >  rdr_debug_mask             -> rdr_log_dbg
    >  rdr_debug_mask_sensitive   -> rdr_log_dbg_sensitive
    >
    > Existing logging that hexdumps buffer:
    >                             ->  cs_log_dump
    >                             -> rdr_log_dump
    >
    > Renamed:
    >   cs_ddump_mask             ->  cs_log_dump_dbg
    >  rdr_ddump_mask             -> rdr_log_dump_dbg
    `

    Here is the script that was used to make the changes.

    {{{
    FILES=$(find -name '*.c' -o -name '*.h')

    perl -pi -e 's|cs_debug_mask|cs_log_dbg|g' $FILES
    perl -pi -e 's|rdr_debug_mask|rdr_log_dbg|g' $FILES
    perl -pi -e 's|rdr_debug_mask_sensitive|rdr_log_dbg_sensitive|g' $FILES
    perl -pi -e 's|cs_ddump_mask|cs_log_dump_dbg|g' $FILES
    perl -pi -e 's|rdr_ddump_mask|rdr_log_dump_dbg|g' $FILES
    }}}

    The old function names were defined as compatability but don't
    use them in new code because these defines would be removed
    sometimes in the future.


  * [r10282]

    log: Unify log headers.

    We don't really need 3 types of log headers.


  * [r10281]

    log: Add log prefix to hex dumps.


  * [r10280]

    [gbx] Small addition to r10279




  * [r10279]

    [gbx] Harmonizing log messages after recent changes by gfto. Thx!




  * [r10278]

    - Revert experimental protection against boxes that seem to close filters without being instructed to do so by dvbapi
    - On hypercube su980 always return ok on io_ctl + some code cosmetics in io_ctl to make it more readable
    - Some recoding on dvbapi init (boxtype+api) since cs_log() needs these parameters set before otherwise crashing



  * [r10277]

    Internal readers non-pll (cardmhz < 2000):

    Proper fix for regression introduced in r10267



  * [r10276]

    - Fix for segfaults due to changed logline styles (used vars must be inited before logging now!)



  * [r10275]

    - Remove unused var .Di from struct cardreadersettings



  * [r10274]

    - Somehow I managed to get oscam to use too much resources -> give it back!



  * [r10273]

    dvbapi:

    - More rework on resorting ecmpids
    - More Logcosmetics



  * [r10272]

    More dvbapi eyecandy: log how much time sorting the ecmpids takes!



  * [r10271]

    dvbapi:

    Channelcache enhenced once more: deleting whole channelcache on oscam.dvbapi change removed.
    Now exact channelcache hit is checked at end of ecmpid prio/ignore matching.
    If a channelcache entry matches with highest prio -> start descrambling only that ecmpid otherwise ignore channelcache.




  * [r10270]

    - Same mixup D <> Di for smargo



  * [r10269]

    - Correction mixup of D and Di (old code was sending D but smartreader code accepted it as Di...)



  * [r10268]

    csctapi: Change Fi only on sci card readers.

    This fixes regression introduced in r10267.


  * [r10267]

    csctapi: Merge three write_settings() callbacks.

    This patch removes write_settings2 and write_settings3 callbacks
    merging them into single write_settings() that receives struct
    s_cardreader_settings parameter.


  * [r10266]

    serial: Don't try to be cute with logging format strings.

    The compiler will save duplicated strings only once anyway, so there
    is no need for such a trick.


  * [r10265]

    log: Rename cs_dump() and rdr_dump() to cs_log_dump() and rdr_log_dump().

    Now searching for cs_log we'll get places where logging funcs are used.


  * [r10264]

    Use rdr_dump instead of cs_dump in card readers.


  * [r10263]

    gbox: Remove duplicated log prefixes.


  * [r10262]

    constcw: Remove duplicated log prefixes.


  * [r10261]

    Move logCWtoFile() func to oscam-ecm.c

    It is the only place where it is used also the idea of oscam-log.c
    is to hold the global logging code.


  * [r10260]

    log: Move anticasc logging code into module-anticasc.c

    And clean an ifdef in module-log.c


  * [r10259]

    dvbapi/azbox/mca: Clean logging messages.

    Now that we have module prefixes these additional prefixes are not needed.


  * [r10258]

    dvbapi:  No need to handle obvious invalid fd!



  * [r10257]

    dvbapi:

    - Small log cosmetic I missed
    - Experimental protection against boxes that seem to close filters without being instructed to do so by dvbapi



  * [r10256]

    dvbapi log cosmetics



  * [r10255]

    log: Add MODULE_LOG_PREFIX to the files that need it.


  * [r10254]

    log: Prepare anticascading log for logging prefixes.


  * [r10253]

    log: Align module prefixes.


  * [r10252]

    log: Allow each source file to declare it's own log prefix.

    Adding `#define MODULE_LOG_PREFIX "mymodule"` before including
    globals.h would instruct logging functions to add this prefix
    in each log message.

    This functionality would allow a lot of cleanup in module logging
    messages and it'll make it easier to sort (filter) messages by
    module.


  * [r10251]

    csctapi: Use rdr_debug_mask() instead of cs_debug_mask().


  * [r10250]

    smartreader: Use rdr_log() instead of cs_log().


  * [r10249]

    csctapi: Use rdr_log() in azbox and sci card readers.


  * [r10248]

    readers: Use rdr_log() in cryptoworks and viaccess readers.


  * [r10247]

    dvbapi: Workaround for CA_SET_DESCR ioctl() on su980.

    The kernel on su980 boxes is buggy returns error when CA_SET_DESCR is called.
    For more info see: http://www.streamboard.tv/wbb2/thread.php?postid=533940


  * [r10246]

    Machine info

    Extend boxtype info to all internall readers as harmless test. Or at least as check that it's harmless.


  * [r10245]

    Machine Info

    cosmetic removed a not wanted space


  * [r10244]

    Machine info

    added su980 boxtype


  * [r10243]

    oscam-log: Split cs_log_int().

    Split cs_log_int() into separate functions for logging single lines
    and logging with buffer dumping. This is made mainly to avoid having
    unused parameters in a single function.

    As far as the users of the logging API are concerned - the API is
    unchanged.

    bloatcheck reports 12077 bytes saved from x86_64 oscam binary and
    14044 bytes saved on dm500 binary.


  * [r10242]

    oscam-log: Prepare cs_log_int() for splitting into separate functions.

    This is just a preparation - code movement and whitespace changes.
    No noticable functional changes.


  * [r10241]

    oscam-log: Remove lock parameter of cs_log_int().

    The comment added in r10240 was wrong. liboscam_stapi.a calls cs_log()
    function which is correctly emulated in module-dvbapi-stapi.c so
    it is safe to remove lock parameter of cs_log_int().

    According to bloatcheck this change saves 9006 bytes from the oscam
    binary on x86_64.


  * [r10240]

    oscam-log: Clarify why we keep 'lock' parameter to cs_log_int().


  * [r10239]

    oscam-log: Remove XXX_nolock() macroses.

    The `lock` parameter of cs_log_int() is even marked as unused
    because it really is. There is no point in having XXX_nolock.


  * [r10238]

    oscam-log: Reorder some declarations to reduce ifdefs.


  * [r10237]

    Revert "Extra dump functions."

    This reverts commit r10016.

    Gratiuous copy+paste for no reason at all. These functions were not
    even used. Not worth the extra 75 lines of code that does exactly
    nothing (luckily the linker knows when a code is not used so these
    functions never increased the binary size and after removing them
    the binary is exactly the same).


  * [r10236]

    failban: Restore the behaviour broken by r10232.


  * [r10235]

    - Refresh nagra entitlement only if last written emm was more than 60 minutes ago



  * [r10234]

    - fix for pincode (now only 4 digits)
    - cosmeticfix for boxkey => now double length
    - fix for last channel on status.html

    Tnx goes to Ultra47 developing the patch together with some dedicated oscam users!



  * [r10233]

    Remove ifdef from oscam-config.c


  * [r10232]

    Remove CS_ANTICASC ifdef in oscam-failban.c


  * [r10231]

    Clean SO_REUSEPORT ifdefs.

    Most (if not all) of these calls to set socket option SO_REUSEPORT are
    bogus IMHO, but cleaning this mess is left for another time. For now just
    remove create a function and use it instead of sprinkling ifdefs everywhere.

    I'm 97.8% sure that all of these calls can be removed...

    For more info about SO_REUSEPORT see:
      http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c617f398edd4db2b8567a28e899a88f8f574798d
      http://stackoverflow.com/questions/3261965/so-reuseport-on-linux


  * [r10230]

    Remove last HAVE_DVBAPI ifdef in oscam-reader.c


  * [r10229]

    Move function used only in dvbapi module closer to where it is called.

    Also cleanup the function a bit.


  * [r10228]

    Eliminate the last two ifdefs's in oscam-work.c

    Move the code where it belongs in module-cacheex.c and remove the
    ifdefs.


  * [r10227]

    config: Some sed implementations do not support -i option.

    Patch by kraiv @ satsupreme for improving OpenBSD support.


  * [r10226]

    - Cosmetic fix for internal readers driving irdeto cards at wrong speed



  * [r10225]

    - Revert accidental changes to config.h



  * [r10224]

    - dvbapi fix for boxtype pc using listenport (tnx Manio for reporting and testing)



  * [r10223]

    [gbx] Remove extra call to gbox_send_good_night




  * [r10222]

    [gbx] Fix memleak introduced with r10140.
    Supposed to fix ticket 4075.
    See: http://www.streamboard.tv/wbb2/thread.php?threadid=42906




  * [r10221]

    OpenBSD fixes from kraiv @ satsupreme.


  * [r10220]

    - Only allow listenport on boxtype pcnodmx



  * [r10219]

    - Fix for clear channelcache sporadic crashing



  * [r10218]

    Machine Info

    boxtype with less complicated code done by gf.


  * [r10217]

    oscam-work: Reduce CS_CACHEEX ifdefs.


  * [r10216]

    oscam-work: Replace ifdef with config_enabled(MODULE_CCCAM).


  * [r10215]

    Update README.build.

    Somebody (probably me) forgot to run `make README.build` after
    changing the help text in the Makefile.


  * [r10214]

    dvbapi/samygo: Clean the code for future development.

    According to the developers SAMYGO dvb code is not currently
    working. This patch removes the config symbol and cleans the
    code so future development can fix the code easily.

    For more info: http://www.streamboard.tv/wbb2/thread.php?postid=533219

    In theory if the code was working this transformation should
    not break it and fixing only the samygo detection routine
    should return it to the state before this patch minus all the
    ifdefs.


  * [r10213]

    Remove more useless WITH_CARDREADER ifdef's.


  * [r10212]

    Remove some HAVE_DVBAPI ifdefs.


  * [r10211]

    emm: Remove useless ifdefs.

    There is a static inline function defined when WITH_CARDREADER is
    disabled, so the removed ifdef's were useless.


  * [r10210]

    newcamd: Add DVBplug (0x9922) to client list.

    Fixes ticket #4076.


  * [r10209]

    Machine Info : small fix. Free buffer after it's not needed anymore


  * [r10208]

    Machine Info

    added dm500 or dm600pvr boxtypes


  * [r10207]

    Machine info : fix compile warning mac


  * [r10206]

    Strings

    previous ad of strtonchars was perfect on pc but not for stb's.
    now it's ok for both


  * [r10205]

    - Webif fix for proper handling of 16 and 32 bit boxkeys



  * [r10204]

    - Experimental attempt to avoid var size issues with time since recently comp_timeb() gives back int64_t



  * [r10203]

    Strings

    Added extra string function.
    To read first n or last n chars of a string.


  * [r10202]

    [gbx] Fix warning.




  * [r10201]

    [gbx] minor fixes for rebroadcast thread




  * [r10200]

    Machine Info

    forgotten fclose()


  * [r10199]

    Machine Info

    Try out.
    Added dm500 and dm600pvr
    to go is extra fix to differenciate dm500 and dm6000pvr


  * [r10198]

    dvbapi: Simpler fix for the bug introduced in r10189 and fixed in r10196.


  * [r10197]

    Machine Info

    cosmetic and some fixes


  * [r10196]

    - Fix for dvbapi blocker introduced in rev 10189

    Perhaps there is a smarter fix possible but this works for me ;)



  * [r10195]

    dvbapi/stapi: Leave only public functions in module-dvbapi-stapi.h

    Along with leaving only public functions in module-dvbapi-stapi.h
    add static where it is needed in module-dvbapi-stapi.c

    Bloatcheck reports > 610 byte savings after this patch.


  * [r10194]

    dvbapi/coolapi: Leave only public functions in module-dvbapi-coolapi.h

    Along with leaving only public functions in module-dvbapi-coolapi.h
    add static where it is needed in module-dvbapi-coolapi.c

    Bloatcheck reports > 220 byte savings after this patch.


  * [r10193]

    dvbapi/mca: Leave only public functions in module-dvbapi-mca.h

    Along with leaving only public functions in module-dvbapi-mca.h
    add static where it is needed in module-dvbapi-mca.c

    Bloatcheck reports > 200 byte savings after this patch.


  * [r10192]

    dvbapi/azbox: Leave only public functions in module-dvbapi-azbox.h

    Also add static where it is needed. Bloatcheck reports minimal (12 bytes)
    size saving.


  * [r10191]

    Add webif/is_defined.txt to the list ignorred files by git.


  * [r10190]

    dvbapi: Clean powerpc ifdefs.

    Now that we have ioctl() wrapper function we can fix dm500 issues
    over there.


  * [r10189]

    dvbapi: Create and use dvbapi_ioctl() instead of ioctl() directly.

    This change would allow us to integrate SAMYGO code cleanly and also
    remove some ppcold (dm500) ifdefs in the dvbapi module.


  * [r10188]

    dvbapi/samygo: Reformat samygo's ioctl() function.

    Whitespace and comment fixes. No code changes.


  * [r10187]

    - Channelcache: Cached chid was never used -> Fixed!
    - Show in log that channelcache was used to start descrambling a certain pid



  * [r10186]

    - dvbapi channelcache: only allocate mem if there is valid data that needs it!



  * [r10185]

    [gbx] Cosmetics.




  * [r10184]

    Machine Info : No need to allocate bigger mem buffers then required.


  * [r10183]

    dvbapi/azbox+mca: Clean ifdefs.

    azbox and mca use their own handlers for ->s_handler and ->send_dcw.
    Rework the code to make this explicit.


  * [r10182]

    dvbapi: Clean SAMYGO ifdef.


  * [r10181]

    dvbapi: Clean ifdefs.

    According to the comment, ppcold (dm500?) returns wrong error code
    on ioctl(CA_SET_DESCR).

    There should be no functional changes after this patch.


  * [r10180]

    Machine Info

    added global structure for machine info.
    For now only two params, In future there will be some extra.

    Added a log output by pll sci readers to see if ok for effectif use.


  * [r10179]

    Machine Info : boxtype fix


  * [r10178]

    Machine Info : fixed error handling


  * [r10177]

    Machine Info : relocated and made function.


  * [r10176]

    irdeto: Fix warning about unused parameter


  * [r10175]

    - Fix wrong usage of memset



  * [r10174]

    dvbapi: don't always reset protocol version when client closes connection

    When there is more then one connection and one is closed, the protocol version
    was reset, and it badly influences on the other (existing) connections.

    Fixed to reset only when last connection is closed.



  * [r10173]

    seca: Allow each reader to have it's own IDEA state.


  * [r10172]

    - Init static ideacrypt only once, this will saves cpu resources!



  * [r10171]

    - Tweak for channelcache: if oscam.dvbapi is changed channelcache is destroyed so new prio/ignore rules are applied!



  * [r10170]

    seca: Include IDEA library code.

    This fixes ticket #4066.


  * [r10169]

    dvbapi-chancache: Reduce allocations and clean code.


  * [r10168]

    dvbapi-chancache: Do not set thread name.

    This code doesn't need to set thread name!

    It is actually a bug because dvbapi_save_channel_cache() is called from main
    thread and after set_thread_name() oscam process will be named dvbapi_save_channel_cache
    which is unexpected to say the least.


  * [r10167]

    dvbapi: Move channel cache functions into their own file.

    module-dvbapi.c is already too big (5000+ lines, 160k+ size).


  * [r10166]

    dvbapi: cleanup AZBOX and MCA code (openxcas support).

    There should be no functional changes after this patch.


  * [r10165]

    dvbapi: Prefix channel cache funcs with dvbapi_ and add static where needed.

    There should be no functional changes after this patch.


  * [r10164]

    cccam: Cleanup ifdefs.

    Use config_enabled() instead of ifdefs. This provides compile time
    checking if the code is OK even if the config option is disabled.

    Also make the lb checks code readable.

    There should be no functional changes after this patch.


  * [r10163]

    dvbapi: Cleanup ifdefs.

    Use config_enabled() instead of ifdefs. This provides compile time
    checking if the code is OK even if the config option is disabled.

    There should be no functional changes after this patch.


  * [r10162]

    dvbapi: Cleanup ifdefs.

    Try to minimize ifdefs when they are not needed. It is better to
    declare static inline functions when some module is not enable than
    to sprinkle ifdefs all over generic code.

    There should be no functional changes after this patch.


  * [r10161]

    cacheex: Cleanup ifdefs.

    Try to minimize ifdefs when they are not needed. It is better to
    declare static inline functions when some module is not enable than
    to sprinkle ifdefs all over generic code.

    There should be no functional changes after this patch.


  * [r10160]

    Remove setvbuf() calls.

    In my opinion there is no need to mess with stdio buffers buffers just to
    read/write some small config text file. Less code == less things to go wrong,
    so following that philosophy this patch removes setvbuf() calls.


  * [r10159]

    bulcrypt: Fix newcamd support for Bulcrypt.

    These changes fixed Oscam ticket 4055, credits to kraiv and chepik from
    satsupreme forum.


  * [r10158]

    log: Remove oscam-log-xtr.h

    I fail to see the point of having a header file which defines two variables
    and it is included in only one file oscam-log.c

    Even if these variables are used in other places other than oscam-log.c (and
    they are not) using additional header file is again the wrong thing to do.

    There should be no functional changes after this patch.


  * [r10157]

    - channelcache load/save: some fixes for MCA / AZBOX
    - removed some stale testing code



  * [r10156]

    - Fix for channelcache chid handling
    - Fix for requestmode 0 not using exact channelcache match



  * [r10155]

    - dvbapi load and save of the channel cache to speedup decoding of channels



  * [r10154]

    Machine info

    created extra header file.

    Now info can be used in other .c modules if header is included to that file.


  * [r10153]

    Improve seca readercode



  * [r10152]

    Machine info

    added extra's for xp1000.
    added a forgotten fclose()


  * [r10151]

    - more fix for ticket 4065, all vars are now protected to prevent crashing!



  * [r10150]

    Machine info

    declared some var's in c file self will have to find another way off declarations without braking some uclib compilations


  * [r10149]

    Machine info

    renamed models info vars


  * [r10148]

    machine info

    extra fix


  * [r10147]

    Machine info
    Some small corrections.


  * [r10146]

    Machine info

    extra info about the router , stb or pc .
    This info can become very usefull in future to automate settings like for example:  sci in function of stb.


  * [r10145]

    - Proper fix for ticket 4065



  * [r10144]


    [gbx:] Revert 10143




  * [r10143]

    [gbx:] Display providing peer id in ecmfmt




  * [r10142]

    [gbx:] Fix warnings in some build environments. Thx AbrahaM.




  * [r10141]

    [gbx:] Fix gbox_max_distance setting




  * [r10140]


    [gbx:] Stop flooding ecms to multiple gbx card peers
    See also: http://www.streamboard.tv/wbb2/thread.php?threadid=42843




  * [r10139]

    - Webif cosmetic fixes for dvbapi FTA channels
    - Webif page refresh fixes for side-effects introduced by commit 10134

    Tnx Hook and Ultrar47 for providing a combined patch!



  * [r10138]

    - Fix warning: seems some toolchains like arm-cortex uname is already defined in utsname.h



  * [r10137]

    - dvbapi requestmode 1 now follows prio / ignore rules too



  * [r10136]

    general

    added sys/utsname.h header. ussefull to determine platform info out off c


  * [r10135]

    some emmfix

    added extra protection


  * [r10134]

    - Fix for auto http refresh doing "actions" repeatingly for example loadbalancer readerstatistics resets repeat (Tnx Ultra47 for providing patch!)



  * [r10133]

    oscam-time

    millitm param from uint64_t to int64_t


  * [r10132]

    - Ecm handler log cosmetics



  * [r10131]

    oscam time

    changed uint64_t into int64_t


  * [r10130]

    io-serial

    some extra log outputs after reader flush. In us.
    sh4 and smartreader timer reset did not worked now it does.


  * [r10129]

    Experimental:

    While testing changing millitm to uint32_t the ecm requests to my readers start to give random timeouts
    But on higher debugging level timeouts disappeared again.
    Changing it even further up from uint16_t to uint64_t and the timeouts disappeared completely.

    I seem to unexperienced to find the real reason for this behaviour but for now I want to test if this fixes more issues some users reported!



  * [r10128]

    - EMM logging improved



  * [r10127]

    - EMM logging improved



  * [r10126]

    - EMM logging improved



  * [r10125]

    - Improve EMM logging



  * [r10124]

    fix no current channel txt on status if no picon exist



  * [r10123]

    WebIf:

    Fix typo


  * [r10122]

    sci readers.

    revert to flush procedure like it was before. Since there are still reports off non working sci one some stb's.

    flush back to 1 if it not works buffer flush done by reading it out.


  * [r10121]

    WebIf:

    - set height for select in script.html If script not found.


  * [r10120]

    - Emm filtering cosmetics for dvbapi



  * [r10119]

    Some rework on emm provider matching the reader providers.
    Hope I managed to minimize the cs378/camd35 4 digit provid effect!



  * [r10118]

    - More log output on emm filtersetting!



  * [r10117]

    - Even more EMM rework dvbapi module



  * [r10116]

    external reader

    I saw that the loop implemented before even never worked. It just caused an oscam block voor 30 tries each seconds one during 60 seconds.
    But actually did not a real retry to find the device. Now it will try 10 times 1 try each two seconds . Thats more then enough. If after those tries (20 sec) Device still not found reader will be disabled. And oscam can work with the avbl readers.


  * [r10115]

    external readers

    Added webif ouput reader device error in case off device failure due to wrong configs or unplugged cable


  * [r10114]

    - DVBAPI: dont rely on data a filter is returning to discover if its the emm cat, better check if emmpid is 0x01



  * [r10113]

    - Dvbapi: removed emm cat filter from emm filter list too (why was it there in first place?!) -> should prevent cached filtered responses on some type receivers!



  * [r10112]

    external readers.

    When an external reader cable was unplugged or wrongly configured, Oscam did not allowed clients login at all for other readers with waitforcards (default enabled) Now the reader of wich device can't be detected will be closed and set to disable then oscam can continu whitout that reader.

    some small fixes smartreader.


  * [r10111]

    smartreader

    Better log output if endpoint detection failed .

    Requested in ticket #4052


  * [r10110]

    - Emm just compare last 4 digits of provid, this should fix sharereader!



  * [r10109]

    - Simplify dvbapi emm reader matching
    - Re-introduced camd35/cs378 4 digits emm provid matching



  * [r10108]

    - Always start filtering on matching emmpid with correct caid and no provid



  * [r10107]

    - Emm rework since auprovid on sharereaders are changing constantly



  * [r10106]

    - Revert 10105 since sharereader do deliver 6 digit provid



  * [r10105]

    - Minor emm fixing since share readers use only 4 digits provid



  * [r10104]

    - dvbapi fix pmt6 listenfd to socket was openened but never closed on connection error -> opening new fd next run -> running eventually out of fd!



  * [r10103]

    - Another rework for emmpid selection versus au enabled readers
    - Reanalyzed emm cat parsing -> updated viaccess and nagra parsing



  * [r10102]

    bulcrypt: Fix ticket #4055 (Bulsatcom removed CAID 5581).

    Credits to kraiv and chepik from satsupreme forum.


  * [r10101]

    - Next rework of dvbapi emm handling:

    If you have a card that is multiprovider dont set auprovid.
    Just add idents, each ident should match the (emm) provid.

    Example

    Old seca2 card:

    auprovid leave empty

    idents:0100:00006a,00006c,00006d



  * [r10100]

    - Attempt to stop starting repeatingily new emmfilters if none are active on a demuxer
      This behaviour is e.g. triggered if watching more than 1 channel from same provider



  * [r10099]

    - Removed extensive emm matching in dvbapi again (nobody except me used it and it was flooding dvbapi debug logging!)
    - Tryfix dvbapi problem on multiecm-s channels (ticket 4056)



  * [r10098]

    - Viaccess is now using correct provid again on emm cat parsing (issue introduced 10097)



  * [r10097]

    Some more rework of dvbapi emm handling:

    If emm cat is fetched dont filter the emmmpids in it against active au readers, that will be done later on too.
    This way we avoid scenario that a new card cant find any valid emmpids and dont get any emm updates.



  * [r10096]

    Moved init_check()

    init_check now done before creation off pidfile. Pid file will only be created if oscam starts with a ok time or after 60 seconds if time is not ok.


  * [r10095]

    sort also with picons
    Thnx Hook


  * [r10094]

    Added documentation for new parameter 'httppiconpath'.


  * [r10093]

    [gbx] fix compiler warning




  * [r10092]

    - Some rework emmfiltering and more -d128 log output for emm filtering to analyze issues more in detail!



  * [r10091]


    [gbx] discard out of sync hellos




  * [r10090]

    - Replace 10088 with better code that doesnt break other stuff (I hope)



  * [r10089]

    Patch by ultra47

    Und /proc ist definitiv auf jedem LinuxSystem drauf smile
    Es ist ja auch eine lustige Problemhistory: großes Grinsen
    - erste Lösung => works => extreme Abweichung da auch Threads mitgezählt wurden
    - zweite Lösung => works => einige busybox Versionen kamen aber mit ps -A nicht klar
    - dritte Lösung => works => einige linux Versionen haben kein wc
    - dritte 1/2 Lösung => works => habe ich garnicht probiert, da ich dachte das grep -c kann auch irgendein linux nicht
    - vierte Lösung => works => aber einige enigma version haben können kein popen

    Webif: Remove color for td.usercol6


  * [r10088]

    - Quickfix provid not in pmt for UPC NL



  * [r10087]

    - Increase number of ca_mask as proposed by perexg (provided patch modified!)

    http://www.streamboard.tv/oscam/ticket/4053



  * [r10086]

    [gbx] Code de-duplication




  * [r10085]

    WebIf: Right settings for base64 format.


  * [r10084]

    Patch by ultra47

    Finally process count works on all linux plattforms


  * [r10083]

    WebIf: Patch by skyndas and ultra47

    This patch creates a background for sorting cells in readers, readerstats and users.


  * [r10082]

    Patch by ultra47

     - some case the process count don't work correct (some busybox have this problem).

 -- Andrey Pavlenko <email address hidden>  Tue, 03 Nov 2015 03:11:30 +0300

Builds

Package files

No files published for this package.