[tpop3d-discuss]Database connection

ohp@pyrenet.fr ohp at pyrenet.fr
Wed, 30 Nov 2005 15:52:51 +0100 (MET)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1483920592-1133362371=:16161
Content-Type: TEXT/PLAIN; charset=US-ASCII

Many thanks Daniel for your help
Attachedc is the patch I made that seems to work quit well
Hope it helps.

Best regards
On Wed, 30 Nov 2005, Daniel Tiefnig wrote:

> Date: Wed, 30 Nov 2005 11:36:09 +0100
> From: Daniel Tiefnig <tpop3d@inode.at>
> To: tpop3d-discuss@lists.beasts.org
> Subject: Re: [tpop3d-discuss]Database connection
>
> ohp@pyrenet.fr wrote:
> > Would  it be hard to add kindda ping to see if connection is alive et
> >  reconnect to it in case not?
>
> Sure not.
>
> > Where should I look to add such a beast?
>
> auth_pgsql.c would be the place to implement this. There are three calls
> to PQexec in this file. (one in each of auth_pgsql_new_apop,
> auth_pgsql_new_user_pass and auth_pgsql_onlogin) You could call
> PQstatus() after a query failed, followed by PQreset() if status is not
> "CONNECTION_OK". After that you may want to retry your query, so this
> could be put into a loop, but take care to don't loop forever. Kind of 3
> retries should be sufficient, with a little sleep between them.
> Maybe it would be the best to put the calls to PQexec() inside a
> function (like "do_PQexec" or something) so this hasn't to be
> implemented three times.
>
> If you need help to implement this, feel free to ask. I don't have much
> spare time at the moment, but I'll do what I can.
>
> The pgsql C API is explained at
> http://www.postgresql.org/docs/7.4/interactive/libpq.html
> It has lots of usefull information and also some sample programs.
>
>
> lg,
> daniel
>
> _______________________________________________
> tpop3d-discuss mailing list
> tpop3d-discuss@lists.beasts.org
> http://lists.beasts.org/mailman/listinfo/tpop3d-discuss
>
>

-- 
Olivier PRENANT        	        Tel: +33-5-61-50-97-00 (Work)
15, Chemin des Monges                +33-5-61-50-97-01 (Fax)
31190 AUTERIVE                       +33-6-07-63-80-64 (GSM)
FRANCE                          Email: ohp@pyrenet.fr
------------------------------------------------------------------------------
Make your life a dream, make your dream a reality. (St Exupery)
---559023410-1483920592-1133362371=:16161
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="tpop3d.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.UW2.4.53.0511301552510.16161@sun.pyrenet>
Content-Description: auth_pgsql.diff-c
Content-Disposition: attachment; filename="tpop3d.diff"

KioqIGF1dGhfcGdzcWwuYy5vcmlnCW1hciBqdWwgMTUgMDE6MzE6MjAgMjAw
Mw0KLS0tIGF1dGhfcGdzcWwuYwltZXIgbm92IDMwIDE1OjM0OjE0IDIwMDUN
CioqKioqKioqKioqKioqKg0KKioqIDE1MCwxNTUgKioqKg0KLS0tIDE1MCwx
NzkgLS0tLQ0KICAgKiBkZWJ1Z2dlci4gKi8NCiAgUEdjb25uICpwZ19jb25u
Ow0KICANCisgUEdyZXN1bHQgKmRvX3F1ZXJ5KFBHY29ubiAqcGdfY29ubiwg
Y29uc3QgY2hhciAqcXVlcnkpIHsNCisgICBpbnQgY29ubl9zdGF0dXM7DQor
ICAgaW50IGxvb3A9MDsNCisgICBQR3Jlc3VsdCAqcmVzPU5VTEw7DQorICAg
DQorIA0KKyAgIHdoaWxlICgoY29ubl9zdGF0dXMgPSAocGdfY29ubiA/IFBR
c3RhdHVzKHBnX2Nvbm4pIDogQ09OTkVDVElPTl9CQUQpKQ0KKyAJID09IENP
Tk5FQ1RJT05fQkFEKSB7DQorICAgICBQUXJlc2V0KHBnX2Nvbm4pOw0KKyAg
ICAgaWYgKCFwZ19jb25uIHx8IChjb25uX3N0YXR1cz1QUXN0YXR1cyhwZ19j
b25uKSkgPT0gQ09OTkVDVElPTl9CQUQpIHsNCisgICAgICAgc2xlZXAoMTAp
Ow0KKyAgICAgICBhdXRoX3Bnc3FsX2luaXQoKTsNCisgICAgICAgbG9vcCsr
Ow0KKyAgICAgICBpZiAobG9vcCA9PSA1KQ0KKyAJYnJlYWs7DQorICAgICB9
DQorICAgfQ0KKyAgIGlmIChsb29wID09IDUpIA0KKyAgICAgbG9nX3ByaW50
KExPR19FUlIsICJhdXRoX3Bnc3FsX2luaXQ6IFBRY29ubmVjdGRiOiBmYWls
ZWQgKCVzKSBnaXZpbmcgdXAgYWZ0ZXIgJWQgdGltZXMiLCBQUWVycm9yTWVz
c2FnZShwZ19jb25uKSw1KTsNCisgICBlbHNlDQorICAgICByZXM9UFFleGVj
KHBnX2Nvbm4scXVlcnkpOw0KKyAgIHJldHVybiByZXM7DQorIH0NCisgDQog
IGludCBhdXRoX3Bnc3FsX2luaXQodm9pZCkgew0KICAgICAgY2hhciAqdXNl
cm5hbWUgPSBOVUxMLCAqcGFzc3dvcmQgPSBOVUxMLCAqaG9zdG5hbWUgPSBO
VUxMLCAqZGF0YWJhc2UgPSBOVUxMLCAqbG9jYWxob3N0ID0gImxvY2FsaG9z
dCIsICpzOw0KICAgICAgY2hhciAqZGJjb25uZWN0ID0gTlVMTDsNCioqKioq
KioqKioqKioqKg0KKioqIDIxOSwyMzEgKioqKg0KICAgICAgICAgICAgICBw
YXNzd29yZCA/IHBhc3N3b3JkIDogIiINCiAgICAgICAgICApOw0KICAgICAg
DQohICAgICBwZ19jb25uID0gUFFjb25uZWN0ZGIoZGJjb25uZWN0KTsNCiEg
ICAgIGlmIChQUXN0YXR1cyhwZ19jb25uKSA9PSBDT05ORUNUSU9OX0JBRCkg
ew0KICAgICAgICAgIGxvZ19wcmludChMT0dfRVJSLCAiYXV0aF9wZ3NxbF9p
bml0OiBQUWNvbm5lY3RkYjogZmFpbGVkICglcykiLCBQUWVycm9yTWVzc2Fn
ZShwZ19jb25uKSk7DQohICAgICAgICAgZ290byBmYWlsOw0KISAgICAgfQ0K
ICANCiEgICAgIHJldCA9IDE7DQogIA0KICBmYWlsOg0KICAgICAgaWYgKHVz
ZXJuYW1lKSBzdHJjbHIodXNlcm5hbWUpOw0KLS0tIDI0MywyNTUgLS0tLQ0K
ICAgICAgICAgICAgICBwYXNzd29yZCA/IHBhc3N3b3JkIDogIiINCiAgICAg
ICAgICApOw0KICAgICAgDQohICAgICAgIHBnX2Nvbm4gPSBQUWNvbm5lY3Rk
YihkYmNvbm5lY3QpOw0KISAgICAgICBpZiAoUFFzdGF0dXMocGdfY29ubikg
PT0gQ09OTkVDVElPTl9CQUQpIHsNCiAgICAgICAgICBsb2dfcHJpbnQoTE9H
X0VSUiwgImF1dGhfcGdzcWxfaW5pdDogUFFjb25uZWN0ZGI6IGZhaWxlZCAo
JXMpIiwgUFFlcnJvck1lc3NhZ2UocGdfY29ubikpOw0KISAJZ290byBmYWls
Ow0KISAgICAgICB9DQogIA0KISAJcmV0PTE7DQogIA0KICBmYWlsOg0KICAg
ICAgaWYgKHVzZXJuYW1lKSBzdHJjbHIodXNlcm5hbWUpOw0KKioqKioqKioq
KioqKioqDQoqKiogMjU5LDI2NSAqKioqDQogICAgICBpZiAodmVyYm9zZSkN
CiAgICAgICAgICBsb2dfcHJpbnQoTE9HX0RFQlVHLCAiYXV0aF9wZ3NxbF9u
ZXdfYXBvcDogU1FMIHF1ZXJ5OiAlcyIsIHF1ZXJ5KTsNCiAgDQohICAgICBp
ZiAoKHJlcyA9IFBRZXhlYyhwZ19jb25uLCBxdWVyeSkpKSB7DQogICAgICAg
ICAgaW50IGk7DQogIA0KICAgICAgICAgIGlmIChQUXJlc3VsdFN0YXR1cyhy
ZXMpICE9IFBHUkVTX1RVUExFU19PSykgew0KLS0tIDI4MywyODkgLS0tLQ0K
ICAgICAgaWYgKHZlcmJvc2UpDQogICAgICAgICAgbG9nX3ByaW50KExPR19E
RUJVRywgImF1dGhfcGdzcWxfbmV3X2Fwb3A6IFNRTCBxdWVyeTogJXMiLCBx
dWVyeSk7DQogIA0KISAgICAgaWYgKChyZXMgPSBkb19xdWVyeShwZ19jb25u
LCBxdWVyeSkpKSB7DQogICAgICAgICAgaW50IGk7DQogIA0KICAgICAgICAg
IGlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykg
ew0KKioqKioqKioqKioqKioqDQoqKiogMzUzLDM1OSAqKioqDQogICAgICBp
ZiAodmVyYm9zZSkNCiAgICAgICAgICBsb2dfcHJpbnQoTE9HX0RFQlVHLCAi
YXV0aF9wZ3NxbF9uZXdfdXNlcl9wYXNzOiBTUUwgcXVlcnk6ICVzIiwgcXVl
cnkpOw0KICANCiEgICAgIGlmICgocmVzID0gUFFleGVjKHBnX2Nvbm4sIHF1
ZXJ5KSkpIHsNCiAgICAgICAgICBpbnQgaTsNCiAgDQogICAgICAgICAgaWYg
KFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKSB7DQot
LS0gMzc3LDM4MyAtLS0tDQogICAgICBpZiAodmVyYm9zZSkNCiAgICAgICAg
ICBsb2dfcHJpbnQoTE9HX0RFQlVHLCAiYXV0aF9wZ3NxbF9uZXdfdXNlcl9w
YXNzOiBTUUwgcXVlcnk6ICVzIiwgcXVlcnkpOw0KICANCiEgICAgIGlmICgo
cmVzID0gZG9fcXVlcnkocGdfY29ubiwgcXVlcnkpKSkgew0KICAgICAgICAg
IGludCBpOw0KICANCiAgICAgICAgICBpZiAoUFFyZXN1bHRTdGF0dXMocmVz
KSAhPSBQR1JFU19UVVBMRVNfT0spIHsNCioqKioqKioqKioqKioqKg0KKioq
IDQ0Myw0NDkgKioqKg0KICAgICAgaWYgKHZlcmJvc2UpDQogICAgICAgICAg
bG9nX3ByaW50KExPR19ERUJVRywgXygiYXV0aF9wZ3NxbF9vbmxvZ2luOiBT
UUwgcXVlcnk6ICVzIiksIHF1ZXJ5KTsNCiAgDQohICAgICBpZiAoKHJlcyA9
IFBRZXhlYyhwZ19jb25uLCBxdWVyeSkpKSB7IC8qIFhYWCB0cmFuc2FjdGlv
bnM/ICovDQogICAgICAgICAgaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0g
UEdSRVNfVFVQTEVTX09LKSB7DQogICAgICAgICAgICAgIGxvZ19wcmludChM
T0dfRVJSLCAiYXV0aF9wZ3NxbF9vbmxvZ2luOiBiYWQgc3RhdHVzIGFmdGVy
IFBRZXhlYzogJXMiLCBwZ19zdHJlcnJvcihwZ19jb25uKSk7DQogICAgICAg
ICAgfSBlbHNlIGlmIChQUW50dXBsZXMocmVzKSkgew0KLS0tIDQ2Nyw0NzMg
LS0tLQ0KICAgICAgaWYgKHZlcmJvc2UpDQogICAgICAgICAgbG9nX3ByaW50
KExPR19ERUJVRywgXygiYXV0aF9wZ3NxbF9vbmxvZ2luOiBTUUwgcXVlcnk6
ICVzIiksIHF1ZXJ5KTsNCiAgDQohICAgICBpZiAoKHJlcyA9IGRvX3F1ZXJ5
KHBnX2Nvbm4sIHF1ZXJ5KSkpIHsgLyogWFhYIHRyYW5zYWN0aW9ucz8gKi8N
CiAgICAgICAgICBpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19U
VVBMRVNfT0spIHsNCiAgICAgICAgICAgICAgbG9nX3ByaW50KExPR19FUlIs
ICJhdXRoX3Bnc3FsX29ubG9naW46IGJhZCBzdGF0dXMgYWZ0ZXIgUFFleGVj
OiAlcyIsIHBnX3N0cmVycm9yKHBnX2Nvbm4pKTsNCiAgICAgICAgICB9IGVs
c2UgaWYgKFBRbnR1cGxlcyhyZXMpKSB7DQo=

---559023410-1483920592-1133362371=:16161--