707{
708 static char nilstr = 0;
711
712
713
714 if (mode == 'c') return &nilstr;
715
716
717
718 if (!parms || !(*parms))
719 {char buff[256];
720 if (!getLinkage(erp, accPlugin.c_str())) return 0;
721 snprintf(buff,
sizeof(buff),
"TLS:%" PRIu64
":%d:",
opts, MaxTokSize);
722 return strdup(buff);
723 }
724
725
726
727 std::vector<XrdOucString> useVec;
730 char *endP, *val;
731
732
733
734 cfg.GetLine();
735
736
737
738
739 while((val = cfg.GetToken()))
740 { if (!strcmp(val, "-maxsz"))
741 {if (!(val = cfg.GetToken()))
742 {
Fatal(erp,
"-maxsz argument missing", EINVAL);
743 return 0;
744 }
745 MaxTokSize = strtol(val, &endP, 10);
746 if (*endP == 'k' || *endP == 'K')
747 {MaxTokSize *= 1024; endP++;}
748 if (MaxTokSize <= 0 || MaxTokSize > 524288 || *endP)
749 {
Fatal(erp,
"-maxsz argument is invalid", EINVAL);
750 return 0;
751 }
752 }
753 else if (!strcmp(val, "-expiry"))
754 {if (!(val = cfg.GetToken()))
755 {
Fatal(erp,
"-expiry argument missing", EINVAL);
756 return 0;
757 }
758 if (strcmp(val, "ignore")) expiry = 0;
759 else if (strcmp(val, "optional")) expiry = -1;
760 else if (strcmp(val, "required")) expiry = 1;
761 else {
Fatal(erp,
"-expiry argument invalid", EINVAL);
762 return 0;
763 }
764 }
765
766 else if (!strcmp(val, "-tokenlib"))
767 {if (!(val = cfg.GetToken()))
768 {
Fatal(erp,
"-acclib plugin path missing", EINVAL);
769 return 0;
770 }
771 if (strcmp(val,"none"))
772 {accPlugin = val;
773 }
774 else
775 {tokenlib = false;
776 }
777 }
778
779 else {
XrdOucString eTxt(
"Invalid parameter - "); eTxt += val;
780 Fatal(erp, eTxt.c_str(), EINVAL);
781 return 0;
782 }
783 }
784
785
786
787
788
789
790 if (tokenlib && !getLinkage(erp, accPlugin.c_str())) return 0;
791
792
793
794 char buff[256];
795 snprintf(buff,
sizeof(buff),
"TLS:%" PRIu64
":%d:",
opts, MaxTokSize);
796 return strdup(buff);
797}
void Fatal(const char *op, const char *target)
static const int ztnVersion