Ignore:
Timestamp:
01/14/10 21:25:28 (12 years ago)
Author:
alno
Message:

WebIF:

  • !!!!! implementation of a new oscam.srvid Format !!!!
  • the Format and good sorted list you find here: http://streamboard.gmc.to/wiki/index.php/Srvid#microMon.srvid
  • the old oscam.srvid format is not parsable from this version onwards
  • The identification of a channel works now over srvid + caid. So doubles should be a historical nightmare
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/monitor-improvement/oscam-config.c

    r1210 r1232  
    14001400  int nr;
    14011401  FILE *fp;
    1402   char *value;
     1402  char *payload;
    14031403  static struct s_srvid *srvid=(struct s_srvid *)0;
    1404 
    14051404  sprintf(token, "%s%s", cs_confdir, cs_srid);
    1406   if (!(fp=fopen(token, "r")))
    1407   {
    1408     cs_log("can't open file \"%s\" (err=%d), no service-id's loaded",
    1409            token, errno);
     1405
     1406  if (!(fp=fopen(token, "r"))) {
     1407    cs_log("can't open file \"%s\" (err=%d), no service-id's loaded", token, errno);
    14101408    return(0);
    14111409  }
     1410
    14121411  nr=0;
    1413   while (fgets(token, sizeof(token), fp))
    1414   {
    1415     int l;
    1416     void *ptr;
    1417     if ((l=strlen(trim(token)))<6) continue;
    1418     if (!(value=strchr(token, ':'))) continue;
    1419     *value++='\0';
    1420     if (strlen(token)!=4) continue;
    1421     if (!(ptr=malloc(sizeof(struct s_srvid))))
    1422     {
     1412  while (fgets(token, sizeof(token), fp)) {
     1413
     1414        int l;
     1415        void *ptr;
     1416        if ((l=strlen(trim(token))) < 6) continue;
     1417        if (!(payload=strchr(token, '|'))) continue;
     1418        *payload++ = '\0';
     1419        //if (strlen(token)!=4) continue;
     1420
     1421        if (!(ptr = malloc(sizeof(struct s_srvid)))) {
    14231422      cs_log("Error allocating memory (errno=%d)", errno);
    14241423      return(1);
    14251424    }
     1425
    14261426    if (srvid)
    1427       srvid->next=ptr;
     1427      srvid->next = ptr;
    14281428    else
    1429       cfg->srvid=ptr;
    1430     srvid=ptr;
     1429      cfg->srvid = ptr;
     1430
     1431    srvid = ptr;
    14311432    memset(srvid, 0, sizeof(struct s_srvid));
    1432     srvid->srvid=word_atob(token);
    1433     strncpy(srvid->name, value, sizeof(srvid->name)-1);
    1434     nr++;
    1435   }
     1433
     1434    int i;
     1435    char *ptr1;
     1436    for (i = 0, ptr1 = strtok(payload, "|"); ptr1; ptr1 = strtok(NULL, "|"), i++){
     1437            switch(i){
     1438                case 0:
     1439                    strncpy(srvid->prov, trim(ptr1), sizeof(srvid->prov)-1);
     1440                    break;
     1441                case 1:
     1442                    strncpy(srvid->name, trim(ptr1), sizeof(srvid->name)-1);
     1443                    break;
     1444                case 2:
     1445                    strncpy(srvid->type, trim(ptr1), sizeof(srvid->type)-1);
     1446                    break;
     1447                case 3:
     1448                    strncpy(srvid->desc, trim(ptr1), sizeof(srvid->desc)-1);
     1449                    break;
     1450            }
     1451        }
     1452
     1453    char *srvidasc = strchr(token, ':');
     1454    *srvidasc++ = '\0';
     1455    srvid->srvid = word_atob(srvidasc);
     1456
     1457    srvid->ncaid = 0;
     1458        for (i = 0, ptr1 = strtok(token, ","); (ptr1) && (i < 10) ; ptr1 = strtok(NULL, ","), i++){
     1459            srvid->caid[i] = word_atob(ptr1);
     1460            srvid->ncaid = i+1;
     1461        }
     1462        nr++;
     1463    }
     1464
    14361465  fclose(fp);
    1437   cs_log("%d service-id's loaded", nr);
     1466  if (nr>0)
     1467        cs_log("%d service-id's loaded", nr);
     1468    else{
     1469        cs_log("oscam.srvid loading FAILED -> old format");
     1470        cs_log("New: caid[,caid]:srvid|providername|channelname|type|comment");
     1471        cs_log("See: http://streamboard.gmc.to/wiki/index.php/Srvid#microMon.srvid");
     1472    }
    14381473  return(0);
    14391474}
Note: See TracChangeset for help on using the changeset viewer.