Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- # Settings
- my $sDatabaseHost='********'; # The hostname of the database server
- my $sDatabaseUser="***********"; # The username to connect to mysql
- my $sDatabasePass='**********'; # The password to connect to mysql
- my $sDatabaseName="***********"; # The name of the database contain the user table
- my $sUserTable="phpbb_users"; # The name of the table containing the username and password
- my $sUsernameTableField="*************"; # The name of the field that holds jabber user names
- my $sPasswordTableField="**********"; # The name of the field that holds jabber passwords
- # Libs
- use DBI;
- use DBD::mysql;
- while(1) {
- my $sBuffer = "";
- my $readBuffer = sysread STDIN,$sBuffer,2;
- my $iBufferLength = unpack "n",$sBuffer;
- my $readBuffer = sysread STDIN,$sBuffer,$iBufferLength;
- my ($sOperation,$sUsername,$sDomain,$sPassword) = split /:/,$sBuffer;
- my $bResult;
- SWITCH: {
- $sOperation eq 'auth' and do {
- $bResult = 0;
- $connect = DBI->connect('DBI:mysql:'.$sDatabaseHost, $sDatabaseName, $sDatabaseUser, $sDatabasePass) || die "Could not connect to database: $DBI::errstr";
- $query = "SELECT $sPasswordTableField FROM $sUserTable WHERE $sUsernameTableField='$sUsername';";
- $statement = $connect->prepare($query);
- $statement->execute();
- while ($row = $statement->fetchrow_hashref()) {
- $sCryptstring = ($sPassword,$row->{$sPasswordTableField});
- if ($row->{$sPasswordTableField} eq $sCryptstring) {
- $bResult = 1;
- }
- }
- },last SWITCH;
- $sOperation eq 'setpass' and do {
- $connect = DBI->connect('DBI:mysql:'.$sDatabaseHost, $sDatabaseName, $sDatabaseUser, $sDatabasePass) || die "Could not connect to database: $DBI::errstr";
- $myquery = "UPDATE $sUserTable SET $sPasswordTableField=ENCRYPT('$sPassword') WHERE $sUsernameTableField='$sUsername';";
- $statement = $connect->prepare($myquery);
- $statement->execute();
- $bResult = 1;
- },last SWITCH;
- $sOperation eq 'isuser' and do {
- $bResult = 0;
- $connect = DBI->connect('DBI:mysql:'.$sDatabaseHost, $sDatabaseName, $sDatabaseUser, $sDatabasePass) || die "Could not connect to database: $DBI::errstr";
- $myquery = "SELECT count(*) AS iCount FROM $sUserTable WHERE $sUsernameTableField='$sUsername';";
- $statement = $connect->prepare($myquery);
- $statement->execute();
- $row = $statement->fetchrow_hashref();
- if($row->{'iCount'} >= 1){
- $bResult = 1;
- }
- },last SWITCH;
- };
- my $sOutput = pack "nn",2,$bResult ? 1 : 0;
- syswrite STDOUT,$sOutput;
- }
- closelog;
- DBI->connect using 'old-style' syntax is deprecated and will be an error in future versions at /etc/ejabberd/phpbbauth.pl line 31
- install_driver(b1gd3al) failed: Can't locate DBD/b1gd3al.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at (eval 3) line 3.
- Perhaps the DBD::b1gd3al perl module hasn't been fully installed,
- or perhaps the capitalisation of 'b1gd3al' isn't right.
- Available drivers: DBM, ExampleP, File, Proxy, Sponge, mysql.
- at /etc/ejabberd/phpbbauth.pl line 31
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement