[PATCH] Timeout for expected connections

Bob bhockney@ix.netcom.com
Wed, 5 Dec 2001 21:13:02 -0800


--Message-Boundary-14771
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Content-description: Mail message body

Hi all,

Presently, expected connections don't timeout, but remain expected until 
either they are fulfilled or the master dies.  Under newnat, this can be an 
issue since, unlike before where a new expectation would simply overwrite an 
open one, if the default of 1 expected per helper is used and an expected 
connection never comes, no new expectations can be set until the master dies.

In the alternative, if max_expected is set higher, there could be several open 
expect_related connections for a long time, potentially from any host on the 
internet.

To illustrate, consider DCCs under IRC.  It my happen in the ordinary course 
of things that an expect_related never comes, for example if the DCC send or 
get is simply refused by the recipient.  If max_expected is set to 1 (as it is 
in CVS), if this happens the only way to continue with DCC is to close and re-
establish the connection to the server.  OTOH, if max_expected is set higher, 
there could potentially be, in the case of DCC sends, several open 
expect_related connections from _any_ host on the internet.

Attached is a patch to newnat is CVS that implements a default timeout, set to 
180 seconds, on expect_related connections.

One additional thing it does is not destroy the expected if the master dies.  
Continuing the IRC example, since DCC connections are not with the server the 
expect_relateds for these shouldn't necessarily go away if the server 
connection is lost, if they are going to time-out anyway.  Of course, what The 
Right Thing is may be protocol dependent.

Just my view, but something along these lines is much needed in a newnat 
environment.

Regards,

-Bob



--Message-Boundary-14771
Content-type: text/plain; charset=US-ASCII
Content-disposition: inline
Content-description: Attachment information.

The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.

   ---- File information -----------
     File:  expected_timeout.patch
     Date:  6 Dec 2001, 4:13
     Size:  3271 bytes.
     Type:  Unknown

--Message-Boundary-14771
Content-type: Application/Octet-stream; name="expected_timeout.patch"; type=Unknown
Content-disposition: attachment; filename="expected_timeout.patch"
Content-transfer-encoding: BASE64

ZGlmZiAtTnJ1IGxpbnV4LTIuNC4xMy1uZXduYXQtY2xlYW4vaW5jbHVkZS9saW51eC9uZXRm
aWx0ZXJfaXB2NC9pcF9jb25udHJhY2suaCBsaW51eC0yLjQuMTMtbmV3bmF0LXBhdGNoZWQv
aW5jbHVkZS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcF9jb25udHJhY2suaAotLS0gbGludXgt
Mi40LjEzLW5ld25hdC1jbGVhbi9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY0L2lwX2Nv
bm50cmFjay5oCVRodSBOb3YgMjIgMTI6MDY6MTUgMjAwMQorKysgbGludXgtMi40LjEzLW5l
d25hdC1wYXRjaGVkL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfY29ubnRyYWNr
LmgJTW9uIE5vdiAyNiAxOTozNzo0OSAyMDAxCkBAIC0xMDUsNiArMTA1LDkgQEAKIAkvKiBB
dCB3aGljaCBzZXF1ZW5jZSBudW1iZXIgZGlkIHRoaXMgZXhwZWN0YXRpb24gb2NjdXIgKi8K
IAl1X2ludDMyX3Qgc2VxOwogCisJLyogVGltZXIgZnVuY3Rpb247IHJlbW92ZXMgZXhwZWN0
ZWQgd2hlbiBpdCBnb2VzIG9mZi4gKi8KKwlzdHJ1Y3QgdGltZXJfbGlzdCB0aW1lb3V0Owor
CiAJdW5pb24gewogCQkvKiBpbnNlcnQgY29ubnRyYWNrIGhlbHBlciBwcml2YXRlIGRhdGEg
KGV4cGVjdCkgaGVyZSAqLwogI2lmIGRlZmluZWQoQ09ORklHX0lQX05GX0lSQykgfHwgZGVm
aW5lZChDT05GSUdfSVBfTkZfSVJDX01PRFVMRSkKZGlmZiAtTnJ1IGxpbnV4LTIuNC4xMy1u
ZXduYXQtY2xlYW4vbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2Nvbm50cmFja19jb3JlLmMgbGlu
dXgtMi40LjEzLW5ld25hdC1wYXRjaGVkL25ldC9pcHY0L25ldGZpbHRlci9pcF9jb25udHJh
Y2tfY29yZS5jCi0tLSBsaW51eC0yLjQuMTMtbmV3bmF0LWNsZWFuL25ldC9pcHY0L25ldGZp
bHRlci9pcF9jb25udHJhY2tfY29yZS5jCVRodSBOb3YgMjIgMTI6MDY6MDcgMjAwMQorKysg
bGludXgtMi40LjEzLW5ld25hdC1wYXRjaGVkL25ldC9pcHY0L25ldGZpbHRlci9pcF9jb25u
dHJhY2tfY29yZS5jCU1vbiBEZWMgIDMgMTk6MTM6MTEgMjAwMQpAQCAtNDgsNiArNDgsOCBA
QAogI2RlZmluZSBERUJVR1AoZm9ybWF0LCBhcmdzLi4uKQogI2VuZGlmCiAKKyNkZWZpbmUg
RVhQRUNUX1JFTEFURURfREVGX1RJTUVPVVQgMTIwICogSFoKKwogREVDTEFSRV9SV0xPQ0so
aXBfY29ubnRyYWNrX2xvY2spOwogREVDTEFSRV9SV0xPQ0soaXBfY29ubnRyYWNrX2V4cGVj
dF90dXBsZV9sb2NrKTsKIApAQCAtMTkzLDggKzE5NiwxNSBAQAogCQlJUF9ORl9BU1NFUlQo
bGlzdF9pbmxpc3QoJmV4cGVjdF9saXN0LCBleHApKTsKIAkJSVBfTkZfQVNTRVJUKGV4cC0+
ZXhwZWN0YW50ID09IGN0KTsKIAorCQkvKiBSZW1vdmUgdGltZXIgZm9yIGV4cGVjdGlvbiB0
byBiZSBkZXN0cm95ZWQgKi8KKwkJaWYgKGRlbF90aW1lcigmZXhwLT50aW1lb3V0KSkgewor
CQkJREVCVUdQKCJkZXN0cm95X2V4cGVjdGF0aW9uczogcmVtb3ZpbmcgdGltZXIgKCVwKSBl
eHA9KCVwKSwgcGFyZW50PSglcClcbiIsCisJCQkJCSZleHAtPnRpbWVvdXQsIGV4cCwgY3Qp
OworCiAJCS8qIGRlbGV0ZSBleHBlY3RhdGlvbiBmcm9tIGdsb2JhbCBhbmQgcHJpdmF0ZSBs
aXN0cyAqLwogCQl1bmV4cGVjdF9yZWxhdGVkKGV4cCk7CisJCQorCQl9CiAJfQogfQogCkBA
IC0yMTQsNyArMjI0LDggQEAKIAkJICAgICZjdC0+dHVwbGVoYXNoW0lQX0NUX0RJUl9SRVBM
WV0pOwogCiAJLyogRGVzdHJveSBhbGwgdW4tZXN0YWJsaXNoZWQsIHBlbmRpbmcgZXhwZWN0
YXRpb25zICovCi0JZGVzdHJveV9leHBlY3RhdGlvbnMoY3QpOworCS8qIE9yIGRvbid0IC0g
bGV0IHRoZW0gZGllIGJ5IHRpbWVvdXQgaW5zdGVhZCAqLworCS8qIGRlc3Ryb3lfZXhwZWN0
YXRpb25zKGN0KTsgKi8KIH0KIAogc3RhdGljIHZvaWQKQEAgLTI2Myw2ICsyNzQsMTUgQEAK
IAlpcF9jb25udHJhY2tfcHV0KGN0KTsKIH0KIAorc3RhdGljIHZvaWQgZXhwZWN0ZWRfdGlt
ZWRfb3V0KHVuc2lnbmVkIGxvbmcgdWxfY29ubnRyYWNrX2V4cGVjdCkKK3sKKwlzdHJ1Y3Qg
aXBfY29ubnRyYWNrX2V4cGVjdCAqZXhwZWN0ID0gKHZvaWQgKil1bF9jb25udHJhY2tfZXhw
ZWN0OworCisJV1JJVEVfTE9DSygmaXBfY29ubnRyYWNrX2xvY2spOworCXVuZXhwZWN0X3Jl
bGF0ZWQoZXhwZWN0KTsKKwlXUklURV9VTkxPQ0soJmlwX2Nvbm50cmFja19sb2NrKTsKK30K
Kwogc3RhdGljIGlubGluZSBpbnQKIGNvbm50cmFja190dXBsZV9jbXAoY29uc3Qgc3RydWN0
IGlwX2Nvbm50cmFja190dXBsZV9oYXNoICppLAogCQkgICAgY29uc3Qgc3RydWN0IGlwX2Nv
bm50cmFja190dXBsZSAqdHVwbGUsCkBAIC02MjIsNiArNjQyLDEzIEBACiAJCURFQlVHUCgi
Y29ubnRyYWNrOiBleHBlY3RhdGlvbiBhcnJpdmVzIGN0PSVwIGV4cD0lcFxuIiwKIAkJCWNv
bm50cmFjaywgZXhwZWN0ZWQpOwogCQkvKiBXZWxjb21lLCBNci4gQm9uZC4gIFdlJ3ZlIGJl
ZW4gZXhwZWN0aW5nIHlvdS4uLiAqLworCQkKKwkJLyogRGVsZXRlIHRpbWVyIGZvciBhcnJp
dmVkIGV4cGVjdGF0aW9uICovIAorCQlpZiAoZGVsX3RpbWVyKCZleHBlY3RlZC0+dGltZW91
dCkpIHsKKwkJCURFQlVHUCgiZXhwX2Fycml2ZWQ6IHJlbW92aW5nIHRpbWVyICglcCkgZXhw
PSglcCkgY3Q9KCVwKVxuIiwKKwkJCQkJJmV4cGVjdGVkLT50aW1lb3V0LCBleHBlY3RlZCwg
Y29ubnRyYWNrKTsKKwkJfQorCiAJCUlQX05GX0FTU0VSVChtYXN0ZXJfY3QoY29ubnRyYWNr
KSk7CiAJCWNvbm50cmFjay0+c3RhdHVzID0gSVBTX0VYUEVDVEVEOwogCQljb25udHJhY2st
Pm1hc3RlciA9IGV4cGVjdGVkOwpAQCAtODc1LDYgKzkwNCwxNiBAQAogCWxpc3RfcHJlcGVu
ZCgmZXhwZWN0X2xpc3QsICZuZXctPmxpc3QpOwogCXJlbGF0ZWRfdG8tPmV4cGVjdGluZysr
OwogCisJLyogQWRkIHRpbWVvdXQgdGltZXIgZm9yIGV4cGVjdGVkIGNvbm5lY3Rpb24gKi8K
Kwlpbml0X3RpbWVyKCZuZXctPnRpbWVvdXQpOworCW5ldy0+dGltZW91dC5kYXRhID0gKHVu
c2lnbmVkIGxvbmcpbmV3OworCW5ldy0+dGltZW91dC5mdW5jdGlvbiA9IGV4cGVjdGVkX3Rp
bWVkX291dDsKKwluZXctPnRpbWVvdXQuZXhwaXJlcyA9IGppZmZpZXMgKyBFWFBFQ1RfUkVM
QVRFRF9ERUZfVElNRU9VVDsKKworCWFkZF90aW1lcigmbmV3LT50aW1lb3V0KTsKKwkJREVC
VUdQKCJleHBlY3RfcmVsYXRlZDogQWRkaW5nIHRpbWVyICglcCkgZm9yIGV4cGVjdGVkICgl
cClcbiIsCisJCQkJJm5ldy0+dGltZW91dCwgbmV3KTsKKwogCVdSSVRFX1VOTE9DSygmaXBf
Y29ubnRyYWNrX2xvY2spOwogCiAJcmV0dXJuIDA7Cg==

--Message-Boundary-14771--