Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 03-17-2008, 03:32 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default Database Queries w/ World HTTP Server

So, I was going to try & convert my profile viewer (in PHP) into Perl so that it can be incorporated into the World HTTP Server, but I'm a little stuck.

When I query the character_ table with the following:
Code:
my $q = "SELECT name, profile, level, extprofile FROM character_ WHERE id=".$request->getInt("charid", 0);
my $res = $EQDB->query($q);
if ($res) {
	my $row = $res->fetch_row_hash;
}
and try to access the profile blob via $row->{profile} (as advised in the Wiki), it only returns the first few characters of the blob.

After checking the profile itself, it seems to stop at the first null character (0x00). I guess the question then becomes, what's causing it to stop there? Once I can get that figured out, dissecting the blob will be easy.

Any thoughts?
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #2  
Old 03-29-2008, 11:10 AM
Theeper
Discordant
 
Join Date: May 2004
Posts: 290
Default

Is it stopping before unpacking, or are you saying it fails to unpack ?
Reply With Quote
  #3  
Old 03-30-2008, 10:17 PM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

As far as I can tell, it starts to unpack, but doesn't complete. It stops when it hits the first null character, so I can usually get the first name, but that's about it, since it's padded with nulls.
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #4  
Old 03-31-2008, 06:56 PM
Theeper
Discordant
 
Join Date: May 2004
Posts: 290
Default

If you use the 'A' flag instead of the 'a' flag in your pack template, ascii strings should be space padded (0x20) instead of null padded. I don't know if that will help or not though.

I can't imagine it will be easy to unpack that data correctly. I certainly wouldn't want to write the template by hand.

I thought about using something like this module to convert the profile struct for use in PERL, but I haven't attempted it yet.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 12:46 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3