Changeset 830
- Timestamp:
- 12/14/09 23:44:29 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/monitor-improvement/module-monitor.c
r829 r830 608 608 } 609 609 610 static void monitor_set_server(char *args) 611 { 612 char delimiter[] = "="; 613 char *ptr; 614 int argidx, i, found; 615 char *argarray[3]; 616 char *token[]={"clienttimeout", "fallbacktimeout", "clientmaxidle", "cachedelay", "bindwait", "netprio", "resolvedelay", "sleep", "unlockparental", "serialreadertimeout", "maxlogsize", "showecmdw", "waitforcards", "preferlocalcards"}; 617 char buf[256]; 618 619 argidx=0; 620 found=0; 621 622 ptr = strtok(args, delimiter); 623 624 // resolve arguments 625 while(ptr != NULL) { 626 argarray[argidx]=trim(ptr); 627 ptr = strtok(NULL, delimiter); 628 argidx++; 629 } 630 631 if(argidx != 2) { 632 sprintf(buf, "[S-0000]setserver failed - wrong number of parameters (%d)\n", argidx); 633 monitor_send_info(buf, 1); 634 return; 635 } 636 637 trim(argarray[0]); 638 trim(argarray[1]); 639 strtolower(argarray[0]); 640 641 for (i=0; i<14; i++){ 642 if (!strcmp(argarray[0], token[i])){ 643 switch(i){ 644 case 0: cfg->ctimeout = atoi(argarray[1]); //clienttimeout 645 if (cfg->ctimeout < 100) 646 cfg->ctimeout *= 1000; 647 break; 648 case 1: cfg->ftimeout = atoi(argarray[1]); //fallbacktimeout 649 if (cfg->ftimeout < 100) 650 cfg->ftimeout *= 1000; 651 break; 652 case 2: cfg->cmaxidle=atoi(argarray[1]); //clientmaxidle 653 break; 654 case 3: cfg->delay=atoi(argarray[1]); //cachedelay 655 break; 656 case 4: cfg->bindwait=atoi(argarray[1]); //bindwait 657 break; 658 case 5: cfg->netprio=atoi(argarray[1]); //netprio 659 break; 660 case 6: cfg->resolvedelay=atoi(argarray[1]);//resolvedelay 661 break; 662 case 7: cfg->tosleep=atoi(argarray[1]); //sleep 663 break; 664 case 8: cfg->ulparent=atoi(argarray[1]); //unlockparental 665 break; 666 case 9: if (cfg->srtimeout < 100) 667 cfg->srtimeout = atoi(argarray[1]) * 1000; //serialreadertimeout 668 else 669 cfg->srtimeout = atoi(argarray[1]); 670 if( cfg->srtimeout <=0 ) 671 cfg->srtimeout=1500; 672 break; 673 case 10:cfg->max_log_size=atoi(argarray[1]); //maxlogsize 674 if( cfg->max_log_size <=10 ) 675 cfg->max_log_size=10; 676 break; 677 case 11:cfg->show_ecm_dw = atoi(argarray[1]); //showecmdw 678 break; 679 case 12:cfg->waitforcards = atoi(argarray[1]); //waitforcards 680 break; 681 case 13:cfg->preferlocalcards = atoi(argarray[1]); //preferlocalcards 682 break; 683 684 default: sprintf(buf, "[S-0000]setserver failed - parameter %s not exist", argarray[0]); 685 monitor_send_info(buf, 1); 686 return; 687 } 688 } 689 } 690 691 sprintf(buf, "[S-0000]setserver done - param %s set to %s\n", argarray[0], argarray[1]); 692 monitor_send_info(buf, 1); 693 694 if (cfg->ftimeout>=cfg->ctimeout) { 695 cfg->ftimeout = cfg->ctimeout - 100; 696 sprintf(buf, "[S-0000]setserver WARNING: fallbacktimeout adjusted to %lu ms", cfg->ftimeout); 697 monitor_send_info(buf, 1); 698 } 699 if(cfg->ftimeout < cfg->srtimeout) { 700 cfg->ftimeout = cfg->srtimeout + 100; 701 sprintf(buf, "[S-0000]setserver WARNING: fallbacktimeout adjusted to %lu ms", cfg->ftimeout); 702 monitor_send_info(buf, 1); 703 } 704 if(cfg->ctimeout < cfg->srtimeout) { 705 cfg->ctimeout = cfg->srtimeout + 100; 706 sprintf(buf, "[S-0000]setserver WARNING: clienttimeout adjusted to %lu ms", cfg->ctimeout); 707 monitor_send_info(buf, 1); 708 } 709 710 //kill(client[0].pid, SIGUSR1); 711 712 } 713 610 714 static int monitor_process_request(char *req) 611 715 { 612 716 int i, rc; 613 char *cmd[]={"login", "exit", "log", "status", "shutdown", "reload", "details", "version", "debug", "setuser" };717 char *cmd[]={"login", "exit", "log", "status", "shutdown", "reload", "details", "version", "debug", "setuser", "setserver"}; 614 718 char *arg; 615 719 if( (arg=strchr(req, ' ')) ) … … 621 725 if ((!auth) && (strcmp(req, cmd[0]))) 622 726 monitor_login(NULL); 623 for (rc=1, i=0; i<1 0; i++)727 for (rc=1, i=0; i<11; i++) 624 728 if (!strcmp(req, cmd[i])) 625 729 { … … 627 731 { 628 732 case 0: monitor_login(arg); 629 733 break; // login 630 734 case 1: rc=0; 631 735 break; // exit 632 736 case 2: monitor_logsend(arg); 633 737 break; // log 634 738 case 3: monitor_process_info(); 635 739 break; // status 636 740 case 4: if (client[cs_idx].monlvl>3) 637 638 741 kill(client[0].pid, SIGQUIT); // shutdown 742 break; 639 743 case 5: if (client[cs_idx].monlvl>2) 640 641 744 kill(client[0].pid, SIGHUP); // reload 745 break; 642 746 case 6: monitor_process_details(arg); 643 747 break; // details 644 748 case 7: monitor_send_details_version(); 645 749 break; // version 646 750 case 8: if (client[cs_idx].monlvl>3) 647 648 break;751 monitor_set_debuglevel(arg); // debuglevel 752 break; 649 753 case 9: if (client[cs_idx].monlvl>3) 650 monitor_set_account(arg); // setuser 651 break; 754 monitor_set_account(arg); // setuser 755 break; 756 case 10: if (client[cs_idx].monlvl>3) 757 monitor_set_server(arg); // setserver 758 break; 652 759 653 760 default: continue;
Note:
See TracChangeset
for help on using the changeset viewer.