[Proftpd-user] Undefined symbols: pr_rehash_register_handler(),
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
---1287620345-910699392-1166431759=:19965
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
This built fine one version ago, proftpd-1.3.0a, using mod_gzipfs, and
mod_md5fs (plus others). Now, with proftpd-1.3.1rc1:
proftpd: symbol lookup error: /usr/libexec/proftpd/mod_md5fs.so: undefined
symbol: pr_rehash_register_handler
In the Changelog I find this, dated in June of 2006, saying it was removed,
yet it worked in proftpd-1.3.0a, released not more than a month ago? I'm
confused.
2006-06-15 17:32 castaglia
* include/proftpd.h, src/main.c:
Remove the deprecated pr_rehash_register_handler() function. This
functionality is now available via the Events API, by registering
an event handler for the 'core.restart' event.
Also, is this then the end of mod_md5fs and mod_gzipfs? They are still listed
on [url]http://www.castaglia.org/proftpd/[/url] with no indication that they no longer
work with current versions.
Aside from that, I can start the server, go to test it, and....
proftpd: 192.168.10.76:4407: USER anonymous: symbol lookup error:
/usr/libexec/proftpd/mod_time.so: undefined symbol: auth_getpwnam
proftpd-1.3.1rc1/modules # grep auth_getpwnam *.c
mod_auth.c: if (!pr_auth_getpwnam(p, u))
mod_auth.c: pw = pr_auth_getpwnam(p, user);
mod_auth_unix.c: * might have been easier if we'd used pr_auth_getpwnam(),
but that would
mod_core.c: pw = pr_auth_getpwnam(cmd->tmp_pool, cmd->argv[1]);
mod_core.c: pw = pr_auth_getpwnam(cmd->tmp_pool, user);
mod_ls.c: pw = pr_auth_getpwnam(cmd->tmp_pool, i ? pbuffer :
session.user);
mod_ls.c: pw = pr_auth_getpwnam(cmd->tmp_pool, i ? pb : session.user);
mod_rcs.c: else if ((pw = auth_getpwnam(cmd->tmp_pool, username)) == NULL)
mod_time.c: if (!name || !(pw = (struct passwd *) auth_getpwnam(p, name)))
{
mod_time.c: if (!name || !(pw = (struct passwd *) auth_getpwnam(p, name)))
{
mod_time.c: if ((pw = auth_getpwnam(cmd->tmp_pool, user)) == NULL)
mod_tls.c: pwd = pr_auth_getpwnam(tmp_pool, user);
mod_wrap.c: pw = pr_auth_getpwnam(cmd->pool, user);
proftpd-1.3.1rc1/modules # grep auth_getpwnam *.c | grep -v pr_auth_getpwnam
mod_rcs.c: else if ((pw = auth_getpwnam(cmd->tmp_pool, username)) == NULL)
mod_time.c: if (!name || !(pw = (struct passwd *) auth_getpwnam(p, name)))
{
mod_time.c: if (!name || !(pw = (struct passwd *) auth_getpwnam(p, name)))
{
mod_time.c: if ((pw = auth_getpwnam(cmd->tmp_pool, user)) == NULL)
Looks like proftpd-1.3.1rc1 uses pr_auth_getpwnam, and some modules never got
changed to pr_auth_getpwnam from auth_getpwnam. But why did it build last
version?
/tmp/proftpd-1.3.0a # rgrep -r auth_getpwnam .
../contrib/mod_tls.c: pwd = pr_auth_getpwnam(tmp_pool, user);
../contrib/mod_wrap.c: pw = pr_auth_getpwnam(cmd->pool, user);
../include/auth.h:struct passwd *pr_auth_getpwnam(pool *, const char *);
../include/compat.h:#define auth_getpwnam pr_auth_getpwnam
../modules/mod_auth.c: if (!pr_auth_getpwnam(p, u))
../modules/mod_auth.c: pw = pr_auth_getpwnam(p, user);
../modules/mod_auth_unix.c: * might have been easier if we'd used pr_auth_getpwnam(), but that would
../modules/mod_core.c: pw = pr_auth_getpwnam(cmd->tmp_pool, cmd->argv[1]);
../modules/mod_core.c: pw = pr_auth_getpwnam(cmd->tmp_pool, user);
../modules/mod_ls.c: pw = pr_auth_getpwnam(cmd->tmp_pool, i ? pbuffer : session.user);
../modules/mod_ls.c: pw = pr_auth_getpwnam(cmd->tmp_pool, i ? pb : session.user);
../src/auth.c:struct passwd *pr_auth_getpwnam(pool *p, const char *name) {
../src/dirtree.c: pw = pr_auth_getpwnam(p, owner);
../src/dirtree.c: pw = pr_auth_getpwnam(p, owner);
../src/fsio.c: pw = pr_auth_getpwnam(p, user);
../src/support.c: pw = pr_auth_getpwnam(p, user);
/tmp/proftpd-1.3.0a # cd ..
/tmp # cd proftpd-1.3.1rc1/include
proftpd-1.3.1rc1/include # grep pr_auth_getpwnam compat.h
proftpd-1.3.1rc1/include # cd ../../proftpd-1.3.0a/include
proftpd-1.3.0a/include # grep pr_auth_getpwnam compat.h
#define auth_getpwnam pr_auth_getpwnam
Looks like it got taken from compat.h in between versions proftpd-1.3.0a and
proftpd-1.3.1rc1, but never mentioned anywhere that I see. So this should
effect everything using auth_getpwnam, at least mod_rcs and mod_time that I've
noticed (the modules affected that I was building).
The patches in attached auth_getpwnam-patches.shar fix this for me,
the pr_rehash_register_handler() problem I'm not sure how to fix.
--
Linux 2.6.19 on Pentium II (Klamath) up 31.30
Linux 2.6.19 on Intel(R) Pentium(R) 4 CPU 2.80GHz up 30.01
Minix 2.0.4 (currently offline)
---1287620345-910699392-1166431759=:19965
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=auth_getpwnam-patches.shar
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.64.0612180349190.19965@nge2.ngu.pk>
Content-Description: auth_getpwnam-patches.shar
Content-Disposition: attachment; filename=auth_getpwnam-patches.shar
U3VibWl0dGVkLWJ5OiBqYXlqd2FAYXRyMi5hdGguY3gNCkFyY2hpdmUtbmFt
ZTogYXV0aF9nZXRwd25hbS1wYXRjaGVzLnNoYXIvcGFydDAxDQoNCi0tLS0g
Q3V0IEhlcmUgYW5kIGZlZWQgdGhlIGZvbGxvd2luZyB0byBzaCAtLS0tDQoj
IS9iaW4vc2gNCiMgVGhpcyBpcyBhdXRoX2dldHB3bmFtLXBhdGNoZXMuc2hh
ciwgYSBzaGVsbCBhcmNoaXZlIChwcm9kdWNlZCBieSBHTlUgc2hhcnV0aWxz
IDQuNi4yKS4NCiMgVG8gZXh0cmFjdCB0aGUgZmlsZXMgZnJvbSB0aGlzIGFy
Y2hpdmUsIHNhdmUgaXQgdG8gc29tZSBGSUxFLCByZW1vdmUNCiMgZXZlcnl0
aGluZyBiZWZvcmUgdGhlIGAjIS9iaW4vc2gnIGxpbmUgYWJvdmUsIHRoZW4g
dHlwZSBgc2ggRklMRScuDQojDQpsb2NrX2Rpcj1fc2gwMDUyMg0KIyBNYWRl
IG9uIDIwMDYtMTItMTcgMjI6NTQgRVNUIGJ5IDxqYXlqd2FAYXRyMi5hdGgu
Y3g+Lg0KIyBTb3VyY2UgZGlyZWN0b3J5IHdhcyBgL3RtcCcuDQojDQojIEV4
aXN0aW5nIGZpbGVzIHdpbGwgKm5vdCogYmUgb3ZlcndyaXR0ZW4sIHVubGVz
cyBgLWMnIGlzIHNwZWNpZmllZC4NCiMNCiMgVGhpcyBzaGFyIGNvbnRhaW5z
Og0KIyBsZW5ndGggbW9kZSAgICAgICBuYW1lDQojIC0tLS0tLSAtLS0tLS0t
LS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KIyAgICAzMTcgLXJ3LXItLXItLSBwcm9mdHBkLW1vZF9yY3MtYXV0aF9n
ZXRwd25hbS5wYXRjaC5neg0KIyAgICA0NzcgLXJ3LXItLXItLSBwcm9mdHBk
LW1vZF90aW1lLWF1dGhfZ2V0cHduYW0ucGF0Y2guZ3oNCiMNCk1ENVNVTT0k
e01ENVNVTS1tZDVzdW19DQpmPWAke01ENVNVTX0gLS12ZXJzaW9uIHwgZWdy
ZXAgJ15tZDVzdW0gLiooY29yZXx0ZXh0KXV0aWxzJ2ANCnRlc3QgLW4gIiR7
Zn0iICYmIG1kNWNoZWNrPXRydWUgfHwgbWQ1Y2hlY2s9ZmFsc2UNCiR7bWQ1
Y2hlY2t9IHx8IFwNCiAgZWNobyAnTm90ZTogbm90IHZlcmlmeWluZyBtZDVz
dW1zLiAgQ29uc2lkZXIgaW5zdGFsbGluZyBHTlUgY29yZXV0aWxzLicNCnNh
dmVfSUZTPSIke0lGU30iDQpJRlM9IiR7SUZTfToiDQpnZXR0ZXh0X2Rpcj1G
QUlMRUQNCmxvY2FsZV9kaXI9RkFJTEVEDQpmaXJzdF9wYXJhbT0iJDEiDQpm
b3IgZGlyIGluICRQQVRIDQpkbw0KICBpZiB0ZXN0ICIkZ2V0dGV4dF9kaXIi
ID0gRkFJTEVEICYmIHRlc3QgLWYgJGRpci9nZXR0ZXh0IFwNCiAgICAgJiYg
KCRkaXIvZ2V0dGV4dCAtLXZlcnNpb24gPi9kZXYvbnVsbCAyPiYxKQ0KICB0
aGVuDQogICAgY2FzZSBgJGRpci9nZXR0ZXh0IC0tdmVyc2lvbiAyPiYxIHwg
c2VkIDFxYCBpbg0KICAgICAgKkdOVSopIGdldHRleHRfZGlyPSRkaXIgOzsN
CiAgICBlc2FjDQogIGZpDQogIGlmIHRlc3QgIiRsb2NhbGVfZGlyIiA9IEZB
SUxFRCAmJiB0ZXN0IC1mICRkaXIvc2hhciBcDQogICAgICYmICgkZGlyL3No
YXIgLS1wcmludC10ZXh0LWRvbWFpbi1kaXIgPi9kZXYvbnVsbCAyPiYxKQ0K
ICB0aGVuDQogICAgbG9jYWxlX2Rpcj1gJGRpci9zaGFyIC0tcHJpbnQtdGV4
dC1kb21haW4tZGlyYA0KICBmaQ0KZG9uZQ0KSUZTPSIkc2F2ZV9JRlMiDQpp
ZiB0ZXN0ICIkbG9jYWxlX2RpciIgPSBGQUlMRUQgfHwgdGVzdCAiJGdldHRl
eHRfZGlyIiA9IEZBSUxFRA0KdGhlbg0KICBlY2hvPWVjaG8NCmVsc2UNCiAg
VEVYVERPTUFJTkRJUj0kbG9jYWxlX2Rpcg0KICBleHBvcnQgVEVYVERPTUFJ
TkRJUg0KICBURVhURE9NQUlOPXNoYXJ1dGlscw0KICBleHBvcnQgVEVYVERP
TUFJTg0KICBlY2hvPSIkZ2V0dGV4dF9kaXIvZ2V0dGV4dCAtcyINCmZpDQpp
ZiAoZWNobyAidGVzdGluZ1xjIjsgZWNobyAxLDIsMykgfCBncmVwIGMgPi9k
ZXYvbnVsbA0KdGhlbiBpZiAoZWNobyAtbiB0ZXN0OyBlY2hvIDEsMiwzKSB8
IGdyZXAgbiA+L2Rldi9udWxsDQogICAgIHRoZW4gc2hhcl9uPSBzaGFyX2M9
Jw0KJw0KICAgICBlbHNlIHNoYXJfbj0tbiBzaGFyX2M9IDsgZmkNCmVsc2Ug
c2hhcl9uPSBzaGFyX2M9J1xjJyA7IGZpDQpmPXNoYXItdG91Y2guJCQNCnN0
MT0yMDAxMTIzMTIzNTkuNTkNCnN0Mj0xMjMxMjM1OTIwMDEuNTkNCnN0MnRy
PTEyMzEyMzU5MjAwMS41ICMgb2xkIFN5c1YgMTQtY2hhciBsaW1pdA0Kc3Qz
PTEyMzEyMzU5MDENCg0KaWYgdG91Y2ggLWFtIC10ICR7c3QxfSAke2Z9ID4v
ZGV2L251bGwgMj4mMSAmJiBcDQogICB0ZXN0ICEgLWYgJHtzdDF9ICYmIHRl
c3QgLWYgJHtmfTsgdGhlbg0KICBzaGFyX3RvdWNoPSd0b3VjaCAtYW0gLXQg
JDEkMiQzJDQkNSQ2LiQ3ICIkOCInDQoNCmVsaWYgdG91Y2ggLWFtICR7c3Qy
fSAke2Z9ID4vZGV2L251bGwgMj4mMSAmJiBcDQogICB0ZXN0ICEgLWYgJHtz
dDJ9ICYmIHRlc3QgISAtZiAke3N0MnRyfSAmJiB0ZXN0IC1mICR7Zn07IHRo
ZW4NCiAgc2hhcl90b3VjaD0ndG91Y2ggLWFtICQzJDQkNSQ2JDEkMi4kNyAi
JDgiJw0KDQplbGlmIHRvdWNoIC1hbSAke3N0M30gJHtmfSA+L2Rldi9udWxs
IDI+JjEgJiYgXA0KICAgdGVzdCAhIC1mICR7c3QzfSAmJiB0ZXN0IC1mICR7
Zn07IHRoZW4NCiAgc2hhcl90b3VjaD0ndG91Y2ggLWFtICQzJDQkNSQ2JDIg
IiQ4IicNCg0KZWxzZQ0KICBzaGFyX3RvdWNoPToNCiAgZWNobw0KICAke2Vj
aG99ICdXQVJOSU5HOiBub3QgcmVzdG9yaW5nIHRpbWVzdGFtcHMuICBDb25z
aWRlciBnZXR0aW5nIGFuZCcNCiAgJHtlY2hvfSAnaW5zdGFsbGluZyBHTlUg
YHRvdWNoJ1wnJywgZGlzdHJpYnV0ZWQgaW4gR05VIEZpbGUgVXRpbGl0aWVz
Li4uJw0KICBlY2hvDQpmaQ0Kcm0gLWYgJHtzdDF9ICR7c3QyfSAke3N0MnRy
fSAke3N0M30gJHtmfQ0KIw0KaWYgdGVzdCAhIC1kICR7bG9ja19kaXJ9DQp0
aGVuIDogOyBlbHNlICR7ZWNob30gJ2xvY2sgZGlyZWN0b3J5ICcke2xvY2tf
ZGlyfScgZXhpc3RzJw0KICBleGl0IDENCmZpDQppZiBta2RpciAke2xvY2tf
ZGlyfQ0KdGhlbiAke2VjaG99ICd4IC0gY3JlYXRlZCBsb2NrIGRpcmVjdG9y
eSBgJyR7bG9ja19kaXJ9XCcnLicNCmVsc2UgJHtlY2hvfSAneCAtIGZhaWxl
ZCB0byBjcmVhdGUgbG9jayBkaXJlY3RvcnkgYCcke2xvY2tfZGlyfVwnJy4n
DQogIGV4aXQgMQ0KZmkNCiMgPT09PT09PT09PT09PSBwcm9mdHBkLW1vZF9y
Y3MtYXV0aF9nZXRwd25hbS5wYXRjaC5neiA9PT09PT09PT09PT09PQ0KaWYg
dGVzdCAtZiAncHJvZnRwZC1tb2RfcmNzLWF1dGhfZ2V0cHduYW0ucGF0Y2gu
Z3onICYmIHRlc3QgIiRmaXJzdF9wYXJhbSIgIT0gLWM7IHRoZW4NCiAgJHtl
Y2hvfSAneCAtU0tJUFBJTkcgcHJvZnRwZC1tb2RfcmNzLWF1dGhfZ2V0cHdu
YW0ucGF0Y2guZ3ogKGZpbGUgYWxyZWFkeSBleGlzdHMpJw0KZWxzZQ0KJHtl
Y2hvfSAneCAtIGV4dHJhY3RpbmcgcHJvZnRwZC1tb2RfcmNzLWF1dGhfZ2V0
cHduYW0ucGF0Y2guZ3ogKGJpbmFyeSknDQogIHNlZCAncy9eWC8vJyA8PCAn
U0hBUl9FT0YnIHwgdXVkZWNvZGUgJiYNCmJlZ2luIDYwMCBwcm9mdHBkLW1v
ZF9yY3MtYXV0aF9nZXRwd25hbS5wYXRjaC5neg0KTSdYTCgiLUAvQUQ0ImBX
IVI7VjlUPCYwTTs2XUQ3VylDPFJVQT03MUg3Vj1FPSchVztGJU0rRyFBPSYt
SA0KTWApNi40NE4kMCEyJUdZTT88MS1CJTFUO0sxMTwjKkU9KE1BNlYsNT5B
VFRHRFcxRjwhMz9eTlRbWURLMA0KTV1NKV0uNyNPLj1eWSYmLUgxJCc7NyVW
P1UsVT1UNTtFQTRdKEAjVD8+UidYP0cwOzEiMVBSM1JgUjFUQQ0KTVIrO01c
X0NPOSFBWVg1RFIyMCM/PigkM0BDVSlEQmA4SVdIJ1xVKVU7PVkoTFU+TFk4
PiYuNiFcJjk4VQ0KTSYwIVQiUVUvNTAkUSoqOTQpO0M7NVw0MmA8KkNAPTYq
PzgtLC42QytIPlxeOixEWi42QjhGMzwlT05cOg0KTTI6NDBNMC1TQVY1IScs
LFZWVlBMOS9cIUQyV10tXj9US1hbNkhKMCU+Xk0rPFs1XlIpWihgUl9JQk5Y
Pg0KTV1fMVVPPUxfSVVMUChOQ1kpUTwjIVtXLi0iVD0uJk1BPDo0NkFDLkNY
Kj1HLj5XJi1dJDE0JUEkXSw8IQ0KImBgIVUNCmANCmVuZA0KU0hBUl9FT0YN
CiAgKHNldCAyMCAwNiAxMiAxNyAyMiA0OSA0NCAncHJvZnRwZC1tb2RfcmNz
LWF1dGhfZ2V0cHduYW0ucGF0Y2guZ3onOyBldmFsICIkc2hhcl90b3VjaCIp
ICYmDQogIGNobW9kIDA2NDQgJ3Byb2Z0cGQtbW9kX3Jjcy1hdXRoX2dldHB3
bmFtLnBhdGNoLmd6Jw0KaWYgdGVzdCAkPyAtbmUgMA0KdGhlbiAke2VjaG99
ICdyZXN0b3JlIG9mIHByb2Z0cGQtbW9kX3Jjcy1hdXRoX2dldHB3bmFtLnBh
dGNoLmd6IGZhaWxlZCcNCmZpDQogIGlmICR7bWQ1Y2hlY2t9DQogIHRoZW4g
KA0KICAgICAgICR7TUQ1U1VNfSAtYyA+L2Rldi9udWxsIDI+JjEgfHwgJHtl
Y2hvfSAncHJvZnRwZC1tb2RfcmNzLWF1dGhfZ2V0cHduYW0ucGF0Y2guZ3o6
IE1ENSBjaGVjayBmYWlsZWQnDQogICAgICAgKSA8PCBTSEFSX0VPRg0KZjVh
NmUyMGY0MGYyODkwZTkzMDNmMWI2ZGRjYjgzZGQgIHByb2Z0cGQtbW9kX3Jj
cy1hdXRoX2dldHB3bmFtLnBhdGNoLmd6DQpTSEFSX0VPRg0KICBlbHNlDQp0
ZXN0IGBMQ19BTEw9QyB3YyAtYyA8ICdwcm9mdHBkLW1vZF9yY3MtYXV0aF9n
ZXRwd25hbS5wYXRjaC5neidgIC1uZSAzMTcgJiYgXA0KICAke2VjaG99ICdy
ZXN0b3JhdGlvbiB3YXJuaW5nOiAgc2l6ZSBvZiBwcm9mdHBkLW1vZF9yY3Mt
YXV0aF9nZXRwd25hbS5wYXRjaC5neiBpcyBub3QgMzE3Jw0KICBmaQ0KZmkN
CiMgPT09PT09PT09PT09PSBwcm9mdHBkLW1vZF90aW1lLWF1dGhfZ2V0cHdu
YW0ucGF0Y2guZ3ogPT09PT09PT09PT09PT0NCmlmIHRlc3QgLWYgJ3Byb2Z0
cGQtbW9kX3RpbWUtYXV0aF9nZXRwd25hbS5wYXRjaC5neicgJiYgdGVzdCAi
JGZpcnN0X3BhcmFtIiAhPSAtYzsgdGhlbg0KICAke2VjaG99ICd4IC1TS0lQ
UElORyBwcm9mdHBkLW1vZF90aW1lLWF1dGhfZ2V0cHduYW0ucGF0Y2guZ3og
KGZpbGUgYWxyZWFkeSBleGlzdHMpJw0KZWxzZQ0KJHtlY2hvfSAneCAtIGV4
dHJhY3RpbmcgcHJvZnRwZC1tb2RfdGltZS1hdXRoX2dldHB3bmFtLnBhdGNo
Lmd6IChiaW5hcnkpJw0KICBzZWQgJ3MvXlgvLycgPDwgJ1NIQVJfRU9GJyB8
IHV1ZGVjb2RlICYmDQpiZWdpbiA2MDAgcHJvZnRwZC1tb2RfdGltZS1hdXRo
X2dldHB3bmFtLnBhdGNoLmd6DQpNJ1hMKCJgSDBBRDQiYFchUjtWOVQ8JjBN
OzZdRDdXMUk7NjRNODc1VDolXUc5NzFQPVZZQTsyWVA4NzFDDQpNOmAjNURc
VU5WU2AwQSxfVTRUUS5FMlIxRUU3NzNGVFhcKzVgJC4yMkxUIShFIjckJEBG
MkJJKFQjVV9eDQpNUSMnMiYmRk9ZNCUrRDNOU1dgXEQoMDI9SmBLMz1HUVZH
LSIyIk03Tk9eMTlNQjNTRyxRN1IvL1U4S0Y+DQpNX1ojOTw4IURXWy1MREIz
KS44LF9NOk1VX0UmW1ZYJywlXE1UQTIyJFc2WCI4IzslU1FIQzFSN1pLUDgt
DQpNPl4hQEQkU0s0OkAqPTdPQEo9TE4lNj8mO083QEczMS84JEhRXl5US1Iq
JFdVJUVBLkcuQUsxJT1SIycmDQpNS1BHIVw7XUcnPD8rIlJYQi42KisyIUxV
RSI7NEozIi1QMDszJSdNTlkmQTMoWUciKj4rOE4yM19bQik1DQpNXDhEMVBJ
Q05WVEk7Pjw/Tj4+J1s8JkVZIk1UXjxVJSc9S0xQPDtQWVkyTFFSLFw0OTwu
NCs3XjIqJlgmDQpNVTZcIl0sTSsjXVYnLV5AV1BDMU1PWD1JTi4qNFRPXjZY
Si4rOVVAXUFNRTkpLE1PIlg8REEoIyRHVFFTDQpNSzVPMVRUJVNdNTsqUEtI
NTxDQlhaVj1JUDFYWkcjQSVWPyNSJ0s1MF1MSz5XJVU/T1E7IWBTTCxHJ0oy
DQpNKVdKQVZfPi1FNVUlS0RQRyJSRyQoODZPJlYuW102W1FCNUcwP04jUiVf
RltTT1Y6STElNlc8LE03K1pTDQo7TT5VNEBYUi5XMDxTLjkoSy4xOj5eVjtS
JlVVVU1DKFshYGBgDQpgDQplbmQNClNIQVJfRU9GDQogIChzZXQgMjAgMDYg
MTIgMTcgMjIgNTAgMzQgJ3Byb2Z0cGQtbW9kX3RpbWUtYXV0aF9nZXRwd25h
bS5wYXRjaC5neic7IGV2YWwgIiRzaGFyX3RvdWNoIikgJiYNCiAgY2htb2Qg
MDY0NCAncHJvZnRwZC1tb2RfdGltZS1hdXRoX2dldHB3bmFtLnBhdGNoLmd6
Jw0KaWYgdGVzdCAkPyAtbmUgMA0KdGhlbiAke2VjaG99ICdyZXN0b3JlIG9m
IHByb2Z0cGQtbW9kX3RpbWUtYXV0aF9nZXRwd25hbS5wYXRjaC5neiBmYWls
ZWQnDQpmaQ0KICBpZiAke21kNWNoZWNrfQ0KICB0aGVuICgNCiAgICAgICAk
e01ENVNVTX0gLWMgPi9kZXYvbnVsbCAyPiYxIHx8ICR7ZWNob30gJ3Byb2Z0
cGQtbW9kX3RpbWUtYXV0aF9nZXRwd25hbS5wYXRjaC5nejogTUQ1IGNoZWNr
IGZhaWxlZCcNCiAgICAgICApIDw8IFNIQVJfRU9GDQoyYjMwNGYyZWQ2OGYz
NTc1MzYwZDE1ZjMwMDk3ZGRhNiAgcHJvZnRwZC1tb2RfdGltZS1hdXRoX2dl
dHB3bmFtLnBhdGNoLmd6DQpTSEFSX0VPRg0KICBlbHNlDQp0ZXN0IGBMQ19B
TEw9QyB3YyAtYyA8ICdwcm9mdHBkLW1vZF90aW1lLWF1dGhfZ2V0cHduYW0u
cGF0Y2guZ3onYCAtbmUgNDc3ICYmIFwNCiAgJHtlY2hvfSAncmVzdG9yYXRp
b24gd2FybmluZzogIHNpemUgb2YgcHJvZnRwZC1tb2RfdGltZS1hdXRoX2dl
dHB3bmFtLnBhdGNoLmd6IGlzIG5vdCA0NzcnDQogIGZpDQpmaQ0KaWYgcm0g
LWZyICR7bG9ja19kaXJ9DQp0aGVuICR7ZWNob30gJ3ggLSByZW1vdmVkIGxv
Y2sgZGlyZWN0b3J5IGAnJHtsb2NrX2Rpcn1cJycuJw0KZWxzZSAke2VjaG99
ICd4IC0gZmFpbGVkIHRvIHJlbW92ZSBsb2NrIGRpcmVjdG9yeSBgJyR7bG9j
a19kaXJ9XCcnLicNCiAgZXhpdCAxDQpmaQ0KZXhpdCAwDQo=
---1287620345-910699392-1166431759=:19965
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
[url]http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV[/url]
---1287620345-910699392-1166431759=:19965
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
ProFTPD Users List <proftpd-users@proftpd.org>
Unsubscribe problems?
[url]http://www.proftpd.org/list-unsub.html[/url]
---1287620345-910699392-1166431759=:19965--