Following code is virgin from Github
{$IFDEF CIL}
const
{$IFDEF LINUX}
DLLSSLName = 'libssl';
DLLUtilName = 'libcrypto';
{$ELSE}
DLLSSLName = 'ssleay32.dll';
DLLUtilName = 'libeay32.dll';
{$ENDIF}
{$ELSE}
var
{$IFNDEF WIN32}
DLLSSLName: string = 'libssl';
DLLUtilName: string = 'libcrypto';
{$ELSE}
DLLSSLName: string = 'ssleay32.dll';
DLLSSLName2: string = 'libssl32.dll';
DLLUtilName: string = 'libeay32.dll';
{$ENDIF}
{$ENDIF}
{$IFDEF LINUX}
{ ADD NEW ONES WHEN THEY APPEAR!
Always make .so/dylib first, then versions, in descending order!
Add "." .before the version, first is always just "" }
DLLVersions: array[1..10] of string = ('', '.0.9.9'{futureproof
}, '.0.9.8',
'.0.9.7', '.0.9.6', '.0.9.5', '.0.9.4',
'.0.9.3', '.0.9.2', '.0.9.1');
{$ENDIF}
Previously
For anyone else following along I've figured out another big chunk of what was wrong. To start I Googled for the protocol and once found followed along with the connection and what it should look like. You can find out what a Google Talk connection should look like at the low-level here:
https://developers.google.com/cloud-print/docs/rawxmpp