| | 726 | | parsehost(buf, hp) |
| | 727 | | char *buf; |
| | 728 | | struct hostd *hp; |
| | 729 | | { |
| | 730 | | char *av[10]; |
| | 731 | | int ac; |
| | 732 | | int err = 0; |
| | 733 | | |
| | 734 | | ac = sizeof(av)/sizeof(av[0]); |
| | 735 | | if (acav(buf, &ac, av)) { |
| | 736 | | pvmlogprintf("parsehost(): line too long\n"); |
| | 737 | | goto bad; |
| | 738 | | } |
| | 739 | | if (!ac) |
| | 740 | | goto bad; |
| | 741 | | |
| | 742 | | |
| | 743 | | |
| | 744 | | while (--ac > 0) { |
| | 745 | | if (!strncmp(av[ac], "lo=", 3)) { |
| | 746 | | if (hp->hd_login) |
| | 747 | | PVM_FREE(hp->hd_login);
|
| | 748 | | hp->hd_login = STRALLOC(av[ac] + 3);
|
| | 749 | | continue; |
| | 750 | | } |
| | 751 | | if (!strncmp(av[ac], "dx=", 3)) { |
| | 752 | | if (hp->hd_dpath) |
| | 753 | | PVM_FREE(hp->hd_dpath);
|
| | 754 | | hp->hd_dpath = STRALLOC(av[ac] + 3);
|
| | 755 | | continue; |
| | 756 | | } |
| | 757 | | if (!strncmp(av[ac], "ep=", 3)) { |
| | 758 | | if (hp->hd_epath) |
| | 759 | | PVM_FREE(hp->hd_epath);
|
| | 760 | | hp->hd_epath = STRALLOC(av[ac] + 3);
|
| | 761 | | continue; |
| | 762 | | } |
| | 763 | | if (!strncmp(av[ac], "sp=", 3)) { |
| | 764 | | hp->hd_speed = atoi(av[ac] + 3); |
| | 765 | | hp->hd_flag |= HF_SPEED;
|
| | 766 | | continue; |
| | 767 | | } |
| | 768 | | if (!strncmp(av[ac], "bx=", 3)) { |
| | 769 | | if (hp->hd_bpath) |
| | 770 | | PVM_FREE(hp->hd_bpath);
|
| true | 771 | | hp->hd_bpath = STRALLOC(av[ac] + 3);
|
| | 772 | | continue; |
| | 773 | | } |
| | 774 | | if (!strncmp(av[ac], "wd=", 3)) { |
| | 775 | | if (hp->hd_wdir) |
| | 776 | | PVM_FREE(hp->hd_wdir);
|
| | 777 | | hp->hd_wdir = STRALLOC(av[ac] + 3);
|
| | 778 | | continue; |
| | 779 | | } |
| | 780 | | if (!strncmp(av[ac], "so=", 3)) { |
| | 781 | | if (hp->hd_sopts) |
| | 782 | | PVM_FREE(hp->hd_sopts);
|
| | 783 | | hp->hd_sopts = STRALLOC(av[ac] + 3);
|
| | 784 | | continue; |
| | 785 | | } |
| | 786 | | if (!strncmp(av[ac], "ip=", 3)) { |
| | 787 | | if (hp->hd_aname) |
| | 788 | | PVM_FREE(hp->hd_aname);
|
| | 789 | | hp->hd_aname = STRALLOC(av[ac] + 3);
|
| | 790 | | continue; |
| | 791 | | } |
| | 792 | | if (!strncmp(av[ac], "id=", 3)) { |
| | 793 | | if (hp->hd_vmid) |
| | 794 | | PVM_FREE(hp->hd_vmid);
|
| | 795 | | hp->hd_vmid = STRALLOC(av[ac] + 3);
|
| | 796 | | continue; |
| | 797 | | } |
| | 798 | | pvmlogprintf("parsehost(): unknown option \"%s\"\n", av[ac]); |
| | 799 | | err++; |