Re: Proposal: Helper response: concatenated values with custom delimiter

Amos Jeffries <[email protected]> Wed, 29 Apr 2026 16:55:28 +1200
Newsgroups gmane.comp.web.squid.devel
Message-ID <[email protected]>
T24gMjgvMDQvMjAyNiAyMDozNywgQW5kcmV5IEsgd3JvdGU6Cj4gSGVsbG8sIEFtb3MgYW5kIEFs
ZXgsCj4gCj4gVGhhbmsgeW91IGZvciBzaGFyaW5nIHlvdXIgdGhvdWdodHMgb24gdGhpcy4KPiAK
PiBPbiBteSBwYXJ0LCBJIHNlZSB0d28gcmVhc29ucyBmb3IgaW1wbGVtZW50aW5nIHN1cHBvcnQg
Zm9yIHRoZSAKPiBrZXk9djEsdjIsdjMgZm9ybWF0Ogo+IAo+IDEuIEFzIEFtb3MgcG9pbnRlZCBv
dXQgaW4gdGhlIHByZXZpb3VzIGVtYWlsLCB1c2luZyB0aGlzIGZvcm1hdCB3aWxsIAo+IHJlZHVj
ZSB0aGUgdm9sdW1lIG9mIHRyYWZmaWMgc2VudCBmcm9tIHRoZSBoZWxwZXIsIHRoZXJlYnkgcmVk
dWNpbmcgdGhlIAo+IHByb2Nlc3Npbmcgb3ZlcmhlYWQuCj4gSG93ZXZlciwgdGhlIGltcGFjdCB3
aWxsIGJlIG1hcmdpbmFsOyBmb3IgMzAwIGdyb3VwcywgdGhlIHNhdmluZ3Mgd291bGQgCj4gYmUg
cm91Z2hseWxlbigiZ3JvdXA9IikgKiAzMDAgPSAxODAwIGJ5dGVzLgo+IEl0IHdvdWxkIGJlIGZh
ciBtb3JlIGVmZmljaWVudCB0byBmaWx0ZXIgZ3JvdXBzIGR1cmluZyBQQUMgcmVjb3JkIAo+IHBh
cnNpbmcuIFRoaXMgZmlsdGVyaW5nIHNob3VsZCBiZSBwZXJmb3JtZWQgYXMgZWFybHkgYXMgcG9z
c2libGUgdG8gCj4gcHJldmVudCBmdXJ0aGVyIHByb2Nlc3Npbmcgb2YgdW51c2VkIGdyb3Vwcy4g
SSBpbnRlbmQgdG8gc3BpbiB0aGlzIAo+IHN1Z2dlc3Rpb24gb2ZmIGludG8gYSBzZXBhcmF0ZSBk
aXNjdXNzaW9uIHRocmVhZC4KCgpUaGF0IGNhbGN1bGF0aW9uIGlzIGZvY3VzZWQgb24gYSBzaW5n
bGUgdHJhbnNhY3Rpb24uIFRoZSBtYXRoIGF0IHRoYXQgCmxldmVsIHdhcyB1c2VkIHRvIHByb3Zl
IHRoYXQgdGhlcmUgaXMgYW4gb3ZlcmFsbCBzYXZpbmdzIGdhaW5lZCBieSB0aGlzIApmZWF0dXJl
LgoKSSBkaWQgbm90IGV4cGFuZCB0aGUgbWF0aCBpbnRvIGZ1cnRoZXIgc2NvcGVzIGJlY2F1c2Ug
dGhlIHRyZW5kIGlzIAphbHJlYWR5IHByb3ZlbiBhdCB0aGF0IGxldmVsLiBGb3IgY2xhcml0eSBJ
IHNoYWxsIGRvIHNvIG5vdzsKCldlIGRvIG5vdCBuZWVkIGEgbGFyZ2UgbnVtYmVyIG9mIGdyb3Vw
cyB0byBiZW5lZml0IGF0IHRoZSBhZ2dyZWdhdGUgCmxldmVscy4gV2hlbmV2ZXIgdGhlIG51bWJl
ciBvZiAiZ3JvdXA9IiBpcyBHPjIsIHNhdmluZ3Mgd2lsbCBhY2N1bXVsYXRlOyAKd2l0aCB0aGUg
Rz0wLDEgY2FzZXMgYmVpbmcgbmV1dHJhbCB2aXMnIHN0YXR1cyBxdW8uCgpXaXRoIGEgZGVtb25z
dHJhdGVkIHNhdmluZ3Mgb2YgTj0oc3RybGVuKCIgZ3JvdXA9IikgPj0gNykgCnBlci10cmFuc2Fj
dGlvbiBsZWFkcyB0byBhIFQqTiBzYXZpbmdzIGF0IHRoZSBsYXJnZSBzY2FsZSB3aGVyZSBUIGlz
IHRoZSAKdHJhbnNhY3Rpb24gY291bnQgb3ZlciB0aGUgZnV0dXJlIGxpZmV0aW1lIG9mIFNxdWlk
LgoKCklNTywgdGhlIHN1Z2dlc3RlZCBQQUMgZmlsdGVyaW5nIGJ5IHRoZSBoZWxwZXIgaXMgYSBk
aWZmZXJlbnQgbWVjaGFuaXNtIAp0aGF0IGNhbiBiZSBhcHBsaWVkIGFsb25nc2lkZSB0aGUgcHJv
dG9jb2wgc3ludGF4LiBGb3IgYWRkaXRpb25hbCAKc2F2aW5ncyB3aGVuIHNvbWVvbmUgaW1wbGVt
ZW50cyBpdC4KCgo+IAo+IDIuIEFubm90YXRpb24gb2YgY2xpZW50IGNvbm5lY3Rpb25zLiBDdXJy
ZW50bHksIG9ubHkgb25lIHRhZyBpcyAKPiBzdXBwb3J0ZWQgZm9yIGNsaWVudCBjb25uZWN0aW9u
IGFubm90YXRpb246IGNsdF9jb25uX3RhZywgYW5kIHRoZSAKPiBjdXJyZW50IGhhbmRsZXIgZm9y
IHRoaXMgdGFnIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUgb2NjdXJyZW5jZXMgb2YgCj4gdGhl
IHNhbWUgdGFnIGluIHRoZSBoZWxwZXIgcmVzcG9uc2UuCj4gSG93ZXZlciwgdGhpcyBpc3N1ZSBp
cyBlbGVnYW50bHkgYWRkcmVzc2VkIGJ5IEFtb3MncyBQUiAoaHR0cHM6Ly8gCj4gZ2l0aHViLmNv
bS9zcXVpZC1jYWNoZS9zcXVpZC9wdWxsLzIzOTkvIDxodHRwczovL2dpdGh1Yi5jb20vc3F1aWQt
Y2FjaGUvIAo+IHNxdWlkL3B1bGwvMjM5OS8+KSBhbmQgbXkgcHJvcG9zYWwgdG8gdXNlIE5vdGVQ
YWlycyBmaWx0ZXJpbmcgKGh0dHBzOi8vIAo+IGdpdGh1Yi5jb20vc3F1aWQtY2FjaGUvc3F1aWQv
cHVsbC8yMzk5LyNpc3N1ZWNvbW1lbnQtNDIyNDM4MTQ5NiAKPiA8aHR0cHM6Ly9naXRodWIuY29t
L3NxdWlkLWNhY2hlL3NxdWlkL3B1bGwvMjM5OS8jaXNzdWVjb21tZW50LTQyMjQzODE0OTY+KS4K
PiAKPiBBZGRpdGlvbmFsbHksIGN1c3RvbSBoZWxwZXJzIGFscmVhZHkgaGF2ZSB0aGUgZmxleGli
aWxpdHkgdG8gcmV0dXJuIAo+IHZhbHVlcyBpbiB0aGUga2V5PXYxLHYyLHYzIGZvcm1hdCwgYWxs
b3dpbmcgdXNlcnMgdG8gcmV0cmlldmUgc3BlY2lmaWMgCj4gdmFsdWVzIHVzaW5nIHRoZS1tPSwg
b3B0aW9uLgo+IAo+IEZ1cnRoZXJtb3JlLCBJ4oCZdmUgcmVjb25zaWRlcmVkIHRoZSB1c2Ugb2Yg
YSBjb21tYSBhcyBhIGRlZmF1bHQgdmFsdWUgCj4gc2VwYXJhdG9yIGluIGhlbHBlciByZXNwb25z
ZXMuIEl0IHNlZW1zIGxpa2UgYSBwb29yIGNob2ljZSBiZWNhdXNlIHdlIAo+IHdvdWxkbid0IGJl
IGFibGUgdG8gZGlzdGluZ3Vpc2ggd2hldGhlciB0aGUgY29tbWEgaXMgYSBzZXBhcmF0b3Igb3Ig
cGFydCAKPiBvZiB0aGUgdG9rZW4gaXRzZWxmLgo+IAo+IAo+IFRoZXJlZm9yZSwgSSBzdWdnZXN0
IHdlIGNsb3NlIHRoaXMgcHJvcG9zYWwgZm9yIG5vdyBhbmQgd2FpdCBmb3IgdGhlIAo+IGNvbXBs
ZXRpb24gb2YgUFIjMjM5OS4KPiAKPiBLaW5kIHJlZ2FyZHMsCj4gIMKgIMKgIMKgQW5rb3IuCj4g
CgpIVEgKQW1vcwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpzcXVpZC1kZXYgbWFpbGluZyBsaXN0CnNxdWlkLWRldkBsaXN0cy5zcXVpZC1jYWNoZS5vcmcK
aHR0cHM6Ly9saXN0cy5zcXVpZC1jYWNoZS5vcmcvbGlzdGluZm8vc3F1aWQtZGV2Cg==