Grase Hotspot

Coova Chilli Patches

Coova Chilli Patches

Differences between Vanilla Coova Chilli and GRASE Coova Chilli

(Later versions we don't apply all these patches, see https://github.com/GraseHotspot/coova-chilli/tree/grase-1.5.0 for our branch where we build a custom build)

I only apply a few patches to coova chilli for packaging with the GRASE Hotspot.

The changes are:

  • Don’t count traffic to and from the Coova Chilli machine on port 80 (so a local mirror won’t be counted against the users quota)
  • Firewall rules to transparently direct all web traffic through the proxy (and eventually dansguardian filtering)
  • A config file that auto selects HS_LAN interface (See Coova Chilli Network Interfaces)
  • Some changes to the Chilli Controller JS files for getting more information in the AJAX requests

Don’t count traffic

Patch against 1.2.6

Index: grase-coova-chilli/src/chilli.c
===================================================================
--- grase-coova-chilli.orig/src/chilli.c 2010-12-06 13:20:52.878112452 +1000
+++ grase-coova-chilli/src/chilli.c 2010-12-06 13:24:30.489110146 +1000
@@ -2014,9 +2014,11 @@
}
/* If the ip src is uamlisten and psrc is uamport we won't call leaky_bucket */
+ /* * (And if the packets are destined for the local webserver on port 80) */
if ( ! (ipph->saddr == _options.uamlisten.s_addr &&
(ipph->sport == htons(_options.uamport) ||
- ipph->sport == htons(_options.uamuiport)))) {
+ ipph->sport == htons(_options.uamuiport) ||
+ ipph->sport == htons(80) ))) {
if (appconn->s_state.authenticated == 1) {
if (chilli_acct_tosub(appconn, len))
return 0;
@@ -4029,10 +4031,12 @@
/*
* If the ip dst is uamlisten and pdst is uamport we won't call leaky_bucket,
* and we always send these packets through to the tun/tap interface (index 0)
+ * (And if the packets are destined for the local webserver on port 80)
*/
if (ipph->daddr == _options.uamlisten.s_addr &&
(ipph->dport == htons(_options.uamport) ||
- ipph->dport == htons(_options.uamuiport)))
+ ipph->dport == htons(_options.uamuiport) ||
+ ipph->dport == htons(80) ))
return tun_encaps(tun, pack, len, 0);
if (appconn->s_state.authenticated == 1) {
Edit this page on GitHub