I've long since moved on to other things since starting this project. If anyone is interested in taking it over and becoming project admin, I'm more than happy to pass the reins. I imagine that making the project PHP5.3-friendlier would be a priority ... but that's not for me to say!
Let me know.
I've been asked lately if the OpenSRS PHP Class is still in active development.
The answer is a bit more complicated.
First, I'm no longer with easyDNS so my need to actively develop the class for my own needs has diminished. However, I'm now working for Tucows (although in a non-domain-related capacity), so I'm not completely uninterested in it anymore. In fact, I think someone here is planning on writing up some documentation for my class.... read more
This version adds support for OpenSRS' SSL POST connection method. Thanks to Jason Slaughter for the code.
I actually had this version packaged and ready to go a few months ago, but never got around to putting it up on Sourceforge. Sorry for the delay.
As always, report bugs to the dev mailing list ... and feel free to donate to the project. It is the holidays, after all! :)
Jason Slaughter at Tucows discovered a small bug with the client today. If you are continually getting "Unrecognized Peer" error messages, this may be the cause of it:
The code relies on the PHP setting for magic_quotes_runtime being turned off. If it's on, then the XML data read from OpenSRS is slash-escaped, which causes the XML parser to barf.
So, if you are experiencing this error, one solution would be to turn magic_quotes_runtime off in your php.ini file, your Apache configuration file, in .htaccess, or by adding:... read more
Minor release (mostly to get some stuff out of the way while I work on version 3.0)
- Updated README to reflect HRS functionality
- exposed HRS_port in the config file, since that port number is different for each HRS customer (thanks to Jason Slaughter)
1) I've added a new environment type, "HRS", and some related properties to the base class. This will make the entire class simple to use if you happen to be using the OpenHRS registry product. This probably doesn't affect very many (if any) users, but take a look at openSRS.php.default to see how to use it.
2) I changed the class constructor so you can pass the protocol (XCP or TPP), instead of requiring a call to setProtocol().... read more
There was a bug in OPS->readData(), where it might not read all of the available data. Thanks to Pat Ekman for the fix.
I've released a patch against OPS.php as released in version 2.7. To apply the patch, download the patch file and run:
patch OPS.php < opensrs-php-2.71.patch
If you can't apply the patch, just download and install the 2.7.1 package. No other changes (except for version numbers) have changed since 2.7.
The major change in version 2.7 is switching the licensing of the class to the LGPL.
There is also a minor change in the logging in base class to handle binary data better.
I will be changing the license of the OpenSRS-PHP class from the GPL to the LGPL.
If anyone has any specific issues with this, please contact me.
A very small modification, which makes using the class easier when the TPP protocol is required (for email and web certs).
Simply initiate your class like so:
$O = new openSRS('LIVE');
And presto, you are set to go.
- add setProtocol() method to make using TPP easier
It seems that PHP 4.3.0 changed the way the fgets() function worked. The result for the class was that when reading a response from the server, the check for "\r\n" failed, because it only read the first character. This is fixed now, and doesn't require any PHP configuration changes.
If you are using this class and PHP 4.3.0, you should upgrade to this latest version, or change line 134 of OPS.php to use fread() instead of fgets().... read more
A minor change, and a semi-major one.
The minor one was some stuff so that the XML version reported by the client matches what the 2.57 Perl client reports. Shouldn't make any difference at all.
The semi-major one is a rewrite (again!) of the XML processing code. I did it to bypass error messages some of you might see when using the class, namely:
PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of array_push(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file.
However, future versions may not support this any longer. in /path/to/opensrs-php/OPS.php on line 338... read more
I seem to be getting this question every two weeks or so, so I thought I'd answer it here.
Yes, the code is still being maintained. There just hasn't been any need to update it lately.
See ... when OpenSRS updates their perl client, it's usually because they've added a new command to the API or changed the templates. Since the PHP client doesn't include templates, and since I removed the client-side check for a valid command, all of those updates are not needed for the PHP client.... read more
It appears that there was a fairly significant memory leak in the Crypt_CBC.php module.
I've made the changes, and released the latest version of the class through the regular PEAR channels.
If you have PEAR installed and configured properly, then a simple:
pear upgrade Crypt_CBC
will work. But it probably won't, because PEAR's upgrade feature isn't working too well right now, so grab the file from the website:... read more
There was a problem in the way the new XML code handled accented characters (e.g. admin contact names, addresses, etc.). This is now fixed.
Note, this has nothing to do with the multilingual domain names.
Just a very minor change to remove some stuff specific to my setup. Enjoy.
Well, I for one was getting tired of tracking all the changes to the DOMXML extension in PHP. Plus, it was leaking memory all over the place.
So, I rewrote parts of the class removing all DOMXML calls and using an expat parser instead.
It seems to work, seems stable and (most importantly) doesn't leak memory.
Take note: this release won't work with PHP 4.1.0 because of a bug in the mcrypt extension (technically, the Crypt_CBC class doesn't work). Upgrade to 4.1.1 when it is released, or stick with 4.0.6 which (I think) should be okay.... read more
I just got word that someone (Arjan Wekking) has written a RACE en/decoding class for PHP. Woo!
As soon as it's tested and ready for use, I will build it into the PHP client. That should then complete the functionality of the PHP client; anything you can do with the Perl client, you can do with this one ... and rumour has it the RACE stuff is much faster in PHP. :)
The only "drawbacks" (I think) are that the RACE class will require atleast PHP 4.0.6, and the GNU Recode library.... read more
It's been a while, eh? Due to some requests from the mailing list, I've decided to roll up another tarball incorporating some of the (major) changes I've made over the last few months. In this release:
1) I re-rewrote the DOMXML code to be compatible with all current and future versions of PHP (hopefully). The DOMXML syntax in PHP is changing, so this release should detect old and new versions of the syntax, and adjust accordingly.... read more
Well, it looks like the DOMXML module in PHP 4.0.5 changed significantly, causing all kinds of problems in parsing the messages from OpenSRS.
I've gone through the code and made the changes required to "fix" the opensrs-php class. However, THIS MEANS THAT THE CVS CODE WILL ONLY WORK WITH PHP 4.0.5!
I will eventually try and build in a switch to determine which version of the domxml code is running, and parse appropriately. But if you are running PHP 4.0.4 or earlier, DON'T USE THE CVS CODE!... read more
Hello all. This is just a quick email with a few announcements about the OpenSRS PHP client project.
NEW MAILING LIST
I've set up a mailing list to track chagnes to the CVS for the project. Why? Well, mainly because I think it's a bit silly to release tarballs for every minor change I make to the code, even if the change improves things (as I was doing with the timeout problems).
Also, if the changes I make are more obvious to you (the users), then it should be simpler for you to either a) make the changes to your source code, b) comment on my changes, or -- best of all -- c) make suggestions for improvement!... read more
I discovered a logic problem in one of the files that was causing a fair number of timeouts. With that fixed, I think we are closer to a final release.
I also, as was mentioned on the mailing list, removed the call-by-reference variables in fsockopen(). I confirmed with the PHP developers that this is no longer needed, and may in fact cause problems with recent versions of PHP.
So, the only major item that is missing from this class is support for Blowfish encryption. Since it hasn't been a serious issue (DES works fine), I haven't had much time to look at it. Anyone who wants to take a crack at it can be my guest. :)... read more
A quick update to version 0.9, this adds in the necessary support into the base class for handling .CA domains.
Keep in mind: all the fancy pre-registration stuff for .CA is handled (mostly) by the .cgi scripts in the OpenSRS Perl client. Since this PHP client was built to (mainly) give you easy access to the OpenSRS API, all of the "coding" to handle .CA domains is still up to you. However, the PHP-based API now has the necessary stuff to let you do that.... read more
I'm back from vacation and back at work on this class.
Version 0.9 is a major rewrite of the base class, mainly to make it compatible with the new XML-based OpenSRS API.
The class also more closely follows the functionality of the Perl modules, which should make integration into existing systems easier, and make my job easier when OpenSRS releases updates to the Perl code.
With the imminent release of a new OpenSRS API, I am going to hold off work on the PHP base class until the specs are released.
From what I gather, the PHP base class will remain pretty much unchanged, since the client and server still go through a similar handshaking routine. Hopefully they will "fix" the CBC encryption problem and let me use the CBC routines in the mcrypt library directly, instead of relying on Mike's "hack" class. :)... read more