p4ruby 2020.1.2056123 → 2021.1.2156749
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE.txt +451 -20
- 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 +7 -1
- data/ext/P4/p4.cpp +84 -1
- data/ext/P4/p4clientapi.cpp +62 -0
- data/ext/P4/p4clientapi.h +11 -0
- data/ext/P4/p4specdata.cpp +29 -0
- data/ext/P4/p4specdata.h +2 -0
- data/ext/P4/specmgr.cpp +43 -35
- data/lib/P4/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: caea2db119dc72c9cbcdbb6d3218e0a548f75eb47c7e6471c66db6dd7d5bdb36
|
4
|
+
data.tar.gz: 3eb17c7df1baa55c73b3c195de8fa0e31bd86a5dd688970d831f5f4e205e3bf6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f43e94cc99bc92157512f438138610364959eeb8ccb57f313027f01e8767b699b03615ed01dac042315a6b4a5a7775c7e5cd09469733d9a73d7bbc1808624c9
|
7
|
+
data.tar.gz: f492d5051540489a0f62bd07b5d994148e02181f969523c633e5857d62253e2c983d83b9c90e7bab83b44efe2ef33770dfa025086badd89c99fbff0137e3a58d
|
data/LICENSE.txt
CHANGED
@@ -1,24 +1,455 @@
|
|
1
|
-
Copyright (c)
|
1
|
+
Copyright (c) 2021, Perforce Software, Inc. All rights reserved.
|
2
|
+
|
3
|
+
Redistribution and use in source and binary forms, with or without
|
4
|
+
modification, are permitted provided that the following conditions are met:
|
5
|
+
|
6
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
7
|
+
list of conditions and the following disclaimer.
|
8
|
+
|
9
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
10
|
+
this list of conditions and the following disclaimer in the documentation
|
11
|
+
and/or other materials provided with the distribution.
|
12
|
+
|
13
|
+
3. Neither the name of the copyright holder nor the names of its contributors
|
14
|
+
may be used to endorse or promote products derived from this software without
|
15
|
+
specific prior written permission.
|
16
|
+
|
17
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
18
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
19
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
20
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
21
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
22
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
23
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
24
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
25
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
+
-----------------------
|
28
|
+
|
29
|
+
The following are the license statements for code used in
|
30
|
+
this program.
|
31
|
+
|
32
|
+
|
33
|
+
sol2 License
|
34
|
+
-----------------------
|
35
|
+
|
36
|
+
Copyright (c) 2013-2018 Rapptz, ThePhD, and contributors
|
37
|
+
|
38
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
39
|
+
a copy of this software and associated documentation files (the
|
40
|
+
"Software"), to deal in the Software without restriction, including
|
41
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
42
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
43
|
+
permit persons to whom the Software is furnished to do so, subject to
|
44
|
+
the following conditions:
|
45
|
+
|
46
|
+
The above copyright notice and this permission notice shall be
|
47
|
+
included in all copies or substantial portions of the Software.
|
48
|
+
|
49
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
50
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
51
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
52
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
53
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
54
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
55
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
56
|
+
|
57
|
+
|
58
|
+
Lua License
|
59
|
+
-----------------------
|
60
|
+
|
61
|
+
Copyright (c) 1994-2018 Lua.org, PUC-Rio.
|
62
|
+
|
63
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
64
|
+
a copy of this software and associated documentation files (the
|
65
|
+
"Software"), to deal in the Software without restriction, including
|
66
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
67
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
68
|
+
permit persons to whom the Software is furnished to do so, subject to
|
69
|
+
the following conditions:
|
70
|
+
|
71
|
+
The above copyright notice and this permission notice shall be
|
72
|
+
included in all copies or substantial portions of the Software.
|
73
|
+
|
74
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
75
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
76
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
77
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
78
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
79
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
80
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
81
|
+
|
82
|
+
|
83
|
+
cURL License
|
84
|
+
-----------------------
|
85
|
+
|
86
|
+
This code uses a permissive license. Please use the following
|
87
|
+
attribution in the documentation of the open source code.
|
88
|
+
|
89
|
+
Copyright (c) 1996 - 2018, Daniel Stenberg, daniel@haxx.se, and many
|
90
|
+
contributors, see the THANKS file.
|
91
|
+
|
92
|
+
All rights reserved.
|
93
|
+
|
94
|
+
Permission to use, copy, modify, and distribute this software for any
|
95
|
+
purpose with or without fee is hereby granted, provided that the above
|
96
|
+
copyright notice and this permission notice appear in all copies.
|
97
|
+
|
98
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
99
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
100
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
101
|
+
THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
102
|
+
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
103
|
+
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
104
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
105
|
+
SOFTWARE.
|
106
|
+
|
107
|
+
Except as contained in this notice, the name of a copyright holder shall
|
108
|
+
not be used in advertising or otherwise to promote the sale, use or
|
109
|
+
other dealings in this Software without prior written authorization of
|
110
|
+
the copyright holder.
|
111
|
+
|
112
|
+
|
113
|
+
Lua-cURLv3 License
|
114
|
+
-----------------------
|
115
|
+
|
116
|
+
Copyright (c) 2014-2018 Alexey Melnichuk
|
117
|
+
|
118
|
+
Permission is hereby granted, free of charge, to any person obtaining a
|
119
|
+
copy of this software and associated documentation files (the
|
120
|
+
"Software"), to deal in the Software without restriction, including
|
121
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
122
|
+
distribute, sublicense, and/or sell copies of the Software, and to permit
|
123
|
+
persons to whom the Software is furnished to do so, subject to the
|
124
|
+
following conditions:
|
125
|
+
|
126
|
+
The above copyright notice and this permission notice shall be included
|
127
|
+
in all copies or substantial portions of the Software.
|
128
|
+
|
129
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
130
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
131
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
132
|
+
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
133
|
+
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
134
|
+
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
135
|
+
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
136
|
+
|
137
|
+
|
138
|
+
LuaSQLite3 License
|
139
|
+
-----------------------
|
140
|
+
|
141
|
+
Copyright (C) 2002-2016 Tiago Dionizio, Doug Currie
|
142
|
+
All rights reserved.
|
143
|
+
Author : Tiago Dionizio <tiago.dionizio@ist.utl.pt>
|
144
|
+
Author : Doug Currie <doug.currie@alum.mit.edu>
|
145
|
+
Library : lsqlite3 - an SQLite 3 database binding for Lua 5
|
146
|
+
|
147
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
148
|
+
a copy of this software and associated documentation files (the
|
149
|
+
"Software"), to deal in the Software without restriction, including
|
150
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
151
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
152
|
+
permit persons to whom the Software is furnished to do so, subject to
|
153
|
+
the following conditions:
|
154
|
+
|
155
|
+
The above copyright notice and this permission notice shall be
|
156
|
+
included in all copies or substantial portions of the Software.
|
157
|
+
|
158
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
159
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
160
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
161
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
162
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
163
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
164
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
165
|
+
|
166
|
+
|
167
|
+
lua-cjson License
|
168
|
+
-----------------------
|
169
|
+
|
170
|
+
Copyright (c) 2010-2012 Mark Pulford <mark@kyne.com.au>
|
171
|
+
|
172
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
173
|
+
a copy of this software and associated documentation files (the
|
174
|
+
"Software"), to deal in the Software without restriction, including
|
175
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
176
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
177
|
+
permit persons to whom the Software is furnished to do so, subject to
|
178
|
+
the following conditions:
|
179
|
+
|
180
|
+
The above copyright notice and this permission notice shall be
|
181
|
+
included in all copies or substantial portions of the Software.
|
182
|
+
|
183
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
184
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
185
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
186
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
187
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
188
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
189
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
190
|
+
|
191
|
+
|
192
|
+
libc++ and libc++abi License
|
193
|
+
-----------------------
|
194
|
+
|
195
|
+
These libraries are dual-licensed:
|
196
|
+
|
197
|
+
The University of Illinois/NCSA Open Source License (NCSA)
|
198
|
+
Developed under the LLVM Project
|
199
|
+
|
200
|
+
Permission is hereby granted, free of charge, to any person obtaining a
|
201
|
+
copy of this software and associated documentation files (the
|
202
|
+
"Software"), to deal with the Software without restriction, including
|
203
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
204
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
205
|
+
permit persons to whom the Software is furnished to do so, subject to the
|
206
|
+
following conditions:
|
207
|
+
|
208
|
+
Redistributions of source code must retain the above copyright notice,
|
209
|
+
this list of conditions and the following disclaimers.
|
210
|
+
Redistributions in binary form must reproduce the above copyright
|
211
|
+
notice, this list of conditions and the following disclaimers in the
|
212
|
+
documentation and/or other materials provided with the distribution.
|
213
|
+
Neither the names of <Name of Development Group, Name of Institution>,
|
214
|
+
nor the names of its contributors may be used to endorse or promote
|
215
|
+
products derived from this Software without specific prior written
|
216
|
+
permission.
|
217
|
+
|
218
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
219
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
220
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
221
|
+
IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
222
|
+
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
223
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
224
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.
|
225
|
+
|
226
|
+
MIT
|
227
|
+
Developed under the LLVM Project
|
228
|
+
|
229
|
+
Permission is hereby granted, free of charge, to any person obtaining a
|
230
|
+
copy of this software and associated documentation files (the
|
231
|
+
"Software"), to deal in the Software without restriction, including
|
232
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
233
|
+
distribute, sublicense, and/or sell copies of the Software, and to permit
|
234
|
+
persons to whom the Software is furnished to do so, subject to the
|
235
|
+
following conditions:
|
236
|
+
|
237
|
+
The above copyright notice and this permission notice shall be included
|
238
|
+
in all copies or substantial portions of the Software.
|
239
|
+
|
240
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
241
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
242
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
243
|
+
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
244
|
+
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
245
|
+
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
246
|
+
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
247
|
+
|
248
|
+
|
249
|
+
jemalloc
|
250
|
+
-----------------------
|
251
|
+
|
252
|
+
Copyright (C) 2002-present Jason Evans <jasone@canonware.com>.
|
253
|
+
All rights reserved.
|
254
|
+
Copyright (C) 2007-2012 Mozilla Foundation. All rights reserved.
|
255
|
+
Copyright (C) 2009-present Facebook, Inc. All rights reserved.
|
2
256
|
|
3
257
|
Redistribution and use in source and binary forms, with or without
|
4
258
|
modification, are permitted provided that the following conditions are met:
|
259
|
+
1. Redistributions of source code must retain the above copyright
|
260
|
+
notice(s), this list of conditions and the following disclaimer.
|
261
|
+
2. Redistributions in binary form must reproduce the above copyright
|
262
|
+
notice(s), this list of conditions and the following disclaimer in the
|
263
|
+
documentation and/or other materials provided with the distribution.
|
264
|
+
|
265
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
|
266
|
+
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
267
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
268
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
269
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
270
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
271
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
272
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
273
|
+
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
274
|
+
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
275
|
+
SUCH DAMAGE.
|
276
|
+
|
277
|
+
|
278
|
+
JSON for Modern C++
|
279
|
+
-----------------------
|
280
|
+
|
281
|
+
Copyright (c) 2013-2018 Niels Lohmann
|
282
|
+
|
283
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
284
|
+
a copy of this software and associated documentation files (the
|
285
|
+
"Software"), to deal in the Software without restriction, including
|
286
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
287
|
+
distribute, sublicense, and/or sell copies of the Software, and to permit
|
288
|
+
persons to whom the Software is furnished to do so, subject to the
|
289
|
+
following conditions:
|
290
|
+
|
291
|
+
The above copyright notice and this permission notice shall be included
|
292
|
+
in all copies or substantial portions of the Software.
|
293
|
+
|
294
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
295
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
296
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
297
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
298
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
|
299
|
+
OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
300
|
+
THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
301
|
+
|
302
|
+
optional-lite and any-lite
|
303
|
+
Martin Moene
|
304
|
+
-----------------------
|
305
|
+
|
306
|
+
Boost Software License - Version 1.0 - August 17th, 2003
|
307
|
+
|
308
|
+
Permission is hereby granted, free of charge, to any person or organization
|
309
|
+
obtaining a copy of the software and accompanying documentation covered by
|
310
|
+
this license (the "Software") to use, reproduce, display, distribute,
|
311
|
+
execute, and transmit the Software, and to prepare derivative works of the
|
312
|
+
Software, and to permit third-parties to whom the Software is furnished to
|
313
|
+
do so, all subject to the following:
|
314
|
+
|
315
|
+
The copyright notices in the Software and this entire statement, including
|
316
|
+
the above license grant, this restriction and the following disclaimer,
|
317
|
+
must be included in all copies of the Software, in whole or in part, and
|
318
|
+
all derivative works of the Software, unless such copies or derivative
|
319
|
+
works are solely in the form of machine-executable object code generated by
|
320
|
+
a source language processor.
|
321
|
+
|
322
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
323
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
324
|
+
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
325
|
+
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
326
|
+
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
327
|
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
328
|
+
DEALINGS IN THE SOFTWARE.
|
329
|
+
|
330
|
+
|
331
|
+
|
332
|
+
LICENSE ISSUES
|
333
|
+
==============
|
334
|
+
|
335
|
+
The OpenSSL toolkit stays under a double license, i.e. both the conditions of
|
336
|
+
the OpenSSL License and the original SSLeay license apply to the toolkit.
|
337
|
+
See below for the actual license texts.
|
338
|
+
|
339
|
+
OpenSSL License
|
340
|
+
---------------
|
341
|
+
|
342
|
+
/* ====================================================================
|
343
|
+
* Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved.
|
344
|
+
*
|
345
|
+
* Redistribution and use in source and binary forms, with or without
|
346
|
+
* modification, are permitted provided that the following conditions
|
347
|
+
* are met:
|
348
|
+
*
|
349
|
+
* 1. Redistributions of source code must retain the above copyright
|
350
|
+
* notice, this list of conditions and the following disclaimer.
|
351
|
+
*
|
352
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
353
|
+
* notice, this list of conditions and the following disclaimer in
|
354
|
+
* the documentation and/or other materials provided with the
|
355
|
+
* distribution.
|
356
|
+
*
|
357
|
+
* 3. All advertising materials mentioning features or use of this
|
358
|
+
* software must display the following acknowledgment:
|
359
|
+
* "This product includes software developed by the OpenSSL Project
|
360
|
+
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
361
|
+
*
|
362
|
+
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
363
|
+
* endorse or promote products derived from this software without
|
364
|
+
* prior written permission. For written permission, please contact
|
365
|
+
* openssl-core@openssl.org.
|
366
|
+
*
|
367
|
+
* 5. Products derived from this software may not be called "OpenSSL"
|
368
|
+
* nor may "OpenSSL" appear in their names without prior written
|
369
|
+
* permission of the OpenSSL Project.
|
370
|
+
*
|
371
|
+
* 6. Redistributions of any form whatsoever must retain the following
|
372
|
+
* acknowledgment:
|
373
|
+
* "This product includes software developed by the OpenSSL Project
|
374
|
+
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
375
|
+
*
|
376
|
+
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
377
|
+
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
378
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
379
|
+
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
380
|
+
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
381
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
382
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
383
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
384
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
385
|
+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
386
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
387
|
+
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
388
|
+
* ====================================================================
|
389
|
+
*
|
390
|
+
* This product includes cryptographic software written by Eric Young
|
391
|
+
* (eay@cryptsoft.com). This product includes software written by Tim
|
392
|
+
* Hudson (tjh@cryptsoft.com).
|
393
|
+
*
|
394
|
+
*/
|
395
|
+
|
396
|
+
Original SSLeay License
|
397
|
+
-----------------------
|
398
|
+
|
399
|
+
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
400
|
+
* All rights reserved.
|
401
|
+
*
|
402
|
+
* This package is an SSL implementation written
|
403
|
+
* by Eric Young (eay@cryptsoft.com).
|
404
|
+
* The implementation was written so as to conform with Netscapes SSL.
|
405
|
+
*
|
406
|
+
* This library is free for commercial and non-commercial use as long as
|
407
|
+
* the following conditions are aheared to. The following conditions
|
408
|
+
* apply to all code found in this distribution, be it the RC4, RSA,
|
409
|
+
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
410
|
+
* included with this distribution is covered by the same copyright terms
|
411
|
+
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
412
|
+
*
|
413
|
+
* Copyright remains Eric Young's, and as such any Copyright notices in
|
414
|
+
* the code are not to be removed.
|
415
|
+
* If this package is used in a product, Eric Young should be given attribution
|
416
|
+
* as the author of the parts of the library used.
|
417
|
+
* This can be in the form of a textual message at program startup or
|
418
|
+
* in documentation (online or textual) provided with the package.
|
419
|
+
*
|
420
|
+
* Redistribution and use in source and binary forms, with or without
|
421
|
+
* modification, are permitted provided that the following conditions
|
422
|
+
* are met:
|
423
|
+
* 1. Redistributions of source code must retain the copyright
|
424
|
+
* notice, this list of conditions and the following disclaimer.
|
425
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
426
|
+
* notice, this list of conditions and the following disclaimer in the
|
427
|
+
* documentation and/or other materials provided with the distribution.
|
428
|
+
* 3. All advertising materials mentioning features or use of this software
|
429
|
+
* must display the following acknowledgement:
|
430
|
+
* "This product includes cryptographic software written by
|
431
|
+
* Eric Young (eay@cryptsoft.com)"
|
432
|
+
* The word 'cryptographic' can be left out if the rouines from the library
|
433
|
+
* being used are not cryptographic related :-).
|
434
|
+
* 4. If you include any Windows specific code (or a derivative thereof) from
|
435
|
+
* the apps directory (application code) you must include an acknowledgement:
|
436
|
+
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
437
|
+
*
|
438
|
+
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
439
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
440
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
441
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
442
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
443
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
444
|
+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
445
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
446
|
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
447
|
+
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
448
|
+
* SUCH DAMAGE.
|
449
|
+
*
|
450
|
+
* The licence and distribution terms for any publically available version or
|
451
|
+
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
452
|
+
* copied and put under another distribution licence
|
453
|
+
* [including the GNU Public Licence.]
|
454
|
+
*/
|
5
455
|
|
6
|
-
1. Redistributions of source code must retain the above copyright
|
7
|
-
notice, this list of conditions and the following disclaimer.
|
8
|
-
|
9
|
-
2. Redistributions in binary form must reproduce the above copyright
|
10
|
-
notice, this list of conditions and the following disclaimer in the
|
11
|
-
documentation and/or other materials provided with the distribution.
|
12
|
-
|
13
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
14
|
-
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
15
|
-
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
16
|
-
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PERFORCE
|
17
|
-
SOFTWARE, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
18
|
-
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
19
|
-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
20
|
-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
21
|
-
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
22
|
-
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
23
|
-
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
24
|
-
DAMAGE.
|
data/ext/P4/clientuserruby.cpp
CHANGED
@@ -38,6 +38,7 @@
|
|
38
38
|
#include <ruby.h>
|
39
39
|
#include "undefdups.h"
|
40
40
|
#include <p4/clientapi.h>
|
41
|
+
#include <p4/strtable.h>
|
41
42
|
#include <p4/clientprog.h>
|
42
43
|
#include <p4/spec.h>
|
43
44
|
#include <p4/diff.h>
|
@@ -77,6 +78,7 @@ ClientUserRuby::ClientUserRuby(SpecMgr *s) {
|
|
77
78
|
rubyExcept = 0;
|
78
79
|
alive = 1;
|
79
80
|
track = false;
|
81
|
+
SetSSOHandler( ssoHandler = new P4ClientSSO( s ) );
|
80
82
|
|
81
83
|
ID idP4 = rb_intern("P4");
|
82
84
|
ID idP4OH = rb_intern("OutputHandler");
|
@@ -723,4 +725,157 @@ void ClientUserRuby::GCMark() {
|
|
723
725
|
rb_gc_mark( cProgress );
|
724
726
|
|
725
727
|
results.GCMark();
|
728
|
+
ssoHandler->GCMark();
|
726
729
|
}
|
730
|
+
|
731
|
+
//
|
732
|
+
// SSO handler
|
733
|
+
//
|
734
|
+
|
735
|
+
P4ClientSSO::P4ClientSSO( SpecMgr *s )
|
736
|
+
{
|
737
|
+
specMgr = s;
|
738
|
+
resultSet = 0;
|
739
|
+
ssoEnabled = 0;
|
740
|
+
result = Qnil;
|
741
|
+
}
|
742
|
+
|
743
|
+
ClientSSOStatus
|
744
|
+
P4ClientSSO::Authorize( StrDict &vars, int maxLength, StrBuf &strbuf )
|
745
|
+
{
|
746
|
+
ssoVars.Clear();
|
747
|
+
|
748
|
+
if( !ssoEnabled )
|
749
|
+
return CSS_SKIP;
|
750
|
+
|
751
|
+
if( ssoEnabled < 0 )
|
752
|
+
return CSS_UNSET;
|
753
|
+
|
754
|
+
if( resultSet )
|
755
|
+
{
|
756
|
+
strbuf.Clear();
|
757
|
+
VALUE resval = result;
|
758
|
+
|
759
|
+
//if( P4RDB_CALLS )
|
760
|
+
// std::cerr << "[P4] ClientSSO::Authorize(). Using supplied input"
|
761
|
+
// << std::endl;
|
762
|
+
|
763
|
+
if (Qtrue == rb_obj_is_kind_of(result, rb_cArray)) {
|
764
|
+
resval = rb_ary_shift(result);
|
765
|
+
}
|
766
|
+
|
767
|
+
if( resval != Qnil ) {
|
768
|
+
// Convert whatever's left into a string
|
769
|
+
ID to_s = rb_intern("to_s");
|
770
|
+
VALUE str = rb_funcall(resval, to_s, 0);
|
771
|
+
strbuf.Set(StringValuePtr(str));
|
772
|
+
}
|
773
|
+
|
774
|
+
return resultSet == 2 ? CSS_FAIL
|
775
|
+
: CSS_PASS;
|
776
|
+
}
|
777
|
+
|
778
|
+
ssoVars.CopyVars( vars );
|
779
|
+
return CSS_EXIT;
|
780
|
+
}
|
781
|
+
|
782
|
+
VALUE
|
783
|
+
P4ClientSSO::EnableSSO( VALUE e )
|
784
|
+
{
|
785
|
+
if( e == Qnil )
|
786
|
+
{
|
787
|
+
ssoEnabled = 0;
|
788
|
+
return Qtrue;
|
789
|
+
}
|
790
|
+
|
791
|
+
if( e == Qtrue )
|
792
|
+
{
|
793
|
+
ssoEnabled = 1;
|
794
|
+
return Qtrue;
|
795
|
+
}
|
796
|
+
|
797
|
+
if( e == Qfalse )
|
798
|
+
{
|
799
|
+
ssoEnabled = -1;
|
800
|
+
return Qtrue;
|
801
|
+
}
|
802
|
+
|
803
|
+
return Qfalse;
|
804
|
+
}
|
805
|
+
|
806
|
+
VALUE
|
807
|
+
P4ClientSSO::SSOEnabled()
|
808
|
+
{
|
809
|
+
if( ssoEnabled == 1 )
|
810
|
+
{
|
811
|
+
return Qtrue;
|
812
|
+
}
|
813
|
+
else if( ssoEnabled == -1 )
|
814
|
+
{
|
815
|
+
return Qfalse;
|
816
|
+
}
|
817
|
+
else
|
818
|
+
{
|
819
|
+
return Qnil;
|
820
|
+
}
|
821
|
+
}
|
822
|
+
|
823
|
+
VALUE
|
824
|
+
P4ClientSSO::SetPassResult( VALUE i )
|
825
|
+
{
|
826
|
+
resultSet = 1;
|
827
|
+
return SetResult( i );
|
828
|
+
}
|
829
|
+
|
830
|
+
VALUE
|
831
|
+
P4ClientSSO::GetPassResult()
|
832
|
+
{
|
833
|
+
if( resultSet == 1 )
|
834
|
+
{
|
835
|
+
return result;
|
836
|
+
}
|
837
|
+
else
|
838
|
+
{
|
839
|
+
return Qnil;
|
840
|
+
}
|
841
|
+
}
|
842
|
+
|
843
|
+
VALUE
|
844
|
+
P4ClientSSO::SetFailResult( VALUE i )
|
845
|
+
{
|
846
|
+
resultSet = 2;
|
847
|
+
return SetResult( i );
|
848
|
+
}
|
849
|
+
|
850
|
+
VALUE
|
851
|
+
P4ClientSSO::GetFailResult()
|
852
|
+
{
|
853
|
+
if( resultSet == 2 )
|
854
|
+
{
|
855
|
+
return result;
|
856
|
+
}
|
857
|
+
else
|
858
|
+
{
|
859
|
+
return Qnil;
|
860
|
+
}
|
861
|
+
}
|
862
|
+
|
863
|
+
VALUE
|
864
|
+
P4ClientSSO::SetResult( VALUE i )
|
865
|
+
{
|
866
|
+
//if (P4RDB_CALLS) fprintf(stderr, "[P4] P4ClientSSO::SetResult()\n");
|
867
|
+
|
868
|
+
result = i;
|
869
|
+
return Qtrue;
|
870
|
+
}
|
871
|
+
|
872
|
+
VALUE
|
873
|
+
P4ClientSSO::GetSSOVars()
|
874
|
+
{
|
875
|
+
return specMgr->StrDictToHash( &ssoVars );
|
876
|
+
}
|
877
|
+
|
878
|
+
void
|
879
|
+
P4ClientSSO::GCMark() {
|
880
|
+
if (result != Qnil) rb_gc_mark( result );
|
881
|
+
}
|
data/ext/P4/clientuserruby.h
CHANGED
@@ -42,6 +42,39 @@
|
|
42
42
|
class SpecMgr;
|
43
43
|
class ClientProgress;
|
44
44
|
|
45
|
+
class P4ClientSSO : public ClientSSO
|
46
|
+
{
|
47
|
+
public:
|
48
|
+
P4ClientSSO( SpecMgr *s );
|
49
|
+
|
50
|
+
// Client SSO methods overridden here
|
51
|
+
virtual ClientSSOStatus Authorize( StrDict &vars, int maxLength,
|
52
|
+
StrBuf &result );
|
53
|
+
|
54
|
+
// Local methods
|
55
|
+
VALUE EnableSSO( VALUE e );
|
56
|
+
VALUE SSOEnabled();
|
57
|
+
VALUE SetPassResult( VALUE i );
|
58
|
+
VALUE GetPassResult();
|
59
|
+
VALUE SetFailResult( VALUE i );
|
60
|
+
VALUE GetFailResult();
|
61
|
+
VALUE GetSSOVars();
|
62
|
+
|
63
|
+
void GCMark();
|
64
|
+
|
65
|
+
private:
|
66
|
+
|
67
|
+
VALUE SetResult( VALUE i );
|
68
|
+
|
69
|
+
int ssoEnabled;
|
70
|
+
int resultSet;
|
71
|
+
|
72
|
+
StrBufDict ssoVars;
|
73
|
+
SpecMgr * specMgr;
|
74
|
+
|
75
|
+
VALUE result;
|
76
|
+
};
|
77
|
+
|
45
78
|
class ClientUserRuby: public ClientUser, public KeepAlive {
|
46
79
|
public:
|
47
80
|
ClientUserRuby(SpecMgr *s);
|
@@ -101,6 +134,16 @@ public:
|
|
101
134
|
return progress;
|
102
135
|
}
|
103
136
|
|
137
|
+
// SSO handler support
|
138
|
+
|
139
|
+
VALUE EnableSSO( VALUE e ) { return ssoHandler->EnableSSO( e ); }
|
140
|
+
VALUE SSOEnabled() { return ssoHandler->SSOEnabled(); }
|
141
|
+
VALUE SetSSOPassResult( VALUE i ) { return ssoHandler->SetPassResult( i ); }
|
142
|
+
VALUE GetSSOPassResult(){ return ssoHandler->GetPassResult();}
|
143
|
+
VALUE SetSSOFailResult( VALUE i ) { return ssoHandler->SetFailResult( i ); }
|
144
|
+
VALUE GetSSOFailResult(){ return ssoHandler->GetFailResult();}
|
145
|
+
VALUE GetSSOVars() { return ssoHandler->GetSSOVars(); }
|
146
|
+
|
104
147
|
// override from KeepAlive
|
105
148
|
virtual int IsAlive() {
|
106
149
|
return alive;
|
@@ -129,5 +172,6 @@ private:
|
|
129
172
|
int alive;
|
130
173
|
int rubyExcept;
|
131
174
|
bool track;
|
175
|
+
P4ClientSSO * ssoHandler;
|
132
176
|
};
|
133
177
|
|
data/ext/P4/extconf.rb
CHANGED
@@ -425,6 +425,8 @@ def p4_cpu(os)
|
|
425
425
|
when :darwin, :linux
|
426
426
|
if cpu =~ /i686/
|
427
427
|
'x86'
|
428
|
+
elsif cpu =~ /universal/
|
429
|
+
'x86_64'
|
428
430
|
else
|
429
431
|
cpu
|
430
432
|
end
|
@@ -451,7 +453,9 @@ def p4_platform_label
|
|
451
453
|
else
|
452
454
|
'mingwx86'
|
453
455
|
end
|
454
|
-
when /darwin/
|
456
|
+
when /darwin19|darwin[2-9][0-9]/
|
457
|
+
"macosx1015#{p4_cpu(:darwin)}"
|
458
|
+
when /darwin/
|
455
459
|
"darwin90#{p4_cpu(:darwin)}"
|
456
460
|
when /solaris/
|
457
461
|
"solaris10#{p4_cpu(:solaris)}"
|
@@ -484,6 +488,8 @@ def filename
|
|
484
488
|
filename = 'p4api-openssl1.0.2.zip'
|
485
489
|
end
|
486
490
|
end
|
491
|
+
elsif RbConfig::CONFIG['target_os'].downcase =~ /darwin19|darwin[2-9][0-9]/
|
492
|
+
filename = 'p4api-openssl1.1.1.tgz'
|
487
493
|
else
|
488
494
|
filename = 'p4api.tgz'
|
489
495
|
if !openssl_number.to_s.empty?
|
data/ext/P4/p4.cpp
CHANGED
@@ -314,6 +314,25 @@ static VALUE p4_set_enviro_file( VALUE self, VALUE rbstr )
|
|
314
314
|
return Qtrue;
|
315
315
|
}
|
316
316
|
|
317
|
+
static VALUE p4_get_evar( VALUE self, VALUE var )
|
318
|
+
{
|
319
|
+
P4ClientApi *p4;
|
320
|
+
const StrPtr *val;
|
321
|
+
Data_Get_Struct( self, P4ClientApi, p4 );
|
322
|
+
val = p4->GetEVar( StringValuePtr( var ) );
|
323
|
+
if( !val ) return Qnil;
|
324
|
+
|
325
|
+
return P4Utils::ruby_string( val->Text() );
|
326
|
+
}
|
327
|
+
|
328
|
+
static VALUE p4_set_evar( VALUE self, VALUE var, VALUE val )
|
329
|
+
{
|
330
|
+
P4ClientApi *p4;
|
331
|
+
Data_Get_Struct( self, P4ClientApi, p4 );
|
332
|
+
p4->SetEVar( StringValuePtr( var ), StringValuePtr( val ) );
|
333
|
+
return Qtrue;
|
334
|
+
}
|
335
|
+
|
317
336
|
static VALUE p4_get_host( VALUE self )
|
318
337
|
{
|
319
338
|
P4ClientApi *p4;
|
@@ -642,7 +661,7 @@ static VALUE p4_run( VALUE self, VALUE args )
|
|
642
661
|
|
643
662
|
// Allocate storage on the stack so it's automatically reclaimed
|
644
663
|
// when we exit.
|
645
|
-
char **p4args =
|
664
|
+
char **p4args = RB_ALLOC_N( char *, argc + 1 );
|
646
665
|
|
647
666
|
// Copy the args across
|
648
667
|
for ( i = 0; i < argc; i++ )
|
@@ -808,6 +827,58 @@ static VALUE p4_set_progress( VALUE self, VALUE progress )
|
|
808
827
|
return p4->SetProgress( progress );
|
809
828
|
}
|
810
829
|
|
830
|
+
/*******************************************************************************
|
831
|
+
* SSO handler support
|
832
|
+
******************************************************************************/
|
833
|
+
static VALUE p4_get_enabled_sso( VALUE self )
|
834
|
+
{
|
835
|
+
P4ClientApi *p4;
|
836
|
+
Data_Get_Struct( self, P4ClientApi, p4 );
|
837
|
+
return p4->GetEnableSSO();
|
838
|
+
}
|
839
|
+
|
840
|
+
static VALUE p4_set_enable_sso( VALUE self, VALUE enable )
|
841
|
+
{
|
842
|
+
P4ClientApi *p4;
|
843
|
+
Data_Get_Struct( self, P4ClientApi, p4 );
|
844
|
+
return p4->SetEnableSSO( enable );
|
845
|
+
}
|
846
|
+
|
847
|
+
static VALUE p4_get_sso_vars( VALUE self )
|
848
|
+
{
|
849
|
+
P4ClientApi *p4;
|
850
|
+
Data_Get_Struct( self, P4ClientApi, p4 );
|
851
|
+
return p4->GetSSOVars();
|
852
|
+
}
|
853
|
+
|
854
|
+
static VALUE p4_get_sso_passresult( VALUE self )
|
855
|
+
{
|
856
|
+
P4ClientApi *p4;
|
857
|
+
Data_Get_Struct( self, P4ClientApi, p4 );
|
858
|
+
return p4->GetSSOPassResult();
|
859
|
+
}
|
860
|
+
|
861
|
+
static VALUE p4_set_sso_passresult( VALUE self, VALUE result )
|
862
|
+
{
|
863
|
+
P4ClientApi *p4;
|
864
|
+
Data_Get_Struct( self, P4ClientApi, p4 );
|
865
|
+
return p4->SetSSOPassResult( result );
|
866
|
+
}
|
867
|
+
|
868
|
+
static VALUE p4_get_sso_failresult( VALUE self )
|
869
|
+
{
|
870
|
+
P4ClientApi *p4;
|
871
|
+
Data_Get_Struct( self, P4ClientApi, p4 );
|
872
|
+
return p4->GetSSOFailResult();
|
873
|
+
}
|
874
|
+
|
875
|
+
static VALUE p4_set_sso_failresult( VALUE self, VALUE result )
|
876
|
+
{
|
877
|
+
P4ClientApi *p4;
|
878
|
+
Data_Get_Struct( self, P4ClientApi, p4 );
|
879
|
+
return p4->SetSSOFailResult( result );
|
880
|
+
}
|
881
|
+
|
811
882
|
/*******************************************************************************
|
812
883
|
* P4::MergeData methods. Construction/destruction defined elsewhere
|
813
884
|
******************************************************************************/
|
@@ -1262,6 +1333,8 @@ void Init_P4()
|
|
1262
1333
|
rb_define_method( cP4, "set_env", RUBY_METHOD_FUNC(p4_set_env) , 2 );
|
1263
1334
|
rb_define_method( cP4, "enviro_file", RUBY_METHOD_FUNC(p4_get_enviro_file), 0);
|
1264
1335
|
rb_define_method( cP4, "enviro_file=", RUBY_METHOD_FUNC(p4_set_enviro_file), 1);
|
1336
|
+
rb_define_method( cP4, "evar", RUBY_METHOD_FUNC(p4_get_evar) , 1 );
|
1337
|
+
rb_define_method( cP4, "set_evar", RUBY_METHOD_FUNC(p4_set_evar) , 2 );
|
1265
1338
|
rb_define_method( cP4, "host", RUBY_METHOD_FUNC(p4_get_host) , 0 );
|
1266
1339
|
rb_define_method( cP4, "host=", RUBY_METHOD_FUNC(p4_set_host) , 1 );
|
1267
1340
|
rb_define_method( cP4, "ignore_file",RUBY_METHOD_FUNC(p4_get_ignore) , 0 );
|
@@ -1335,6 +1408,16 @@ void Init_P4()
|
|
1335
1408
|
rb_define_method( cP4, "progress", RUBY_METHOD_FUNC(p4_get_progress), 0);
|
1336
1409
|
rb_define_method( cP4, "progress=", RUBY_METHOD_FUNC(p4_set_progress), 1);
|
1337
1410
|
|
1411
|
+
// SSO handling
|
1412
|
+
rb_define_method( cP4, "loginsso", RUBY_METHOD_FUNC(p4_get_enabled_sso), 0);
|
1413
|
+
rb_define_method( cP4, "loginsso=", RUBY_METHOD_FUNC(p4_set_enable_sso), 1);
|
1414
|
+
rb_define_method( cP4, "ssovars", RUBY_METHOD_FUNC(p4_get_sso_vars), 0);
|
1415
|
+
rb_define_method( cP4, "ssopassresult", RUBY_METHOD_FUNC(p4_get_sso_passresult), 0);
|
1416
|
+
rb_define_method( cP4, "ssopassresult=", RUBY_METHOD_FUNC(p4_set_sso_passresult), 1);
|
1417
|
+
rb_define_method( cP4, "ssofailresult", RUBY_METHOD_FUNC(p4_get_sso_failresult), 0);
|
1418
|
+
rb_define_method( cP4, "ssofailresult=", RUBY_METHOD_FUNC(p4_set_sso_failresult), 1);
|
1419
|
+
|
1420
|
+
|
1338
1421
|
// P4::MergeData class
|
1339
1422
|
cP4MD = rb_define_class_under( cP4, "MergeData", rb_cObject );
|
1340
1423
|
|
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
|
{
|
@@ -760,3 +776,49 @@ P4ClientApi::Except( const char *func, Error *e )
|
|
760
776
|
e->Fmt( &m );
|
761
777
|
Except( func, m.Text() );
|
762
778
|
}
|
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(); }
|
@@ -169,6 +171,15 @@ public:
|
|
169
171
|
VALUE SetProgress( VALUE progress );
|
170
172
|
VALUE GetProgress() { return ui.GetProgress(); }
|
171
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
|
+
|
172
183
|
// Ruby garbage collection
|
173
184
|
void GCMark();
|
174
185
|
|
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
@@ -126,13 +126,13 @@ struct defaultspec {
|
|
126
126
|
"MaxResults;code:402;type:word;len:12;;"
|
127
127
|
"MaxScanRows;code:403;type:word;len:12;;"
|
128
128
|
"MaxLockTime;code:407;type:word;len:12;;"
|
129
|
-
|
129
|
+
"MaxOpenFiles;code:413;type:word;len:12;;"
|
130
130
|
"Timeout;code:406;type:word;len:12;;"
|
131
131
|
"PasswordTimeout;code:409;type:word;len:12;;"
|
132
132
|
"LdapConfig;code:410;type:line;len:128;;"
|
133
133
|
"LdapSearchQuery;code:411;type:line;len:128;;"
|
134
134
|
"LdapUserAttribute;code:412;type:line;len:128;;"
|
135
|
-
|
135
|
+
"LdapUserDNAttribute;code:414;type:line;len:128;;"
|
136
136
|
"Subgroups;code:404;type:wlist;len:32;opt:default;;"
|
137
137
|
"Owners;code:408;type:wlist;len:32;opt:default;;"
|
138
138
|
"Users;code:405;type:wlist;len:32;opt:default;;"
|
@@ -200,12 +200,13 @@ struct defaultspec {
|
|
200
200
|
"Clients;code:458;len:8;;"
|
201
201
|
"Users;code:459;len:8;;"
|
202
202
|
"Files;code:460;len:8;;"
|
203
|
-
|
204
|
-
|
203
|
+
"Repos;code:462;len:8;;"
|
204
|
+
"ExtraCapabilities;code:463;type:llist;len:512;;"
|
205
|
+
},
|
205
206
|
{
|
206
207
|
"protect",
|
207
|
-
|
208
|
-
|
208
|
+
"SubPath;code:502;ro;len:64;;"
|
209
|
+
"Update;code:503;type:date;ro;fmt:L;len:20;;"
|
209
210
|
"Protections;code:501;fmt:C;type:wlist;words:5;opt:default;z;len:64;;"
|
210
211
|
},
|
211
212
|
{
|
@@ -226,36 +227,40 @@ struct defaultspec {
|
|
226
227
|
},
|
227
228
|
{
|
228
229
|
"repo",
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
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;;"
|
239
244
|
},
|
240
245
|
{
|
241
246
|
"server",
|
242
247
|
"ServerID;code:751;rq;ro;len:32;;"
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
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;;"
|
259
264
|
},
|
260
265
|
{
|
261
266
|
"spec",
|
@@ -265,6 +270,7 @@ struct defaultspec {
|
|
265
270
|
"Values;code:354;type:wlist;words:2;;"
|
266
271
|
"Presets;code:355;type:wlist;words:2;;"
|
267
272
|
"Openable;code:362;type:wlist;words:2;;"
|
273
|
+
"Maxwords;code:361;type:wlist;words:2;;"
|
268
274
|
"Comments;code:356;type:text;;"
|
269
275
|
},
|
270
276
|
{
|
@@ -281,9 +287,11 @@ struct defaultspec {
|
|
281
287
|
"allsubmit/ownersubmit,unlocked/locked,"
|
282
288
|
"toparent/notoparent,fromparent/nofromparent,"
|
283
289
|
"mergedown/mergeany;open:isolate;;"
|
284
|
-
"
|
285
|
-
"
|
286
|
-
"
|
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;;"
|
287
295
|
"View;code:713;type:wlist;words:2;len:64;;"
|
288
296
|
"ChangeView;code:714;type:llist;ro;len:64;;"
|
289
297
|
},
|
data/lib/P4/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: p4ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2021.1.2156749
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Perforce Software, Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Ruby extensions to the C++ Perforce API.
|
14
14
|
email: support@perforce.com
|
@@ -51,7 +51,7 @@ licenses:
|
|
51
51
|
- MIT
|
52
52
|
metadata:
|
53
53
|
documentation_uri: https://www.perforce.com/manuals/p4ruby/Content/P4Ruby/Home-p4ruby.html
|
54
|
-
post_install_message:
|
54
|
+
post_install_message:
|
55
55
|
rdoc_options: []
|
56
56
|
require_paths:
|
57
57
|
- lib
|
@@ -66,8 +66,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
66
|
- !ruby/object:Gem::Version
|
67
67
|
version: '0'
|
68
68
|
requirements: []
|
69
|
-
rubygems_version: 3.
|
70
|
-
signing_key:
|
69
|
+
rubygems_version: 3.2.15
|
70
|
+
signing_key:
|
71
71
|
specification_version: 4
|
72
72
|
summary: Ruby extensions to the C++ Perforce API
|
73
73
|
test_files: []
|