Hi I have an env with Squid 4 with several ICAPs. In this env, I set in squid.conf the following:
adaptation_masterx_shared_names X-My-Header > and I add an ICAP header X-My-Header with some data in one ICAP and next ICAPs can use it (I also see it in tcpdump output). Now I'm writing an eCAP and I did the following (for testing): static const libecap::Name myHeader("X-My-Header", > libecap::Name::NextId()); const libecap::Area Adapter::Xaction::option(const libecap::Name &name) > const > { > > if (name == myHeader) { std::string t = "popo"; return libecap::Area(t.data(), t.size()); > } return libecap::Area(); > } > > > void Adapter::Xaction::visitEachOption(libecap::NamedValueVisitor > &visitor) const > { > > std::string t = "popo"; > > visitor.visit(myHeader, libecap::Area(t.data(), t.size())); > } It is much like the clamAV eCAP example. What I see in tcpdump output is the following: X.....qZREQMOD icap://my.proxy:1234/request ICAP/1.0 > Host: my.proxy:1234 > Date: Wed, 14 Jul 2021 20:37:33 GMT > X-My-Header: . > Encapsulated: req-hdr=0, null-body=427 > Preview: 0 > Allow: 204 Meaning, it indeed added the X-My-Header as ICAP header for the benefit of the ICAP server on the chain but it seems the value is just a dot. What am I doing wrong? BTW, I'm struggling to find a decent eCAP interface documentation. Can you please help me understand what is the difference between 'option' and 'visitEachOption' methods? Thanks, Moti
_______________________________________________ squid-users mailing list squid-users@lists.squid-cache.org http://lists.squid-cache.org/listinfo/squid-users