p4ruby 2017.1.1699426 → 2021.1.2156749
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/LICENSE.txt +451 -20
- data/README.md +3 -879
- data/ext/P4/clientprogressruby.cpp +0 -1
- data/ext/P4/clientuserruby.cpp +155 -0
- data/ext/P4/clientuserruby.h +44 -0
- data/ext/P4/extconf.rb +69 -13
- data/ext/P4/p4.cpp +84 -9
- data/ext/P4/p4clientapi.cpp +64 -6
- data/ext/P4/p4clientapi.h +11 -2
- data/ext/P4/p4result.cpp +1 -0
- data/ext/P4/p4specdata.cpp +29 -0
- data/ext/P4/p4specdata.h +2 -0
- data/ext/P4/specmgr.cpp +63 -89
- data/lib/P4.rb +1 -1
- data/lib/P4/version.rb +3 -3
- metadata +11 -11
data/ext/P4/p4clientapi.cpp
CHANGED
@@ -37,6 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
37
37
|
#include <ruby.h>
|
38
38
|
#include "undefdups.h"
|
39
39
|
#include <p4/clientapi.h>
|
40
|
+
#include <p4/strtable.h>
|
40
41
|
#include <p4/i18napi.h>
|
41
42
|
#include <p4/enviro.h>
|
42
43
|
#include <p4/hostenv.h>
|
@@ -142,6 +143,21 @@ P4ClientApi::GetEnviroFile()
|
|
142
143
|
return enviro->GetEnviroFile();
|
143
144
|
}
|
144
145
|
|
146
|
+
void
|
147
|
+
P4ClientApi::SetEVar( const char *var, const char *val )
|
148
|
+
{
|
149
|
+
StrRef sVar( var );
|
150
|
+
StrRef sVal( val );
|
151
|
+
client.SetEVar( sVar, sVal );
|
152
|
+
}
|
153
|
+
|
154
|
+
const StrPtr *
|
155
|
+
P4ClientApi::GetEVar( const char *var )
|
156
|
+
{
|
157
|
+
StrRef sVar( var );
|
158
|
+
return client.GetEVar( sVar );
|
159
|
+
}
|
160
|
+
|
145
161
|
void
|
146
162
|
P4ClientApi::SetApiLevel( int level )
|
147
163
|
{
|
@@ -323,6 +339,9 @@ P4ClientApi::Disconnect()
|
|
323
339
|
// Clear the specdef cache.
|
324
340
|
specMgr.Reset();
|
325
341
|
|
342
|
+
// Clear out any results from the last command
|
343
|
+
ui.Reset();
|
344
|
+
|
326
345
|
return Qtrue;
|
327
346
|
}
|
328
347
|
|
@@ -426,12 +445,6 @@ P4ClientApi::IsIgnored( const char *path )
|
|
426
445
|
return ignore->Reject( p, client.GetIgnoreFile() );
|
427
446
|
}
|
428
447
|
|
429
|
-
VALUE
|
430
|
-
P4ClientApi::Reset()
|
431
|
-
{
|
432
|
-
ui.Reset();
|
433
|
-
}
|
434
|
-
|
435
448
|
//
|
436
449
|
// Run returns the results of the command. If the client has not been
|
437
450
|
// connected, then an exception is raised but errors from Perforce
|
@@ -764,3 +777,48 @@ P4ClientApi::Except( const char *func, Error *e )
|
|
764
777
|
Except( func, m.Text() );
|
765
778
|
}
|
766
779
|
|
780
|
+
//
|
781
|
+
// SSO Handlers
|
782
|
+
//
|
783
|
+
|
784
|
+
VALUE
|
785
|
+
P4ClientApi::SetEnableSSO( VALUE e )
|
786
|
+
{
|
787
|
+
return ui.EnableSSO( e );
|
788
|
+
}
|
789
|
+
|
790
|
+
VALUE
|
791
|
+
P4ClientApi::GetEnableSSO()
|
792
|
+
{
|
793
|
+
return ui.SSOEnabled();
|
794
|
+
}
|
795
|
+
|
796
|
+
VALUE
|
797
|
+
P4ClientApi::GetSSOVars()
|
798
|
+
{
|
799
|
+
return ui.GetSSOVars();
|
800
|
+
}
|
801
|
+
|
802
|
+
VALUE
|
803
|
+
P4ClientApi::SetSSOPassResult( VALUE r )
|
804
|
+
{
|
805
|
+
return ui.SetSSOPassResult( r );
|
806
|
+
}
|
807
|
+
|
808
|
+
VALUE
|
809
|
+
P4ClientApi::GetSSOPassResult()
|
810
|
+
{
|
811
|
+
return ui.GetSSOPassResult();
|
812
|
+
}
|
813
|
+
|
814
|
+
VALUE
|
815
|
+
P4ClientApi::SetSSOFailResult( VALUE r )
|
816
|
+
{
|
817
|
+
return ui.SetSSOFailResult( r );
|
818
|
+
}
|
819
|
+
|
820
|
+
VALUE
|
821
|
+
P4ClientApi::GetSSOFailResult()
|
822
|
+
{
|
823
|
+
return ui.GetSSOFailResult();
|
824
|
+
}
|
data/ext/P4/p4clientapi.h
CHANGED
@@ -73,6 +73,7 @@ public:
|
|
73
73
|
void SetClient( const char *c ) { client.SetClient( c ); }
|
74
74
|
void SetCwd( const char *c );
|
75
75
|
void SetEnviroFile( const char *c );
|
76
|
+
void SetEVar( const char *var, const char *val );
|
76
77
|
void SetHost( const char *h ) { client.SetHost( h ); }
|
77
78
|
void SetIgnoreFile( const char *f ) { client.SetIgnoreFile( f ); }
|
78
79
|
void SetMaxResults( int v ) { maxResults = v; }
|
@@ -96,6 +97,7 @@ public:
|
|
96
97
|
const StrPtr &GetCwd() { return client.GetCwd(); }
|
97
98
|
const char * GetEnv( const char *v);
|
98
99
|
const StrPtr *GetEnviroFile();
|
100
|
+
const StrPtr *GetEVar(const char *v);
|
99
101
|
const StrPtr &GetHost() { return client.GetHost(); }
|
100
102
|
const StrPtr &GetIgnoreFile() { return client.GetIgnoreFile();}
|
101
103
|
const StrPtr &GetLanguage() { return client.GetLanguage(); }
|
@@ -121,7 +123,6 @@ public:
|
|
121
123
|
VALUE Connect(); // P4Exception on error
|
122
124
|
VALUE Connected(); // Return true if connected and not dropped.
|
123
125
|
VALUE Disconnect();
|
124
|
-
VALUE Reset(); // Clear out any results from the previous command
|
125
126
|
|
126
127
|
// Executing commands.
|
127
128
|
VALUE Run( const char *cmd, int argc, char * const *argv );
|
@@ -170,6 +171,15 @@ public:
|
|
170
171
|
VALUE SetProgress( VALUE progress );
|
171
172
|
VALUE GetProgress() { return ui.GetProgress(); }
|
172
173
|
|
174
|
+
// SSO handler
|
175
|
+
VALUE SetEnableSSO( VALUE e );
|
176
|
+
VALUE GetEnableSSO();
|
177
|
+
VALUE GetSSOVars();
|
178
|
+
VALUE SetSSOPassResult( VALUE r );
|
179
|
+
VALUE GetSSOPassResult();
|
180
|
+
VALUE SetSSOFailResult( VALUE r );
|
181
|
+
VALUE GetSSOFailResult();
|
182
|
+
|
173
183
|
// Ruby garbage collection
|
174
184
|
void GCMark();
|
175
185
|
|
@@ -248,4 +258,3 @@ private:
|
|
248
258
|
int maxScanRows;
|
249
259
|
int maxLockTime;
|
250
260
|
};
|
251
|
-
|
data/ext/P4/p4result.cpp
CHANGED
data/ext/P4/p4specdata.cpp
CHANGED
@@ -106,3 +106,32 @@ SpecDataRuby::SetLine( SpecElem *sd, int x, const StrPtr *v, Error *e )
|
|
106
106
|
}
|
107
107
|
return;
|
108
108
|
}
|
109
|
+
|
110
|
+
void
|
111
|
+
SpecDataRuby::Comment ( SpecElem *sd, int x, const char **wv, int nl, Error *e )
|
112
|
+
{
|
113
|
+
VALUE key;
|
114
|
+
VALUE val;
|
115
|
+
VALUE ary;
|
116
|
+
StrBuf t;
|
117
|
+
|
118
|
+
key = P4Utils::ruby_string( sd->tag.Text(), sd->tag.Length() );
|
119
|
+
val = P4Utils::ruby_string( *wv );
|
120
|
+
|
121
|
+
if( sd->IsList() )
|
122
|
+
{
|
123
|
+
|
124
|
+
ary = rb_hash_aref( hash, key ); // rb_hash_aref - get the value for hash key
|
125
|
+
if( ary == Qnil )
|
126
|
+
{
|
127
|
+
ary = rb_ary_new();
|
128
|
+
rb_hash_aset( hash, key, ary ); // rb_hash_aset(hash, key, value) - set the hash key to value
|
129
|
+
}
|
130
|
+
rb_ary_store( ary, x, val );
|
131
|
+
}
|
132
|
+
else
|
133
|
+
{
|
134
|
+
rb_hash_aset( hash, key, val );
|
135
|
+
}
|
136
|
+
return;
|
137
|
+
}
|
data/ext/P4/p4specdata.h
CHANGED
@@ -44,6 +44,8 @@ class SpecDataRuby : public SpecData
|
|
44
44
|
virtual StrPtr *GetLine( SpecElem *sd, int x, const char **cmt );
|
45
45
|
virtual void SetLine( SpecElem *sd, int x, const StrPtr *val,
|
46
46
|
Error *e );
|
47
|
+
virtual void Comment( SpecElem *sd, int x, const char **wv,
|
48
|
+
int nl, Error *e );
|
47
49
|
|
48
50
|
private:
|
49
51
|
VALUE hash;
|
data/ext/P4/specmgr.cpp
CHANGED
@@ -63,21 +63,6 @@ struct defaultspec {
|
|
63
63
|
"unlocked/locked;;"
|
64
64
|
"View;code:311;type:wlist;words:2;len:64;;"
|
65
65
|
},
|
66
|
-
{
|
67
|
-
"changeX",
|
68
|
-
"Change;code:201;rq;ro;fmt:L;seq:1;len:10;;"
|
69
|
-
"Date;code:202;type:date;ro;fmt:R;seq:3;len:20;;"
|
70
|
-
"Client;code:203;ro;fmt:L;seq:2;len:32;;"
|
71
|
-
"User;code:204;ro;fmt:L;seq:4;len:32;;"
|
72
|
-
"Status;code:205;ro;fmt:R;seq:5;len:10;;"
|
73
|
-
"Type;code:211;seq:6;type:select;fmt:L;len:10;"
|
74
|
-
"val:public/restricted;;"
|
75
|
-
"ImportedBy;code:212;type:line;ro;fmt:L;len:32;;"
|
76
|
-
"Identity;code:213;type:line;;"
|
77
|
-
"Description;code:206;type:text;rq;;"
|
78
|
-
"Jobs;code:209;type:wlist;words:2;len:32;;"
|
79
|
-
"Files;code:210;type:llist;len:64;;"
|
80
|
-
},
|
81
66
|
{
|
82
67
|
"change",
|
83
68
|
"Change;code:201;rq;ro;fmt:L;seq:1;len:10;;"
|
@@ -92,6 +77,7 @@ struct defaultspec {
|
|
92
77
|
"Description;code:206;type:text;rq;seq:7;;"
|
93
78
|
"JobStatus;code:207;fmt:I;type:select;seq:9;;"
|
94
79
|
"Jobs;code:208;type:wlist;seq:8;len:32;;"
|
80
|
+
"Stream;code:214;type:line;len:64;;"
|
95
81
|
"Files;code:210;type:llist;len:64;;"
|
96
82
|
},
|
97
83
|
{
|
@@ -115,47 +101,12 @@ struct defaultspec {
|
|
115
101
|
"Stream;code:314;type:line;len:64;;"
|
116
102
|
"StreamAtChange;code:316;type:line;len:64;;"
|
117
103
|
"ServerID;code:315;type:line;ro;len:64;;"
|
118
|
-
"Type;code:318;type:select;len:10;val:
|
104
|
+
"Type;code:318;type:select;len:10;val:"
|
105
|
+
"writeable/readonly/graph/partitioned;;"
|
119
106
|
"Backup;code:319;type:select;len:10;val:enable/disable;;"
|
120
107
|
"View;code:311;type:wlist;words:2;len:64;;"
|
121
108
|
"ChangeView;code:317;type:llist;len:64;;"
|
122
109
|
},
|
123
|
-
{
|
124
|
-
"clientX",
|
125
|
-
"Client;code:301;rq;ro;seq:1;len:32;;"
|
126
|
-
"Update;code:302;type:date;ro;seq:2;fmt:L;len:20;;"
|
127
|
-
"Access;code:303;type:date;ro;seq:4;fmt:L;len:20;;"
|
128
|
-
"Owner;code:304;seq:3;fmt:R;len:32;;"
|
129
|
-
"Host;code:305;seq:5;fmt:R;len:32;;"
|
130
|
-
"Description;code:306;type:text;len:128;;"
|
131
|
-
"Root;code:307;rq;type:line;len:64;;"
|
132
|
-
"AltRoots;code:308;type:llist;len:64;;"
|
133
|
-
"Options;code:309;type:line;len:64;val:"
|
134
|
-
"noallwrite/allwrite,noclobber/clobber,nocompress/compress,"
|
135
|
-
"unlocked/locked,nomodtime/modtime,normdir/rmdir;;"
|
136
|
-
"SubmitOptions;code:313;type:select;fmt:L;len:25;val:"
|
137
|
-
"submitunchanged/submitunchanged+reopen/revertunchanged/"
|
138
|
-
"revertunchanged+reopen/leaveunchanged/leaveunchanged+reopen;;"
|
139
|
-
"LineEnd;code:310;type:select;fmt:L;len:12;val:"
|
140
|
-
"local/unix/mac/win/share;;"
|
141
|
-
"View;code:311;type:wlist;words:2;len:64;;"
|
142
|
-
},
|
143
|
-
{
|
144
|
-
"clientSpecing021",
|
145
|
-
"Client;code:301;rq;ro;len:32;;"
|
146
|
-
"Update;code:302;type:date;ro;len:20;;"
|
147
|
-
"Access;code:303;type:date;ro;len:20;;"
|
148
|
-
"Owner;code:304;len:32;;"
|
149
|
-
"Host;code:305;len:32;;"
|
150
|
-
"Description;code:306;type:text;len:128;;"
|
151
|
-
"Root;code:307;rq;type:line;len:64;;"
|
152
|
-
"AltRoots;code:308;type:text;len:64;;"
|
153
|
-
"Options;code:309;type:line;len:64;val:"
|
154
|
-
"noallwrite/allwrite,noclobber/clobber,nocompress/compress,"
|
155
|
-
"unlocked/locked,nomodtime/modtime,normdir/rmdir;;"
|
156
|
-
"LineEnd;code:310;type:select;len:12;val:local/unix/mac/win/share;;"
|
157
|
-
"View;code:311;type:wlist;words:2;len:64;;"
|
158
|
-
},
|
159
110
|
{
|
160
111
|
"depot",
|
161
112
|
"Depot;code:251;rq;ro;len:32;;"
|
@@ -175,11 +126,13 @@ struct defaultspec {
|
|
175
126
|
"MaxResults;code:402;type:word;len:12;;"
|
176
127
|
"MaxScanRows;code:403;type:word;len:12;;"
|
177
128
|
"MaxLockTime;code:407;type:word;len:12;;"
|
129
|
+
"MaxOpenFiles;code:413;type:word;len:12;;"
|
178
130
|
"Timeout;code:406;type:word;len:12;;"
|
179
131
|
"PasswordTimeout;code:409;type:word;len:12;;"
|
180
132
|
"LdapConfig;code:410;type:line;len:128;;"
|
181
133
|
"LdapSearchQuery;code:411;type:line;len:128;;"
|
182
134
|
"LdapUserAttribute;code:412;type:line;len:128;;"
|
135
|
+
"LdapUserDNAttribute;code:414;type:line;len:128;;"
|
183
136
|
"Subgroups;code:404;type:wlist;len:32;opt:default;;"
|
184
137
|
"Owners;code:408;type:wlist;len:32;opt:default;;"
|
185
138
|
"Users;code:405;type:wlist;len:32;opt:default;;"
|
@@ -247,36 +200,67 @@ struct defaultspec {
|
|
247
200
|
"Clients;code:458;len:8;;"
|
248
201
|
"Users;code:459;len:8;;"
|
249
202
|
"Files;code:460;len:8;;"
|
250
|
-
|
203
|
+
"Repos;code:462;len:8;;"
|
204
|
+
"ExtraCapabilities;code:463;type:llist;len:512;;"
|
205
|
+
},
|
251
206
|
{
|
252
207
|
"protect",
|
253
|
-
"
|
208
|
+
"SubPath;code:502;ro;len:64;;"
|
209
|
+
"Update;code:503;type:date;ro;fmt:L;len:20;;"
|
210
|
+
"Protections;code:501;fmt:C;type:wlist;words:5;opt:default;z;len:64;;"
|
254
211
|
},
|
255
212
|
{
|
256
213
|
"remote",
|
257
|
-
"RemoteID;code:851;rq;ro;len:32;;"
|
214
|
+
"RemoteID;code:851;rq;ro;fmt:L;len:32;;"
|
258
215
|
"Address;code:852;rq;type:line;len:32;;"
|
259
216
|
"Owner;code:853;fmt:R;len:32;;"
|
260
217
|
"RemoteUser;code:861;fmt:R;len:32;;"
|
261
218
|
"Options;code:854;type:line;len:32;val:"
|
262
|
-
"unlocked/
|
219
|
+
"unlocked/locked,nocompress/compress,copyrcs/nocopyrcs;;"
|
263
220
|
"Update;code:855;type:date;ro;fmt:L;len:20;;"
|
264
221
|
"Access;code:856;type:date;ro;fmt:L;len:20;;"
|
265
222
|
"Description;code:857;type:text;len:128;;"
|
266
223
|
"LastFetch;code:858;fmt:L;len:10;;"
|
267
224
|
"LastPush;code:859;fmt:L;len:10;;"
|
268
225
|
"DepotMap;code:860;type:wlist;words:2;len:64;;"
|
226
|
+
"ArchiveLimits;code:862;type:wlist;words:2;len:64;;"
|
269
227
|
},
|
270
228
|
{
|
271
|
-
"
|
272
|
-
"
|
273
|
-
"
|
274
|
-
"
|
275
|
-
"
|
276
|
-
"
|
277
|
-
"
|
278
|
-
"
|
279
|
-
"
|
229
|
+
"repo",
|
230
|
+
"Repo;code:1001;rq;ro;fmt:L;len:128;;"
|
231
|
+
"Owner;code:1002;fmt:R;len:32;;"
|
232
|
+
"Created;code:1003;type:date;ro;fmt:L;len:20;;"
|
233
|
+
"Pushed;code:1004;type:date;ro;fmt:R;len:20;;"
|
234
|
+
"ForkedFrom;code:1005;ro;fmt:L;len:128;;"
|
235
|
+
"Description;code:1006;type:text;len:128;;"
|
236
|
+
"DefaultBranch;code:1007;fmt:L;len:32;;"
|
237
|
+
"MirroredFrom;code:1008;fmt:R;len:32;;"
|
238
|
+
"Options;code:1009;type:select;len:10;val:lfs/nolfs;;"
|
239
|
+
"GconnMirrorServerId;code:1010;fmt:L;len:32;;"
|
240
|
+
"GconnMirrorSecretToken;code:NNN;len:36;;"
|
241
|
+
"GconnMirrorStatus;code:NNN;len:8;;"
|
242
|
+
"GconnMirrorExcludedBranches;code:NNN;len:256;;"
|
243
|
+
"GconnMirrorHideFetchUrl;code:NNN;len:5;;"
|
244
|
+
},
|
245
|
+
{
|
246
|
+
"server",
|
247
|
+
"ServerID;code:751;rq;ro;len:32;;"
|
248
|
+
"Type;code:752;rq;len:32;;"
|
249
|
+
"Name;code:753;type:line;len:32;;"
|
250
|
+
"Address;code:754;type:line;len:32;;"
|
251
|
+
"ExternalAddress;code:755;type:line;len:32;;"
|
252
|
+
"Services;code:756;rq;len:128;;"
|
253
|
+
"Options;code:764;type:line;len:32;val:"
|
254
|
+
"nomandatory/mandatory;;"
|
255
|
+
"ReplicatingFrom;code:765;type:line;len:32;;"
|
256
|
+
"Description;code:757;type:text;len:128;;"
|
257
|
+
"User;code:761;type:line;len:64;;"
|
258
|
+
"AllowedAddresses;code:763;type:wlist;len:64;;"
|
259
|
+
"UpdateCachedRepos;code:766;type:wlist;len:64;;"
|
260
|
+
"ClientDataFilter;code:758;type:wlist;len:64;;"
|
261
|
+
"RevisionDataFilter;code:759;type:wlist;len:64;;"
|
262
|
+
"ArchiveDataFilter;code:760;type:wlist;len:64;;"
|
263
|
+
"DistributedConfig;code:762;type:text;len:128;;"
|
280
264
|
},
|
281
265
|
{
|
282
266
|
"spec",
|
@@ -286,6 +270,7 @@ struct defaultspec {
|
|
286
270
|
"Values;code:354;type:wlist;words:2;;"
|
287
271
|
"Presets;code:355;type:wlist;words:2;;"
|
288
272
|
"Openable;code:362;type:wlist;words:2;;"
|
273
|
+
"Maxwords;code:361;type:wlist;words:2;;"
|
289
274
|
"Comments;code:356;type:text;;"
|
290
275
|
},
|
291
276
|
{
|
@@ -293,28 +278,30 @@ struct defaultspec {
|
|
293
278
|
"Stream;code:701;rq;ro;len:64;;"
|
294
279
|
"Update;code:705;type:date;ro;fmt:L;len:20;;"
|
295
280
|
"Access;code:706;type:date;ro;fmt:L;len:20;;"
|
296
|
-
"Owner;code:704;len:32;;"
|
297
|
-
"Name;code:703;rq;type:line;len:32;;"
|
281
|
+
"Owner;code:704;len:32;open:isolate;;"
|
282
|
+
"Name;code:703;rq;type:line;len:32;open:isolate;;"
|
298
283
|
"Parent;code:702;rq;len:64;open:isolate;;"
|
299
284
|
"Type;code:708;rq;len:32;open:isolate;;"
|
300
|
-
"Description;code:709;type:text;len:128;;"
|
285
|
+
"Description;code:709;type:text;len:128;open:isolate;;"
|
301
286
|
"Options;code:707;type:line;len:64;val:"
|
302
287
|
"allsubmit/ownersubmit,unlocked/locked,"
|
303
288
|
"toparent/notoparent,fromparent/nofromparent,"
|
304
|
-
"mergedown/mergeany;;"
|
305
|
-
"
|
306
|
-
"
|
307
|
-
"
|
289
|
+
"mergedown/mergeany;open:isolate;;"
|
290
|
+
"ParentView;code:NNN;rq;open:isolate;"
|
291
|
+
"pre:inherit;val:noinherit/inherit;;"
|
292
|
+
"Paths;code:710;rq;type:wlist;words:2;maxwords:3;len:64;open:propagate;fmt:C;;"
|
293
|
+
"Remapped;code:711;type:wlist;words:2;len:64;open:propagate;fmt:C;;"
|
294
|
+
"Ignored;code:712;type:wlist;words:1;len:64;open:propagate;fmt:C;;"
|
308
295
|
"View;code:713;type:wlist;words:2;len:64;;"
|
309
296
|
"ChangeView;code:714;type:llist;ro;len:64;;"
|
310
297
|
},
|
311
298
|
{
|
312
299
|
"triggers",
|
313
|
-
"Triggers;code:551;type:wlist;words:4;len:64;opt:default;"
|
300
|
+
"Triggers;code:551;type:wlist;words:4;len:64;opt:default;z;;"
|
314
301
|
},
|
315
302
|
{
|
316
303
|
"typemap",
|
317
|
-
"TypeMap;code:601;type:wlist;words:2;len:64;opt:default;"
|
304
|
+
"TypeMap;code:601;type:wlist;words:2;len:64;opt:default;z;;"
|
318
305
|
},
|
319
306
|
{
|
320
307
|
"user",
|
@@ -326,23 +313,10 @@ struct defaultspec {
|
|
326
313
|
"FullName;code:655;fmt:R;type:line;rq;len:32;;"
|
327
314
|
"JobView;code:656;type:line;len:64;;"
|
328
315
|
"Password;code:657;len:32;;"
|
329
|
-
"AuthMethod;code:662;fmt:L;len:10;val:
|
316
|
+
"AuthMethod;code:662;fmt:L;len:10;val:"
|
317
|
+
"perforce/perforce+2fa/ldap/ldap+2fa;;"
|
330
318
|
"Reviews;code:658;type:wlist;len:64;;"
|
331
319
|
},
|
332
|
-
{
|
333
|
-
"server",
|
334
|
-
"ServerID;code:751;rq;ro;len:32;;"
|
335
|
-
"Type;code:752;rq;len:32;;"
|
336
|
-
"Name;code:753;type:line;len:32;;"
|
337
|
-
"Address;code:754;type:line;len:32;;"
|
338
|
-
"ExternalAddress;code:755;type:line;len:32;;"
|
339
|
-
"Services;code:756;rq;len:128;;"
|
340
|
-
"Description;code:757;type:text;len:128;;"
|
341
|
-
"User;code:761;type:line;len:64;;"
|
342
|
-
"ClientDataFilter;code:758;type:wlist;len:64;;"
|
343
|
-
"RevisionDataFilter;code:759;type:wlist;len:64;;"
|
344
|
-
"ArchiveDataFilter;code:760;type:wlist;len:64;;"
|
345
|
-
},
|
346
320
|
{ 0, 0 }
|
347
321
|
};
|
348
322
|
|