Changeset 93


Ignore:
Timestamp:
05/30/09 17:35:01 (11 years ago)
Author:
smurzch2
Message:

Change timeouts from seconds to milliseconds.

Thanks for this patch to okmikel.
Timeouts are now ajustable in ms instead of seconds in the oscam.conf.
Values <= 100 are still interpreted as seconds because of compatibility reasons
to old config files

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/globals.h

    r89 r93  
    6464#define CS_ECMSTORESIZE     16  // use MD5()
    6565#define CS_EMMSTORESIZE     270
    66 #define CS_CLIENT_TIMEOUT   5
     66#define CS_CLIENT_TIMEOUT   5000
    6767#define CS_CLIENT_MAXIDLE   120
    6868#define CS_BIND_TIMEOUT     120
     
    464464  int       nice;
    465465  ulong     netprio;
    466   int       ctimeout;
    467   int       ftimeout;
     466  ulong     ctimeout;
     467  ulong     ftimeout;
    468468  int       cmaxidle;
    469469  int       ulparent;
  • trunk/module-monitor.c

    r71 r93  
    389389  monitor_send_details(buf, pid);
    390390
    391   sprintf(buf, "client timeout=%d sec, cache delay=%ld msec", cfg->ctimeout, cfg->delay);
     391  sprintf(buf, "client timeout=%lu ms, cache delay=%ld ms", cfg->ctimeout, cfg->delay);
    392392  monitor_send_details(buf, pid);
    393393
  • trunk/oscam-config.c

    r89 r93  
    286286  if (!strcmp(token, "pidfile")) strncpy(cfg->pidfile, value, sizeof(cfg->pidfile)-1);
    287287  if (!strcmp(token, "usrfile")) strncpy(cfg->usrfile, value, sizeof(cfg->usrfile)-1);
    288   if (!strcmp(token, "clienttimeout")) cfg->ctimeout=atoi(value);
    289   if (!strcmp(token, "fallbacktimeout")) cfg->ftimeout=atoi(value);
     288  if (!strcmp(token, "clienttimeout"))
     289  {
     290      cfg->ctimeout = atoi(value);
     291      if (cfg->ctimeout < 100)
     292          cfg->ctimeout *= 1000;
     293  }
     294  if (!strcmp(token, "fallbacktimeout"))
     295  {
     296      cfg->ftimeout = atoi(value);
     297      if (cfg->ftimeout < 100)
     298          cfg->ftimeout *= 1000;
     299  }
     300
    290301  if (!strcmp(token, "clientmaxidle")) cfg->cmaxidle=atoi(value);
    291302  if (!strcmp(token, "cachedelay")) cfg->delay=atoi(value);
     
    303314  if (!strcmp(token, "serialreadertimeout"))
    304315  {
    305     cfg->srtimeout=atoi(value)*1000;
     316    if (cfg->srtimeout < 100)
     317      cfg->srtimeout = atoi(value) * 1000;
     318    else
     319      cfg->srtimeout = atoi(value);
    306320    if( cfg->srtimeout <=0 )
    307321      cfg->srtimeout=1500;
     
    562576  cfg->nice=99;
    563577  cfg->ctimeout=CS_CLIENT_TIMEOUT;
    564   cfg->ftimeout=2;
     578  cfg->ftimeout=CS_CLIENT_TIMEOUT / 2;
    565579  cfg->cmaxidle=CS_CLIENT_MAXIDLE;
    566580  cfg->delay=CS_DELAY;
     
    606620  if (cfg->ftimeout>=cfg->ctimeout)
    607621  {
    608     cfg->ftimeout=cfg->ctimeout+1;
    609     cs_log("WARNING: fallbacktimeout adjusted to %d", cfg->ftimeout);
    610   }
    611   if( cfg->ftimeout<(cfg->srtimeout/1000) )
    612   {
    613     cfg->ftimeout=(cfg->srtimeout/1000)+1;
    614     cs_log("WARNING: fallbacktimeout adjusted to %d", cfg->ftimeout);
    615   }
    616   if( cfg->ctimeout<(cfg->srtimeout/1000) )
    617   {
    618     cfg->ctimeout=(cfg->srtimeout/1000)+1;
    619     cs_log("WARNING: clienttimeout adjusted to %d", cfg->ctimeout);
     622    cfg->ftimeout = cfg->ctimeout - 100;
     623    cs_log("WARNING: fallbacktimeout adjusted to %lu ms (must be smaller than clienttimeout (%lu ms))", cfg->ftimeout, cfg->ctimeout);
     624  }
     625  if(cfg->ftimeout < cfg->srtimeout)
     626  {
     627    cfg->ftimeout = cfg->srtimeout + 100;
     628    cs_log("WARNING: fallbacktimeout adjusted to %lu ms (must be greater than serialreadertimeout (%lu ms))", cfg->ftimeout, cfg->srtimeout);
     629  }
     630  if(cfg->ctimeout < cfg->srtimeout)
     631  {
     632    cfg->ctimeout = cfg->srtimeout + 100;
     633    cs_log("WARNING: clienttimeout adjusted to %lu ms (must be greater than serialreadertimeout (%lu ms))", cfg->ctimeout, cfg->srtimeout);
    620634  }
    621635#ifdef CS_ANTICASC
  • trunk/oscam-reader.c

    r70 r93  
    201201  for (n=0, i=sflag=1; i<CS_MAXPENDING; i++)
    202202  {
    203     if ((t-ecmtask[i].tps.time>cfg->ctimeout+1) &&
     203    if ((t-ecmtask[i].tps.time > ((cfg->ctimeout + 500) / 1000) + 1) &&
    204204        (ecmtask[i].rc>=10))            // drop timeouts
    205205        {
     
    377377    for(x=0;x<CS_MAXPENDING;x++){
    378378        ms=1000*(tpe.time-ecmtask[x].tps.time)+tpe.millitm-ecmtask[x].tps.millitm;
    379         if(ecmtask[x].rc==10&& ms>(cfg->ctimeout*1000)&&ridx==ecmtask[x].gbxRidx){
     379        if(ecmtask[x].rc == 10 && ms > cfg->ctimeout && ridx == ecmtask[x].gbxRidx){
    380380            //cs_log("hello rc=%d idx:%d x:%d ridx%d ridx:%d",ecmtask[x].rc,ecmtask[x].idx,x,ridx,ecmtask[x].gbxRidx);
    381381            ecmtask[x].rc=5;
  • trunk/oscam.c

    r90 r93  
    18021802      er=&ecmtask[i];
    18031803      tpc=er->tps;
    1804       tpc.time+=(er->stage) ? cfg->ctimeout : cfg->ftimeout;
     1804      tpc.millitm += (er->stage) ? cfg->ctimeout : cfg->ftimeout;
     1805      tpc.time += tpc.millitm / 1000;
     1806      tpc.millitm = tpc.millitm % 1000;
    18051807      if (!er->stage)
    18061808      {
     
    18151817          er->stage++;
    18161818          request_cw(er, er->stage);
    1817           tpc.time+=cfg->ctimeout-cfg->ftimeout;
     1819          tpc.millitm += (cfg->ctimeout-cfg->ftimeout);
     1820          tpc.time += tpc.millitm / 1000;
     1821          tpc.millitm = tpc.millitm % 1000;
    18181822        }
    18191823      }
     
    18321836          er->stage++;
    18331837          request_cw(er, er->stage);
    1834           tpc.time+=cfg->ctimeout-cfg->ftimeout;
     1838          tpc.millitm += (cfg->ctimeout-cfg->ftimeout);
     1839          tpc.time += tpc.millitm / 1000;
     1840          tpc.millitm = tpc.millitm % 1000;
    18351841        }
    18361842      }
     
    18551861  tp.time+=timeout;
    18561862  if (ph[client[cs_idx].ctyp].watchdog)
    1857     alarm(cfg->cmaxidle+2);
     1863      alarm(cfg->cmaxidle + (cfg->ctimeout + 500) / 1000 + 1);
    18581864  while (1)
    18591865  {
     
    18851891  }
    18861892  if (ph[client[cs_idx].ctyp].watchdog)
    1887     alarm(cfg->cmaxidle+2);
     1893      alarm(cfg->cmaxidle + (cfg->ctimeout + 500) / 1000 + 1);
    18881894  return(rc);
    18891895}
     
    19251931    strcpy((char *)buf, "unlimited");
    19261932  cs_log("max. logsize=%s", buf);
    1927   cs_log("client timeout=%d sec, cache delay=%d msec",
    1928          cfg->ctimeout, cfg->delay);
     1933  cs_log("client timeout=%lu ms, fallback timeout=%lu ms, cache delay=%d ms",
     1934         cfg->ctimeout, cfg->ftimeout, cfg->delay);
    19291935#ifdef CS_NOSHM
    19301936  cs_log("shared memory initialized (size=%d, fd=%d)", shmsize, shmid);
     
    21292135                    client[cs_idx].udp_sa=cad;
    21302136                    if (ph[client[cs_idx].ctyp].watchdog)
    2131                       alarm(cfg->cmaxidle<<2);
     2137                        alarm(cfg->cmaxidle + cfg->ctimeout / 1000 + 1);
    21322138                    ph[i].s_handler(cad);       // never return
    21332139                  }
     
    21602166                  client[cs_idx].port_idx=j;
    21612167                  if (ph[client[cs_idx].ctyp].watchdog)
    2162                     alarm(cfg->cmaxidle<<2);
     2168                      alarm(cfg->cmaxidle + cfg->ctimeout / 1000 + 1);
    21632169                  ph[i].s_handler();
    21642170                }
Note: See TracChangeset for help on using the changeset viewer.