- Timestamp:
- 01/11/10 20:01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/monitor-improvement/module-monitor.c
r1140 r1190 519 519 static void monitor_set_account(char *args) 520 520 { 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); 610 579 } 611 580 612 581 static void monitor_set_server(char *args) 613 582 { 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); 715 640 } 716 641
Note:
See TracChangeset
for help on using the changeset viewer.