Changeset 17250


Ignore:
Timestamp:
07/21/12 02:44:47 (12 years ago)
Author:
nit
Message:

[titan] check if record is running an endtime changed

Location:
titan/titan
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/record.h

    r16958 r17250  
    566566                                delspezchar(chname, 1);
    567567                        }
    568                         moviename = strstrip(rectimernode->name);
    569                         delspezchar(moviename, 1);
     568                        if(rectimernode != NULL && rectimernode->name != NULL)
     569                        {
     570                                moviename = strstrip(rectimernode->name);
     571                                delspezchar(moviename, 1);
     572                        }
    570573                        break;
    571574                default:
     
    640643        servicenode->channel = chnode;
    641644        servicenode->transponder = tpnode;
     645        if(rectimernode != NULL) servicenode->rectimestamp = rectimernode->timestamp;
    642646
    643647        if(filefd < 0)
  • titan/titan/rectimer.h

    r17011 r17250  
    12591259                                }
    12601260                        }
     1261
     1262                        //check if record is running and change endtime
     1263                        char* service tmpservice = getservicebyrectimestamp(node->timestamp);
     1264                        if(tmpservice != NULL)
     1265                                tmpservice->recendtime = node->end;
    12611266                               
    12621267                        if(newnode == 1 || flag == 1) node->disabled = 0;
  • titan/titan/service.h

    r17116 r17250  
    540540}
    541541
     542struct service* getservicebyrectimestamp(time_t timestamp)
     543{
     544        if(timestamp == 0) return NULL;
     545
     546        m_lock(&status.servicemutex, 2);
     547        struct service* snode = service;
     548
     549        while(snode != NULL)
     550        {
     551                if(snode->rectimestamp == timestamp)
     552                {
     553                        m_unlock(&status.servicemutex, 2);
     554                        return snode;
     555                }
     556                snode = snode->next;
     557        }
     558        m_unlock(&status.servicemutex, 2);
     559        return NULL;
     560}
     561
    542562struct service* getservicebyservice(struct service* node, int flag)
    543563{
     
    553573                }
    554574                snode = snode->next;
    555 
    556575        }
    557576        if(flag == 0) m_unlock(&status.servicemutex, 2);
     
    574593                }
    575594                snode = snode->next;
    576 
    577595        }
    578596        if(flag == 0) m_unlock(&status.servicemutex, 2);
  • titan/titan/struct.h

    r17221 r17250  
    985985        int recsrcfd;
    986986        time_t recendtime;
     987        time_t rectimestamp;
    987988        size_t reclastsync;
    988989        off64_t rectotal;
Note: See TracChangeset for help on using the changeset viewer.