Ignore:
Timestamp:
01/11/10 20:01:00 (12 years ago)
Author:
alno
Message:

WebIf:

  • some code cleanup in setserver/setuser (only effect on monitor port)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/monitor-improvement/module-monitor.c

    r1140 r1190  
    519519static void monitor_set_account(char *args)
    520520{
    521    struct s_auth *account;
    522    char delimiter[] = " =";
    523    char *ptr, *ptr1;
    524    int argidx, i, found;
    525    char *argarray[3];
    526    char *token[]={"au", "sleep", "uniq", "monlevel", "group", "services", "betatunnel", "ident", "caid", "chid", "class", "hostname"};
    527    char buf[256];
    528 
    529    argidx=0;
    530    found=0;
    531 
    532    ptr = strtok(args, delimiter);
    533 
    534    // resolve arguments
    535    while(ptr != NULL) {
    536       argarray[argidx]=trim(ptr);
    537       ptr = strtok(NULL, delimiter);
    538       argidx++;
    539    }
    540 
    541    if(argidx != 3) {
    542       sprintf(buf, "[S-0000]setuser failed - wrong number of parameters (%d)\n", argidx);
    543       monitor_send_info(buf, 1);
    544       //cs_log("setuser failed - wrong number of parameters (%d)", argidx);
    545       return;
    546    }
    547 
    548    //search account
    549    for (account=cfg->account; (account) ; account=account->next){
    550       if (!strcmp(argarray[0], account->usr)){
    551          found=1;
    552          break;
    553       }
    554    }
    555 
    556    if (found != 1){
    557       sprintf(buf, "[S-0000]setuser failed - user %s not found\n", argarray[0]);
    558       monitor_send_info(buf, 1);
    559       //cs_log("setuser failed - user %s not found", argarray[0]);
    560       return;
    561    }
    562 
    563    for (i=0; i<12; i++){
    564       if (!strcmp(argarray[1], token[i])){
    565          switch(i){
    566             case  0: strtolower(argarray[2]);
    567                      for (i=0; i<CS_MAXREADER; i++)
    568                         if ((reader[i].label[0]) && (!strncmp(reader[i].label, argarray[2], strlen(reader[i].label))))
    569                            account->au=i;
    570                         break;                              //au
    571             case  1: account->tosleep=atoi(argarray[2]);
    572                         break;                              //sleep
    573             case  2: account->uniq=atoi(argarray[2]);
    574                         break;                              //unique
    575             case  3: account->monlvl=atoi(argarray[2]);
    576                         break;                              //monlevel
    577             case  4: for (ptr1=strtok(argarray[2], ","); ptr1; ptr1=strtok(NULL, ",")) {
    578                         int g;
    579                         g=atoi(ptr1);
    580                         if ((g>0) && (g<33)) account->grp|=(1<<(g-1));
    581                      }
    582                         break;                              //group
    583             case  5: chk_services(argarray[2], &account->sidtabok, &account->sidtabno);
    584                         break;                              //services
    585             case  6: chk_tuntab(argarray[2], &account->ttab);
    586                         break;                              //betatunnel
    587             case  7: chk_ftab(argarray[2], &account->ftab, "user", account->usr, "provid");
    588                         break;                              //ident
    589             case  8: chk_caidtab(argarray[2], &account->ctab);
    590                         break;                              //caid
    591             case  9: chk_ftab(argarray[2], &account->fchid, "user", account->usr, "chid");
    592                         break;                              //chid
    593             case  10:chk_cltab(argarray[2], &account->cltab);
    594                         break;                              //class
    595             case  11:strncpy((char *)account->dyndns, argarray[2], sizeof(account->dyndns)-1);
    596                         break;
    597                                                       //hostname
    598             default: sprintf(buf, "[S-0000]setuser failed - parameter %s not exist", argarray[1]);
    599                      monitor_send_info(buf, 1);
    600                      //cs_log("setuser failed - parameter %s not exist", argarray[1]);
    601          }
    602       }
    603    }
    604 
    605    cs_reinit_clients();
    606 
    607    sprintf(buf, "[S-0000]setuser %s done - param %s set to %s\n", argarray[0], argarray[1], argarray[2]);
    608    monitor_send_info(buf, 1);
    609    //cs_log("setuser %s done - param %s set to %s", argarray[0], argarray[1], argarray[2]);
     521    struct s_auth *account;
     522    char delimiter[] = " =";
     523    char *ptr;
     524    int argidx, i, found;
     525    char *argarray[3];
     526    char *token[]={"au", "sleep", "uniq", "monlevel", "group", "services", "betatunnel", "ident", "caid", "chid", "class", "hostname"};
     527    char buf[256];
     528
     529    argidx=0;
     530    found=0;
     531
     532    ptr = strtok(args, delimiter);
     533
     534    // resolve arguments
     535    while(ptr != NULL) {
     536        argarray[argidx]=trim(ptr);
     537        ptr = strtok(NULL, delimiter);
     538        argidx++;
     539    }
     540
     541    if(argidx != 3) {
     542        sprintf(buf, "[S-0000]setuser failed - wrong number of parameters (%d)\n", argidx);
     543        monitor_send_info(buf, 1);
     544        return;
     545    }
     546
     547    //search account
     548    for (account=cfg->account; (account) ; account=account->next){
     549        if (!strcmp(argarray[0], account->usr)){
     550            found=1;
     551            break;
     552        }
     553    }
     554
     555    if (found != 1){
     556        sprintf(buf, "[S-0000]setuser failed - user %s not found\n", argarray[0]);
     557        monitor_send_info(buf, 1);
     558        return;
     559    }
     560
     561    found=0;
     562    for (i=0; i<12; i++){
     563        if (!strcmp(argarray[1], token[i])){
     564            chk_account(token[i],argarray[2],account);
     565            found = 1;
     566        }
     567    }
     568
     569    if (found != 1){
     570        sprintf(buf, "[S-0000]setuser failed - parameter %s not exist", argarray[1]);
     571        monitor_send_info(buf, 1);
     572        return;
     573    }
     574
     575    cs_reinit_clients();
     576
     577    sprintf(buf, "[S-0000]setuser %s done - param %s set to %s\n", argarray[0], argarray[1], argarray[2]);
     578    monitor_send_info(buf, 1);
    610579}
    611580
    612581static void monitor_set_server(char *args)
    613582{
    614    char delimiter[] = "=";
    615    char *ptr;
    616    int argidx, i, found;
    617    char *argarray[3];
    618    char *token[]={"clienttimeout", "fallbacktimeout", "clientmaxidle", "cachedelay", "bindwait", "netprio", "resolvedelay", "sleep", "unlockparental", "serialreadertimeout", "maxlogsize", "showecmdw", "waitforcards", "preferlocalcards"};
    619    char buf[256];
    620 
    621    argidx=0;
    622    found=0;
    623 
    624    ptr = strtok(args, delimiter);
    625 
    626    // resolve arguments
    627    while(ptr != NULL) {
    628       argarray[argidx]=trim(ptr);
    629       ptr = strtok(NULL, delimiter);
    630       argidx++;
    631    }
    632 
    633    if(argidx != 2) {
    634       sprintf(buf, "[S-0000]setserver failed - wrong number of parameters (%d)\n", argidx);
    635       monitor_send_info(buf, 1);
    636       return;
    637    }
    638 
    639    trim(argarray[0]);
    640    trim(argarray[1]);
    641    strtolower(argarray[0]);
    642 
    643    for (i=0; i<14; i++){
    644       if (!strcmp(argarray[0], token[i])){
    645          switch(i){
    646             case  0: cfg->ctimeout = atoi(argarray[1]);  //clienttimeout
    647                      if (cfg->ctimeout < 100)
    648                         cfg->ctimeout *= 1000;
    649                         break;
    650             case  1: cfg->ftimeout = atoi(argarray[1]);  //fallbacktimeout
    651                      if (cfg->ftimeout < 100)
    652                         cfg->ftimeout *= 1000;
    653                         break;
    654             case  2: cfg->cmaxidle=atoi(argarray[1]);    //clientmaxidle
    655                         break;
    656             case  3: cfg->delay=atoi(argarray[1]);       //cachedelay
    657                         break;
    658             case  4: cfg->bindwait=atoi(argarray[1]);    //bindwait
    659                         break;
    660             case  5: cfg->netprio=atoi(argarray[1]);     //netprio
    661                         break;
    662             case  6: cfg->resolvedelay=atoi(argarray[1]);//resolvedelay
    663                         break;
    664             case  7: cfg->tosleep=atoi(argarray[1]);     //sleep
    665                         break;
    666             case  8: cfg->ulparent=atoi(argarray[1]);    //unlockparental
    667                         break;
    668             case  9: if (cfg->srtimeout < 100)
    669                         cfg->srtimeout = atoi(argarray[1]) * 1000;   //serialreadertimeout
    670                      else
    671                         cfg->srtimeout = atoi(argarray[1]);
    672                      if( cfg->srtimeout <=0 )
    673                         cfg->srtimeout=1500;
    674                         break;
    675             case  10:cfg->max_log_size=atoi(argarray[1]); //maxlogsize
    676                         if( cfg->max_log_size <=10 )
    677                            cfg->max_log_size=10;
    678                         break;
    679             case  11:cfg->show_ecm_dw = atoi(argarray[1]);     //showecmdw
    680                         break;
    681             case  12:cfg->waitforcards = atoi(argarray[1]);    //waitforcards
    682                         break;
    683             case  13:cfg->preferlocalcards = atoi(argarray[1]);    //preferlocalcards
    684                         break;
    685 
    686             default: sprintf(buf, "[S-0000]setserver failed - parameter %s not exist", argarray[0]);
    687                      monitor_send_info(buf, 1);
    688                      return;
    689          }
    690       }
    691    }
    692 
    693    sprintf(buf, "[S-0000]setserver done - param %s set to %s\n", argarray[0], argarray[1]);
    694    monitor_send_info(buf, 1);
    695 
    696    if (cfg->ftimeout>=cfg->ctimeout) {
    697       cfg->ftimeout = cfg->ctimeout - 100;
    698       sprintf(buf, "[S-0000]setserver WARNING: fallbacktimeout adjusted to %lu ms", cfg->ftimeout);
    699       monitor_send_info(buf, 1);
    700    }
    701    if(cfg->ftimeout < cfg->srtimeout) {
    702       cfg->ftimeout = cfg->srtimeout + 100;
    703       sprintf(buf, "[S-0000]setserver WARNING: fallbacktimeout adjusted to %lu ms", cfg->ftimeout);
    704       monitor_send_info(buf, 1);
    705    }
    706    if(cfg->ctimeout < cfg->srtimeout) {
    707       cfg->ctimeout = cfg->srtimeout + 100;
    708       sprintf(buf, "[S-0000]setserver WARNING: clienttimeout adjusted to %lu ms", cfg->ctimeout);
    709       monitor_send_info(buf, 1);
    710    }
    711 
    712 
    713    //kill(client[0].pid, SIGUSR1);
    714 
     583    char delimiter[] = "=";
     584    char *ptr;
     585    int argidx, i, found;
     586    char *argarray[3];
     587    char *token[]={"clienttimeout", "fallbacktimeout", "clientmaxidle", "cachedelay", "bindwait", "netprio", "resolvedelay", "sleep", "unlockparental", "serialreadertimeout", "maxlogsize", "showecmdw", "waitforcards", "preferlocalcards"};
     588    char buf[256];
     589
     590    argidx=0;   found=0;
     591    ptr = strtok(args, delimiter);
     592
     593    // resolve arguments
     594    while(ptr != NULL) {
     595        argarray[argidx]=trim(ptr);
     596        ptr = strtok(NULL, delimiter);
     597        argidx++;
     598    }
     599
     600    if(argidx != 2) {
     601        sprintf(buf, "[S-0000]setserver failed - wrong number of parameters (%d)\n", argidx);
     602        monitor_send_info(buf, 1);
     603        return;
     604    }
     605
     606    trim(argarray[0]);
     607    trim(argarray[1]);
     608    strtolower(argarray[0]);
     609
     610    found = 0;
     611    for (i = 0; i < 14; i++)
     612        if (!strcmp(argarray[0], token[i])) found = 1;
     613
     614    if (found != 1){
     615        chk_t_global(token[i],argarray[1]);
     616        sprintf(buf, "[S-0000]setserver done - param %s set to %s\n", argarray[0], argarray[1]);
     617        monitor_send_info(buf, 1);
     618    } else {
     619        sprintf(buf, "[S-0000]setserver failed - parameter %s not exist", argarray[0]);
     620        monitor_send_info(buf, 1);
     621        return;
     622    }
     623
     624    if (cfg->ftimeout>=cfg->ctimeout) {
     625        cfg->ftimeout = cfg->ctimeout - 100;
     626        sprintf(buf, "[S-0000]setserver WARNING: fallbacktimeout adjusted to %lu ms", cfg->ftimeout);
     627        monitor_send_info(buf, 1);
     628    }
     629    if(cfg->ftimeout < cfg->srtimeout) {
     630        cfg->ftimeout = cfg->srtimeout + 100;
     631        sprintf(buf, "[S-0000]setserver WARNING: fallbacktimeout adjusted to %lu ms", cfg->ftimeout);
     632        monitor_send_info(buf, 1);
     633    }
     634    if(cfg->ctimeout < cfg->srtimeout) {
     635        cfg->ctimeout = cfg->srtimeout + 100;
     636        sprintf(buf, "[S-0000]setserver WARNING: clienttimeout adjusted to %lu ms", cfg->ctimeout);
     637        monitor_send_info(buf, 1);
     638    }
     639    //kill(client[0].pid, SIGUSR1);
    715640}
    716641
Note: See TracChangeset for help on using the changeset viewer.