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