Thies C. Arntzen
f856855efd
*** empty log message ***
2000-03-16 02:18:24 +00:00
Thies C. Arntzen
0fe5aef05e
@- serialize()/unserialize() now call _sleep_() and _wakeup_() when
...
@ working on objects. (Thies)
@- renamed to_string() method to _string_value_() for consistency.
@ (Thies, Zend library)
2000-03-16 02:15:41 +00:00
Sam Ruby
2702340dd9
Emulate user/group/other on Windows
2000-03-15 11:52:07 +00:00
Hartmut Holzgraefe
b19d1bdb0f
imap_utf7_encode didn't expand international characters to 16bit
...
before coding
imap_fetch_overview could crash when some fields where missing
imap_fetch_overview will now take msg indices for default and
UIDs by optional flag, as the other functions in the family
2000-03-14 20:20:43 +00:00
Thies C. Arntzen
49cc8a7805
@- fixed possible crash in unserialize if the serailized data was
...
@ damaged. (Thies)
2000-03-14 07:49:42 +00:00
Andi Gutmans
70eb0c78f8
- Also check module API number
2000-03-13 06:00:36 +00:00
Kristian Köhntopp
85940d676f
Finished porting recode module.
2000-03-12 19:42:29 +00:00
Sascha Schumann
bb09ee9505
Use sprintf everywhere and define sprintf to php_sprintf, if sprintf is broken.
2000-03-12 17:18:21 +00:00
Sascha Schumann
caeaaf4d98
Fix build on systems which lack snprintf or vsnprintf.
...
PR: #3786
2000-03-12 15:47:34 +00:00
Andi Gutmans
9dca788ca0
- Don't define DEBUG anymore. Everyone should use PHP_DEBUG.
...
There are 2-3 third-party libs in PHP which use DEBUG and I left them
this way (primary example is pcrelib).
- Please test things and Andrei, can you check that pcrelib stopped
printing the warning messages?
2000-03-11 20:48:49 +00:00
Andi Gutmans
fe558092e4
- Don't load modules which have different debug and ZTS information than
...
PHP() (untested). Not sure how to handle API version. Should it also not
load? It probably should but it might bite us at some point.
@ Prevent from loading dynamic PHP modules which were compiled with different
debug and thread safety modes than PHP, which resulted in a crash (Andi)
2000-03-11 16:23:30 +00:00
Andi Gutmans
2d2c494970
- Thies, it is crucial :)
2000-03-07 15:50:51 +00:00
Sam Ruby
57f3e61220
Unresolved external php_if_ftruncate on Win32
2000-03-07 14:41:33 +00:00
Sam Ruby
ec8add1a4c
Only define crypt if it is present
2000-03-07 12:28:06 +00:00
Andrei Zmievski
ae11f08d69
Can't believe it hasn't been done yet.
2000-03-07 04:28:43 +00:00
Thies C. Arntzen
3b6d718f18
(php: dl) fixed MAXPATHLEN bug
...
# now it's /* SAFE */ !
2000-03-07 03:43:03 +00:00
Stig Bakken
99e0b36321
@Cleaned up extension namespace (Stig)
...
Cleaned up extension namespace, and changed ext/standard into one single
extension.
2000-03-06 20:37:11 +00:00
Stig Bakken
d02fe90b00
Change extension names in all extensions' zend_module_entry to their
...
directory name.
2000-03-06 18:44:01 +00:00
Egon Schmid
0beaaa9356
Hartmut don't touch protos. Only two lines are allowed.
2000-03-06 16:01:54 +00:00
Hartmut Holzgraefe
36abfe1121
off-by-one error (bug id #3741 ) fixed
2000-03-06 15:32:05 +00:00
Andrei Zmievski
b4b82e05d8
Remove warning.
2000-03-05 04:25:12 +00:00
Andrei Zmievski
b1de472ba3
Don't need this check.
2000-03-04 19:26:27 +00:00
Andrei Zmievski
0e18779e8b
@Added ip2long() and long2ip() courtesy of Faisal Nasim <faisal@nasim.org>
2000-03-04 17:28:16 +00:00
Andrei Zmievski
5610800a7b
@Added ftruncate() and fstat(), courtesy of Faisal Nasim <faisal@nasim.org>
2000-03-04 17:23:03 +00:00
Sascha Schumann
365f379435
Don't export Lookahead
2000-03-04 14:22:15 +00:00
Zeev Suraski
d34b144061
@- Added parse_ini_file(). Currently implemented in non thread safe version
...
@ of PHP, and currently lacks section support (Zeev)
- Bring the non thread safe .dsp's uptodate
2000-03-04 02:59:14 +00:00
Egon Schmid
70893ff7af
Only two lines are allowed here.
2000-03-01 19:56:46 +00:00
Hartmut Holzgraefe
33cb181af2
round(-0.1) will now return 0 instead of -0
2000-03-01 19:36:37 +00:00
Andrei Zmievski
4c7af667a7
Made php_escape_html_entities() as a separate function for export.
2000-02-29 04:38:14 +00:00
Andi Gutmans
e45c1af8b4
- Hopefully fix browscap problem
2000-02-27 20:23:31 +00:00
Zeev Suraski
1261271839
Allow the INI callbacks to know at what stage PHP is
2000-02-26 15:36:23 +00:00
Zeev Suraski
fd344d3602
@- Added ini_set() as an alias to ini_alter() (Zeev)
2000-02-26 14:53:18 +00:00
Zeev Suraski
bf5cb890b0
- Convert 'PHP3' to 'PHP'
...
- Avoid declaring crypt() related salt types twice
2000-02-26 03:20:55 +00:00
Stig Bakken
d23e5d837a
@- Implemented default_charset and default_mimetype config directives (Stig)
...
Implemented default_charset and default_mimetype configuration directives.
Started implementing ticks in PHP.
2000-02-25 21:27:03 +00:00
Zeev Suraski
99d572ad14
Make 4-diogit date RFC 2068 compliant
2000-02-25 16:45:52 +00:00
Egon Schmid
10f52b4805
Breaks funclist.txt
2000-02-25 11:28:41 +00:00
Egon Schmid
284491887f
There are more '|' and should be mixed.
2000-02-24 15:06:33 +00:00
Egon Schmid
c07b5282af
More protos.
2000-02-24 14:43:53 +00:00
Andrei Zmievski
c401bbe22e
Fix proto.
2000-02-24 14:07:35 +00:00
Egon Schmid
0275e4f665
Will watch the diffs as much as I can.
2000-02-24 10:11:42 +00:00
Thies C. Arntzen
88b903da66
zorro does a Z - egon does an e?
2000-02-24 09:32:50 +00:00
Egon Schmid
fe615efb5c
More protos.
2000-02-24 08:39:02 +00:00
Egon Schmid
7da7a50c69
More protos.
2000-02-24 08:07:29 +00:00
Egon Schmid
3b5efa05f7
More protos.
2000-02-24 07:49:43 +00:00
Egon Schmid
dcf5f1a8d5
Most functions don't have protos.
2000-02-24 07:46:56 +00:00
Zeev Suraski
b82f261918
Fix name
2000-02-23 22:50:57 +00:00
Zeev Suraski
6981775d23
Remove obsolete code
2000-02-23 21:52:23 +00:00
Stig Bakken
b275477b76
(PHP getrusage) don't define this function at all if the getrusage() function
...
is not available on the system.
2000-02-23 21:37:43 +00:00
Sascha Schumann
027512320f
Include <sys/types.h> and <sys/time.h> before <sys/resource.h>
2000-02-23 17:39:58 +00:00
Sascha Schumann
53e1ea7728
php.h should be the first file included, so that HAVE_* are defined
2000-02-23 15:44:02 +00:00
Sascha Schumann
21ca719293
Include <sys/resource.h> for getrusage(2)
...
PR: #3479
2000-02-23 14:13:34 +00:00
Andrei Zmievski
98674b73bd
(PHP exec) Return last line of output properly.
2000-02-22 18:00:32 +00:00
Chuck Hagenbuch
13f27d8063
being accountable for the imap and mcal work that I've done (and adding an
...
MCAL credits line)
2000-02-21 14:50:41 +00:00
Andrew Skalski
b99722ddf5
added myself to the FTP/IMAP credits
2000-02-21 14:35:28 +00:00
Zeev Suraski
86fa2aade2
the pipe is breaking all the time
2000-02-19 23:41:32 +00:00
Zeev Suraski
739bdec582
Worked on beautifying rfc1867.c a bit
...
@- Introduced $HTTP_POST_FILES[], that contains information about files uploaded
@ through HTTP upload (Zeev)
2000-02-19 20:12:26 +00:00
Zeev Suraski
f1dac01f11
- Fix some issues with the ISAPI module, made it friendlier to non Win32 platforms
...
- Added .reg file for PWS setup
- Reordered some stuff in phpinfo()
2000-02-18 17:59:44 +00:00
Zeev Suraski
75b1316e70
@- Updated the browscap module to work with PHP 4.0 (Zeev)
2000-02-16 17:46:14 +00:00
Thies C. Arntzen
9819391442
(url_parse) only free regex if compile worked.
2000-02-16 11:47:20 +00:00
Thies C. Arntzen
1fae341a98
(url_parse) fix memory leak ( #3495 )
2000-02-16 11:41:49 +00:00
Andrei Zmievski
f71098906b
Fix for filesize() and others on sockets.
2000-02-14 14:18:17 +00:00
Andi Gutmans
bac7a5085e
- Not sure if len can be zero but it's better to check it once then
...
rechecking for it every loop and having an extra variable do nothing.
2000-02-13 15:59:32 +00:00
Andi Gutmans
7441ee5175
- Beautify a bit.
2000-02-13 15:56:07 +00:00
Zeev Suraski
6ae0902498
- Hopefully fix strip_tags bug
...
@- Fix overrun in strip_tags (Stas, Zend library)
2000-02-13 15:35:51 +00:00
Thies C. Arntzen
017a6353d1
@- Fixed crash in strip_tags() and related functions. (Thies)
2000-02-13 14:56:35 +00:00
Zeev Suraski
003ef1aa74
Trap bailout of shutdown functions
2000-02-13 00:26:54 +00:00
Andrei Zmievski
a60e91b313
(request_shutdown) Prevent infinite loop on shutdown if there is an error
...
in shutdown function.
(php_array_walk) Print a warning if the walk function doesn't exist.
Split shutdown function call into a separate function that's called with
zend_hash_apply() instead of as destructor to keep hash consistent.
This fixes bug #3419 .
2000-02-11 21:14:42 +00:00
Andrei Zmievski
0f4b9aa812
Fix prototype.
2000-02-11 19:19:06 +00:00
Andrei Zmievski
055645b079
(PHP passthru) Shouldn't return anything.
...
This fixes bugs #3428 and #3430 .
2000-02-11 19:16:36 +00:00
Zeev Suraski
80bdd19e03
Fine tune Andi's patch
2000-02-11 15:59:30 +00:00
Andi Gutmans
29280bb9ec
- Get rid of some more evil MSVC5's and switch standard/ to use PHP_WIN32
2000-02-10 21:53:56 +00:00
Zeev Suraski
6d0ab6166c
SAPIfication, Episode VI: Return of the SAPI
...
Remove mostly all references to APACHE and CGI_BINARY from the code.
- Apache include files are no longer included by any PHP code, except for the Apache SAPI module.
- No server specific code is in any of the base PHP code.
Still left to be done:
- Eliminate any references to APACHE from the few remaining modules.
- Move request_info.c's logic to SAPI
- Modify the regex function names, and globals, so that we can always
include them, without having to fear any interference with Apache;
Always use the bundled regex library
2000-02-10 19:41:21 +00:00
Zeev Suraski
41f6bca92f
More cleanup!
2000-02-10 18:19:04 +00:00
Zeev Suraski
0fd89aa20d
More cleanup - move getenv() to SAPI
2000-02-10 17:55:01 +00:00
Thies C. Arntzen
4a824eb8cb
@- Added NULL-support in gettype(). (Thies)
2000-02-10 15:51:50 +00:00
Thies C. Arntzen
c59c663619
@- base64_decode() will decode POST data correct. (Thies)
...
@ Patch submitted by: Turadg Aleahmad <turadg@wise.berkeley.edu>
2000-02-10 09:44:22 +00:00
Zeev Suraski
2460569ccb
Change string->str where possible; string is basic a C++ class, so gdb can't look
...
inside variables named 'string'.
2000-02-08 22:21:43 +00:00
Zeev Suraski
489b705d4b
@- Fixed memory corruption in fgetss(), strip_tags() and gzgetss() (Zeev)
2000-02-08 21:29:18 +00:00
Thies C. Arntzen
de0774041c
@- Made the output of var_dump() more informative. (Thies)
2000-02-07 18:00:16 +00:00
Thies C. Arntzen
90ac20ebb5
@- Fixed possible buffer-overflow in base64_decode. (Thies)
...
fix #3226
2000-02-06 15:18:59 +00:00
Thies C. Arntzen
59e466d54c
fix for #3413
...
@- Fixed possible buffer-overflow in setcookie(). (Thies)
2000-02-06 14:36:27 +00:00
Zeev Suraski
c630fe664f
Standardize
2000-02-05 22:58:59 +00:00
Zeev Suraski
c12aa454ff
Compile fixes
2000-02-05 15:44:20 +00:00
Zeev Suraski
3a816341f9
Cleanup patches
2000-02-05 15:16:12 +00:00
Zeev Suraski
8055da9830
Use the new state functions
...
@- If header information is sent after output has already been sent, the warning
@ message will now state the filename and line number at which the first output
@ was made (Zeev)
2000-02-04 14:54:30 +00:00
Andrei Zmievski
1a4e39838f
(PHP wddx_deserialize) Fixed a problem with deserializing empty values.
...
(php_addslashes) Guard against NULL data.
2000-02-02 21:53:27 +00:00
Andrei Zmievski
0c535aa355
(php_sock_fgets) Respect timeout event.
2000-02-02 18:00:44 +00:00
Andrei Zmievski
1258fbb077
Some rearranging.
2000-02-02 14:15:46 +00:00
Thies C. Arntzen
3ccff40306
use FREE_ZVAL where appropiate
2000-02-02 11:31:37 +00:00
Andrei Zmievski
83a0278171
Not needed.
2000-02-01 22:17:06 +00:00
Zeev Suraski
c47452f729
Compile fix
2000-02-01 22:13:13 +00:00
Andrei Zmievski
a753430fb9
- Implemented socket_get_status() function. Some more stuff can be added
...
to it in the future.
- Renamed set_socket_timeout() to socket_set_timeout()
- Renamed set_socket_blocking() to socket_set_blocking() but kept the
old name for compatibility. It now outputs a warning that
set_socket_timeout() is deprecated but still goes through.
@ Added socket_get_status() function. Renamed:
@ set_socket_timeout() -> socket_set_timeout()
@ set_socket_blocking() -> socket_set_blocking(). (Andrei)
2000-02-01 20:02:44 +00:00
Andrei Zmievski
91bb21c522
Implemented realpath().
...
@ Added realpath() function. (Andrei)
2000-02-01 06:06:03 +00:00
Zeev Suraski
86a19f4714
Add the complement to the putenv() security
2000-01-31 22:31:00 +00:00
Sascha Schumann
f8e1457be0
(PHP mktime) Added windowing support for 0..70
...
@- mktime interprets years in the range 0-70 now as 2000-2070. You can
@ continue to specify the complete year (i.e. 1920) (Sascha)
2000-01-31 17:22:17 +00:00
Zeev Suraski
53a0d6fb9d
Fix typo
2000-01-30 22:14:58 +00:00
Zeev Suraski
5540028340
@- Added the ability to prevent the user from overriding certain environment
...
@ variables in Safe Mode (Zeev)
- Finished work, more or less
2000-01-30 22:10:30 +00:00
Zeev Suraski
01362974d6
Some more work, I'll finish this when I get home
2000-01-30 20:49:16 +00:00
Zeev Suraski
430571d62c
Initial work on the protected env vars stuff
2000-01-30 20:31:41 +00:00
Zeev Suraski
8a2f6c5e60
@- Fixed a crash bug in strtr() working on large input strings (Zeev)
2000-01-29 17:54:30 +00:00
Zeev Suraski
9ab35ae393
Tried to centralize global variable registration as much as possible:
...
- Added $HTTP_ENV_VARS[] and $HTTP_SERVER_VARS[] support, which similarly
to $HTTP_GET_VARS[], contain environment and server variables. Setting
register_globals to Off will now also prevent registration of the
environment and server variables into the global scope (Zeev)
- Renamed gpc_globals to register_globals (Zeev)
- Introduced variables_order that deprecates gpc_order, and allows control
over the server and environment variables, in addition to GET/POST/Cookies
(Zeev)
2000-01-28 17:24:53 +00:00
Zeev Suraski
fc678100cd
post.c really had nothing to do with POST anymore, and it belongs to the top level directory
2000-01-28 13:31:12 +00:00
Zeev Suraski
3a35a6955d
Get rid of the old implementation
2000-01-28 12:53:05 +00:00
Zeev Suraski
4b006cb8b0
This doesn't seem to be necessary, and causes a leak in case of output_buffering=on
2000-01-18 22:25:48 +00:00
Zeev Suraski
62114c1806
Destructors no longer return ints, the low level problem it was intended to solve is long gone now...
2000-01-17 17:33:37 +00:00
Andrei Zmievski
2fc0dac01e
(php_sockwait_for_data) timeout is not assigned yet, so check the right one.
2000-01-15 20:39:06 +00:00
Sascha Schumann
44a712d810
(php_sockwait_for_data) clean up
2000-01-15 19:51:44 +00:00
Andrei Zmievski
bfc85c288a
Fix prototype.
2000-01-15 19:42:40 +00:00
Andrei Zmievski
4423bf9d10
Added ability to set timeout on socket read operations. New function
...
set_socket_timeout(socket, seconds, microseconds) sets the timeout.
@- Added ability to set timeout on socket read operations through
@ set_socket_timeout() function. (Andrei)
2000-01-15 19:41:17 +00:00
Zeev Suraski
a0591b32c7
Fix logic
2000-01-15 17:23:18 +00:00
Sascha Schumann
b83739945e
Initialize flag correctly
2000-01-15 17:16:21 +00:00
Zeev Suraski
3f74baed02
Woops, forgot to commit the right version of the file...
2000-01-13 17:54:51 +00:00
Zeev Suraski
972631be71
- Added flush() support to SAPI
...
- Got rid of the old flush() implemenetation in favour of the new one
- Added implicit_flush() support to the output buffering layer.
@- Added implicit_flush() to control whether flush() should be called
@ implicitly after any output (Zeev)
2000-01-13 17:37:25 +00:00
Zeev Suraski
736570923d
@- Fixed a crash in pfsockopen() (Zeev)
2000-01-10 19:56:23 +00:00
Zeev Suraski
8acd3e3818
@- Fixed a possible crash in phpinfo() (Zeev)
...
phpinfo() now ensures that HTTP_*_VARS[] are actually arrays before it tries
to access them...
2000-01-09 18:32:13 +00:00
Thies C. Arntzen
48e10ec9c4
@- Applied safe-mode patch to popen(). (Patch by Kristian Köhntopp)
2000-01-06 15:27:03 +00:00
Jouni Ahto
9a07df6c4a
(php_setlocale) Fixed memory leak (bug #3105 ).
...
# Must have been thinking something else when originally wrote this.
2000-01-05 12:26:41 +00:00
Andi Gutmans
60841f1231
- Separate the overloaded objects' types from Zend's data types.
...
There is no reason for them to be the same, and IS_METHOD just cluttered
the data types.
- Overloaded elements should now use OE_IS_OBJECT, OE_IS_ARRAY, and
OE_IS_METHOD
2000-01-04 13:56:13 +00:00
Andi Gutmans
bdefd5da15
- Change IS_UNSET -> IS_NULL
2000-01-04 13:22:58 +00:00
Thies C. Arntzen
402a9db2fe
@- str_repeat() now returns correct length. (Thies)
2000-01-04 09:45:28 +00:00
Thies C. Arntzen
953bf8bbf6
(var_dump, serialize, unserialize) support NULL
...
@- Added new NULL constant (Zeev, Zend library)
2000-01-02 11:49:27 +00:00
Sascha Schumann
890c1de998
Remove second (equal) definition of isleap()
2000-01-01 20:50:37 +00:00
Sascha Schumann
2fd8cbff2a
Declare timezone only, if the system fails to do so.
2000-01-01 02:22:01 +00:00
Sascha Schumann
43ae2bffbb
Happy Y2K patch! Happy new year (or the new millennium, depending on whether
...
you start counting at 0 or 1).
2000-01-01 01:32:05 +00:00
Zeev Suraski
ccb4b18348
Happy new year (especially to Thies :)
...
- Zend branch patches merged in - get the PHP tree uptodate
- Clean
1999-12-31 14:06:31 +00:00
Sascha Schumann
cf5a5fb1dd
Whoops, defining them to empty values generates many parse errors.
...
Defaulting to 1.
1999-12-30 04:52:19 +00:00
Sascha Schumann
2c99bef442
Get rid of config.h.stub. Note that you should embed a comment about
...
what the respective define does into the AC_DEFINE macro. I.e.
AC_DEFINE(HAVE_FOO, 1, [Whether you have FOO])
1999-12-30 04:07:46 +00:00
Sascha Schumann
f2f8d38efa
Integration of -ng changes. Changes:
...
- added support for externally built modules,
- improved support for in-tree shared modules,
- fixed diversion bugs,
- configure displays some informative messages,
- faster static build
(libtool isn't used anymore for compiling non-PIC objects),
- dependencies comparable to automake's without requiring GNU make or GCC,
- working make clean for non-GNU makes.
1999-12-30 02:59:53 +00:00
Sascha Schumann
09d2e3d159
Move include into source file
1999-12-28 18:47:59 +00:00
Sascha Schumann
068596552d
Cache results of crypt capability checks
1999-12-26 22:35:55 +00:00
Zeev Suraski
235386b245
Change ALLOC_ZVAL() semantics
1999-12-26 21:21:33 +00:00
Zeev Suraski
90f1218fbb
- Change uint32 to php_uint32 (PostgreSQL defines uint32, and perhaps other packages too)
...
- PostgreSQL finally compiles&links
1999-12-26 00:18:44 +00:00
Andi Gutmans
d6f788f56a
- Get rid of two warnings
1999-12-25 09:06:55 +00:00
Andi Gutmans
3bf1b04cb4
- Move more stuff to ALLOC_ZVAL(). We need to add those FREE_ZVAL()'s now.
1999-12-24 17:39:27 +00:00
Andi Gutmans
3f6e00e48d
- Use ALLOC_ZVAL() in PHP. Finding the places to put FREE_ZVAL(z) is much
...
more tricky and I'm not sure how many places this is. zval allocations
were only made directly in 11 places.
1999-12-24 15:43:39 +00:00
Thies C. Arntzen
63d0849403
pval->zval
1999-12-23 14:59:01 +00:00
Thies C. Arntzen
a94721fc4c
@- strrev() no longer modifies arg1. (Thies)
1999-12-23 14:55:50 +00:00
Thies C. Arntzen
ec33704c39
@- Fixed buffer overruns in iptcembed(). (Thies)
1999-12-22 14:46:31 +00:00
Sascha Schumann
a2276107ab
Some cleanup
1999-12-21 22:58:04 +00:00
Zeev Suraski
e538fcbf10
@- Fixed a bug in ODBC error reporting (Zeev)
...
@- Added PHP_Logo_GUID() and Zend_Logo_GUID() functions, that return the GUIDs
@ of the PHP and Zend logos used in phpinfo() (Zeev)
1999-12-21 20:35:43 +00:00
Andrei Zmievski
80bab9d939
We're using ZVAL's now.
1999-12-21 17:14:31 +00:00
Thies C. Arntzen
e96c5401f1
commented out select() & friends for now - we need to come up with a good API for those!
1999-12-21 16:51:27 +00:00
Sam Ruby
8a34d1a7e0
Further cleanup as including php.h is no longer harmful
...
- thanks to Sascha for noticing it.
Tested on Linux and WinNT, should work everywhere.
1999-12-21 02:34:20 +00:00
Sascha Schumann
ed0a307ccd
Use sapi_module_struct to contain SAPI module name
1999-12-20 23:09:54 +00:00
Andrei Zmievski
6e1dbe497c
Made quotemeta() binary-safe.
...
@ Made quotemeta() binary-safe. (Andrei)
1999-12-20 20:43:47 +00:00
Andrei Zmievski
1ad5180f28
getParameters -> zend_get_parameters
1999-12-20 17:34:55 +00:00
Zeev Suraski
f455a484bd
Make the Win32 tree compile again
1999-12-20 15:38:44 +00:00
Sascha Schumann
0d70a91b6d
Add information about chosen SAPI module to phpinfo()
1999-12-20 07:12:27 +00:00
Evan Klinger
f5d5637f72
Ex API
1999-12-20 02:09:58 +00:00
Evan Klinger
eb54c032c8
Ex API
1999-12-20 01:23:15 +00:00