2019-12-04 21:30:27 +00:00
|
|
|
#! /usr/bin/env python3
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# using Python's bundled WSGI server
|
|
|
|
|
|
|
|
from wsgiref.simple_server import make_server
|
|
|
|
import subprocess
|
|
|
|
from dateutil.tz import *
|
|
|
|
import datetime
|
|
|
|
import logging
|
|
|
|
from logging.handlers import RotatingFileHandler
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
from jinja2 import Environment, FileSystemLoader
|
|
|
|
import sqlite3
|
|
|
|
import re
|
2019-12-22 04:11:42 +00:00
|
|
|
from iiab.iiab_lib import get_iiab_env
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
|
|
|
|
# Notes on timeout strategy
|
|
|
|
# every client timestamp is recorded into current_ts
|
|
|
|
# When splash page is clicked , return 204 timeout starts (via ajax call),
|
|
|
|
# Return 204 is android (may be different for different versions)
|
|
|
|
# captive portal redirect is triggered after inactivity timeout,
|
|
|
|
# which needs to be longer than period of normal connecetivity checks by OS
|
|
|
|
#
|
|
|
|
|
|
|
|
# Create the jinja2 environment.
|
2019-12-04 21:30:27 +00:00
|
|
|
CAPTIVE_PORTAL_BASE = "/opt/iiab/captiveportal"
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
j2_env = Environment(loader=FileSystemLoader(CAPTIVE_PORTAL_BASE),trim_blocks=True)
|
|
|
|
|
|
|
|
# Define time outs
|
|
|
|
INACTIVITY_TO = 30
|
2018-12-05 21:03:12 +00:00
|
|
|
PORTAL_TO = 20 # delay after triggered by ajax upon click of link to home page
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
# I had hoped that returning 204 status after some delay
|
|
|
|
# would dispense with android's "sign-in to network" (no work)
|
|
|
|
|
|
|
|
|
|
|
|
# Get the IIAB variables
|
|
|
|
doc_root = get_iiab_env("WWWROOT")
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
fully_qualified_domain_name = get_iiab_env("FQDN")
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
|
|
|
|
|
2020-01-24 00:40:16 +00:00
|
|
|
# 2020-01-23: @georgejhunt explained that "ERROR" does not log enough details.
|
|
|
|
# So we're changing IIAB's default to "DEBUG", til Captive Portal proves solid.
|
|
|
|
#loggingLevel = "ERROR"
|
|
|
|
loggingLevel = "DEBUG"
|
2019-12-14 15:58:25 +00:00
|
|
|
if len(sys.argv) > 1:
|
|
|
|
if sys.argv[1] == '-l':
|
|
|
|
loggingLevel = "DEBUG"
|
|
|
|
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
# set up some logging -- selectable for diagnostics
|
2020-01-22 16:45:14 +00:00
|
|
|
logging.basicConfig(filename='/var/log/captiveportal/captiveportal.log',format='%(asctime)s.%(msecs)03d:%(name)s:%(message)s', datefmt='%M:%S',level=loggingLevel)
|
2020-01-21 06:23:55 +00:00
|
|
|
logger = logging.getLogger('/var/log/captiveportal/captiveportal.log')
|
|
|
|
handler = RotatingFileHandler("/var/log/captiveportal/captiveportal.log", maxBytes=100000, backupCount=2)
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
logger.addHandler(handler)
|
|
|
|
|
2019-12-18 16:36:38 +00:00
|
|
|
PORT={{ captiveportal_port }}
|
|
|
|
#PORT=9090
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Define globals
|
|
|
|
|
|
|
|
logger.debug("")
|
|
|
|
logger.debug('##########################################')
|
|
|
|
# what language are we speaking?
|
|
|
|
lang = os.environ['LANG'][0:2]
|
2019-12-05 19:23:46 +00:00
|
|
|
logger.debug('speaking: {}'.format(lang))
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
|
|
|
|
def tstamp(dtime):
|
|
|
|
'''return a UNIX style seconds since 1970 for datetime input'''
|
|
|
|
epoch = datetime.datetime(1970, 1, 1,tzinfo=tzutc())
|
|
|
|
newdtime = dtime.astimezone(tzutc())
|
|
|
|
since_epoch_delta = newdtime - epoch
|
|
|
|
return since_epoch_delta.total_seconds()
|
|
|
|
|
|
|
|
# ##########database operations ##############
|
|
|
|
# Use a sqlite database to store per client information
|
|
|
|
user_db = os.path.join(CAPTIVE_PORTAL_BASE,"users.sqlite")
|
|
|
|
conn = sqlite3.connect(user_db)
|
|
|
|
if not os.path.exists(user_db):
|
|
|
|
conn.close()
|
|
|
|
conn = sqlite3.connect(user_db)
|
|
|
|
c = conn.cursor()
|
|
|
|
c.row_factory = sqlite3.Row
|
|
|
|
c.execute( """create table IF NOT EXISTS users
|
|
|
|
(ip text PRIMARY KEY, mac text, current_ts integer,
|
|
|
|
lasttimestamp integer, send204after integer,
|
|
|
|
os text, os_version text,
|
|
|
|
ymd text)""")
|
|
|
|
|
|
|
|
def update_user(ip, mac, system, system_version, ymd):
|
|
|
|
sql = "SELECT * FROM users WHERE ip = ?"
|
|
|
|
c.execute(sql,(ip,))
|
|
|
|
row = c.fetchone()
|
|
|
|
if row == None:
|
|
|
|
sql = "INSERT INTO users (ip,mac,os,os_version,ymd) VALUES (?,?,?,?,?)"
|
|
|
|
c.execute(sql,(ip, mac, system, system_version, ymd ))
|
|
|
|
else:
|
|
|
|
sql = "UPDATE users SET (mac,os,os_version,ymd) = ( ?, ?, ?, ? ) WHERE ip = ?"
|
|
|
|
c.execute(sql,(mac, system, system_version, ymd, ip,))
|
|
|
|
conn.commit()
|
|
|
|
|
|
|
|
def platform_info(ip):
|
|
|
|
sql = "select * FROM users WHERE ip = ?"
|
|
|
|
c.execute(sql,(ip,))
|
|
|
|
row = c.fetchone()
|
|
|
|
if row is None: return ('','',)
|
|
|
|
return (row['os'],row['os_version'])
|
|
|
|
|
|
|
|
def timeout_info(ip):
|
|
|
|
sql = "select * FROM users WHERE ip = ?"
|
|
|
|
c.execute(sql,(ip,))
|
|
|
|
row = c.fetchone()
|
|
|
|
if row is None: return (0,0,0,)
|
|
|
|
return [row['current_ts'],row['lasttimestamp'],row['send204after']]
|
|
|
|
|
|
|
|
def is_inactive(ip):
|
|
|
|
ts=tstamp(datetime.datetime.now(tzutc()))
|
|
|
|
current_ts, last_ts, send204after = timeout_info(ip)
|
2019-12-05 19:23:46 +00:00
|
|
|
logger.debug("In is_inactive. current_ts:{}. last_ts:{}. send204after:{}".format(current_ts,last_ts,send204after,))
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
if not last_ts:
|
|
|
|
return True
|
|
|
|
if ts - int(last_ts) > INACTIVITY_TO:
|
|
|
|
return True
|
|
|
|
else:
|
|
|
|
return False
|
|
|
|
|
|
|
|
def is_after204_timeout(ip):
|
|
|
|
ts=tstamp(datetime.datetime.now(tzutc()))
|
|
|
|
current_ts, last_ts, send204after = timeout_info(ip)
|
|
|
|
if send204after == 0: return False
|
2019-12-06 01:09:28 +00:00
|
|
|
logger.debug("function: is_after204_timeout send204after:{} current: {}".format(send204after,ts,))
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
if not send204after:
|
|
|
|
return False
|
|
|
|
if ts - int(send204after) > 0:
|
|
|
|
return True
|
|
|
|
else:
|
|
|
|
return False
|
|
|
|
|
|
|
|
def set_204after(ip,value):
|
|
|
|
ts=tstamp(datetime.datetime.now(tzutc()))
|
|
|
|
sql = 'UPDATE users SET send204after = ? where ip = ?'
|
|
|
|
c.execute(sql,(ts + value,ip,))
|
|
|
|
conn.commit()
|
|
|
|
|
|
|
|
def set_lasttimestamp(ip):
|
|
|
|
ts=tstamp(datetime.datetime.now(tzutc()))
|
|
|
|
sql = 'UPDATE users SET lasttimestamp = ? where ip = ?'
|
|
|
|
c.execute(sql,(ts,ip,))
|
|
|
|
conn.commit()
|
|
|
|
|
|
|
|
# ################### Action routines based on OS ################3
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
def microsoft(environ,start_response):
|
2019-12-14 15:58:25 +00:00
|
|
|
logger.debug('in microsoft')
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
# firefox -- seems both mac and Windows use it
|
|
|
|
agent = environ.get('HTTP_USER_AGENT','default_agent')
|
|
|
|
if agent.startswith('Mozilla'):
|
2019-12-22 04:11:42 +00:00
|
|
|
logger.debug("sending microsoft redirect for agent Mozilla")
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
return home(environ, start_response)
|
2019-12-04 21:30:27 +00:00
|
|
|
response_body = b""
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
status = '302 Moved Temporarily'
|
2019-12-22 04:11:42 +00:00
|
|
|
response_headers = [('Location','http://' + fully_qualified_domain_name + '{{ captiveportal_splash_page }}'),
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
('Content-type','text/html'),
|
|
|
|
('Content-Length',str(len(response_body)))]
|
|
|
|
start_response(status, response_headers)
|
2019-12-22 04:11:42 +00:00
|
|
|
logger.debug("redirect to home. Status: %s Headers: %s"%(status,repr(response_headers)))
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
return [response_body]
|
|
|
|
|
|
|
|
def home(environ,start_response):
|
|
|
|
logger.debug("sending direct to home")
|
2019-12-04 21:30:27 +00:00
|
|
|
response_body = b""
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
status = '302 Moved Temporarily'
|
2019-12-22 04:11:42 +00:00
|
|
|
response_headers = [('Location','http://' + fully_qualified_domain_name + '{{ captiveportal_splash_page }}'),
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
('Content-type','text/html'),
|
|
|
|
('Content-Length',str(len(response_body)))]
|
|
|
|
start_response(status, response_headers)
|
2019-12-22 04:11:42 +00:00
|
|
|
logger.debug("redirect to home. Status: %s Headers: %s"%(status,repr(response_headers)))
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
return [response_body]
|
|
|
|
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
def android(environ, start_response):
|
2018-12-05 21:03:12 +00:00
|
|
|
if environ.get('HTTP_X_FORWARDED_FOR'):
|
|
|
|
ip = environ['HTTP_X_FORWARDED_FOR'].strip()
|
|
|
|
else:
|
|
|
|
ip = environ['REMOTE_ADDR'].strip()
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
system,system_version = platform_info(ip)
|
2019-02-15 05:10:46 +00:00
|
|
|
if system_version is None:
|
|
|
|
return put_302(environ, start_response)
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
if system_version[0:1] < '6':
|
2019-12-05 19:23:46 +00:00
|
|
|
logger.debug("system < 6:{}".format(system_version))
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
location = '/android_splash'
|
|
|
|
set_204after(ip,0)
|
2019-01-09 01:34:24 +00:00
|
|
|
elif system_version[:1] >= '7':
|
2019-12-22 04:11:42 +00:00
|
|
|
location = "http://" + fully_qualified_domain_name + '{{ captiveportal_splash_page }}'
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
else:
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
#set_204after(ip,20)
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
location = '/android_https'
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
agent = environ.get('HTTP_USER_AGENT','default_agent')
|
2019-12-04 21:30:27 +00:00
|
|
|
response_body = b"hello"
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
status = '302 Moved Temporarily'
|
|
|
|
response_headers = [('Location',location)]
|
|
|
|
start_response(status, response_headers)
|
|
|
|
return [response_body]
|
|
|
|
|
|
|
|
def android_splash(environ, start_response):
|
|
|
|
en_txt={ 'message':"Click on the button to go to the IIAB home page",\
|
|
|
|
'btn1':"GO TO IIAB HOME PAGE", \
|
2019-12-23 18:27:28 +00:00
|
|
|
"FQDN": fully_qualified_domain_name + '{{ captiveportal_splash_page }}', \
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
'doc_root':get_iiab_env("WWWROOT") }
|
|
|
|
es_txt={ 'message':"Haga clic en el botón para ir a la página de inicio de IIAB",\
|
2019-12-23 21:41:21 +00:00
|
|
|
"FQDN": fully_qualified_domain_name + '{{ captiveportal_splash_page }}', \
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
'btn1':"IIAB",'doc_root':get_iiab_env("WWWROOT")}
|
2018-12-05 21:03:12 +00:00
|
|
|
txt = en_txt
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
if lang == "en":
|
|
|
|
txt = en_txt
|
|
|
|
elif lang == "es":
|
|
|
|
txt = es_txt
|
|
|
|
response_body = str(j2_env.get_template("simple.template").render(**txt))
|
2019-12-04 21:30:27 +00:00
|
|
|
response_body = response_body.encode()
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
status = '200 OK'
|
|
|
|
response_headers = [('Content-type','text/html'),
|
|
|
|
('Content-Length',str(len(response_body)))]
|
|
|
|
start_response(status, response_headers)
|
|
|
|
return [response_body]
|
|
|
|
|
|
|
|
def android_https(environ, start_response):
|
|
|
|
en_txt={ 'message':"""Please ignore the SECURITY warning which appears after clicking the first button""",\
|
|
|
|
'btn2':'Click this first Go to the browser we need',\
|
|
|
|
'btn1':'Then click this to go to IIAB home page',\
|
2019-12-23 18:27:28 +00:00
|
|
|
"FQDN": fully_qualified_domain_name + '{{ captiveportal_splash_page }}', \
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
'doc_root':get_iiab_env("WWWROOT") }
|
|
|
|
es_txt={ 'message':"Haga clic en el botón para ir a la página de inicio de IIAB",\
|
2019-12-23 18:27:28 +00:00
|
|
|
"FQDN": fully_qualified_domain_name + '{{ captiveportal_splash_page }}', \
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
'btn1':"IIAB",'doc_root':get_iiab_env("WWWROOT")}
|
2018-12-05 21:03:12 +00:00
|
|
|
txt = en_txt
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
if lang == "en":
|
|
|
|
txt = en_txt
|
|
|
|
elif lang == "es":
|
|
|
|
txt = es_txt
|
|
|
|
response_body = str(j2_env.get_template("simple.template").render(**txt))
|
2019-12-04 21:30:27 +00:00
|
|
|
response_body = response_body.encode()
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
status = '200 OK'
|
|
|
|
response_headers = [('Content-type','text/html'),
|
|
|
|
('Content-Length',str(len(response_body)))]
|
|
|
|
start_response(status, response_headers)
|
|
|
|
return [response_body]
|
|
|
|
|
|
|
|
def mac_splash(environ,start_response):
|
2019-12-14 15:58:25 +00:00
|
|
|
logger.debug('in mac_splash')
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
logger.debug("in function mac_splash")
|
2019-12-04 21:30:27 +00:00
|
|
|
en_txt={ 'message': "Click on the button to go to the IIAB home page",\
|
|
|
|
'btn1': "GO TO IIAB HOME PAGE",'success_token': 'Success',
|
2019-12-23 18:27:28 +00:00
|
|
|
"FQDN": fully_qualified_domain_name + '{{ captiveportal_splash_page }}', \
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
'doc_root':get_iiab_env("WWWROOT")}
|
|
|
|
es_txt={ 'message':"Haga clic en el botón para ir a la página de inicio de IIAB",\
|
2019-12-23 18:27:28 +00:00
|
|
|
"FQDN": fully_qualified_domain_name + '{{ captiveportal_splash_page }}', \
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
'btn1':"IIAB",'doc_root':get_iiab_env("WWWROOT")}
|
2018-12-05 21:03:12 +00:00
|
|
|
txt = en_txt
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
if lang == "en":
|
|
|
|
txt = en_txt
|
|
|
|
elif lang == "es":
|
|
|
|
txt = es_txt
|
|
|
|
set_lasttimestamp(ip)
|
|
|
|
response_body = str(j2_env.get_template("mac.template").render(**txt))
|
2019-12-04 21:30:27 +00:00
|
|
|
response_body = response_body.encode()
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
status = '200 Success'
|
|
|
|
response_headers = [('Content-type','text/html'),
|
|
|
|
('Content-Length',str(len(response_body)))]
|
|
|
|
start_response(status, response_headers)
|
|
|
|
return [response_body]
|
|
|
|
|
|
|
|
def macintosh(environ, start_response):
|
2019-12-14 15:58:25 +00:00
|
|
|
logger.debug('in macintosh')
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
global ip
|
|
|
|
logger.debug("in function mcintosh")
|
2018-12-05 21:03:12 +00:00
|
|
|
#print >> sys.stderr , "Geo Print to stderr" + environ['HTTP_HOST']
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
if not is_inactive(ip):
|
|
|
|
set_lasttimestamp(ip)
|
|
|
|
return success(environ,start_response)
|
|
|
|
# determine if it is time to redirect again
|
|
|
|
if is_after204_timeout(ip):
|
|
|
|
set_204after(ip,10)
|
|
|
|
response_body = """<html><head><script>
|
|
|
|
window.location.reload(true)
|
|
|
|
</script></body></html>"""
|
2019-12-04 21:30:27 +00:00
|
|
|
response_body = response_body.encode()
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
status = '302 Moved Temporarily'
|
|
|
|
response_headers = [('content','text/html')]
|
|
|
|
start_response(status, response_headers)
|
|
|
|
return [response_body]
|
|
|
|
else:
|
|
|
|
return mac_splash(environ,start_response)
|
|
|
|
|
|
|
|
# ============= Return html pages ============================
|
|
|
|
def banner(environ, start_response):
|
|
|
|
status = '200 OK'
|
|
|
|
headers = [('Content-type', 'image/png')]
|
|
|
|
start_response(status, headers)
|
2019-12-05 19:23:46 +00:00
|
|
|
image = open("{}/js-menu/menu-files/images/iiab_banner6.png".format(doc_root), "rb").read()
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
return [image]
|
|
|
|
|
|
|
|
def bootstrap(environ, start_response):
|
|
|
|
logger.debug("in bootstrap")
|
|
|
|
status = '200 OK'
|
|
|
|
headers = [('Content-type', 'text/javascript')]
|
|
|
|
start_response(status, headers)
|
2019-12-05 19:23:46 +00:00
|
|
|
boot = open("{}/common/js/bootstrap.min.js".format(doc_root), "rb").read()
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
return [boot]
|
|
|
|
|
|
|
|
def jquery(environ, start_response):
|
|
|
|
logger.debug("in jquery")
|
|
|
|
status = '200 OK'
|
|
|
|
headers = [('Content-type', 'text/javascript')]
|
|
|
|
start_response(status, headers)
|
2019-12-05 19:23:46 +00:00
|
|
|
boot = open("{}/common/js/jquery.min.js".format(doc_root), "rb").read()
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
return [boot]
|
|
|
|
|
|
|
|
def bootstrap_css(environ, start_response):
|
|
|
|
logger.debug("in bootstrap_css")
|
|
|
|
status = '200 OK'
|
|
|
|
headers = [('Content-type', 'text/css')]
|
|
|
|
start_response(status, headers)
|
2019-12-05 19:23:46 +00:00
|
|
|
boot = open("{}/common/css/bootstrap.min.css".format(doc_root), "rb").read()
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
return [boot]
|
|
|
|
|
|
|
|
def null(environ, start_response):
|
2018-12-05 21:03:12 +00:00
|
|
|
status = '404 Not Found'
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
headers = [('Content-type', 'text/html')]
|
|
|
|
start_response(status, headers)
|
2019-12-04 21:30:27 +00:00
|
|
|
return [b""]
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
|
|
|
|
def success(environ, start_response):
|
|
|
|
status = '200 ok'
|
2019-12-04 21:30:27 +00:00
|
|
|
html = b'<html><head><title>Success</title></head><body>Success</body></html>'
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
headers = [('Content-type', 'text/html')]
|
|
|
|
start_response(status, headers)
|
|
|
|
return [html]
|
|
|
|
|
|
|
|
def put_204(environ, start_response):
|
|
|
|
status = '204 No Data'
|
2019-12-04 21:30:27 +00:00
|
|
|
response_body = b''
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
response_headers = [('Content-type','text/html'),
|
|
|
|
('Content-Length',str(len(response_body)))]
|
|
|
|
start_response(status, response_headers)
|
2018-09-29 19:42:49 +00:00
|
|
|
logger.debug("in function put_204: sending 204 html response")
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
return [response_body]
|
|
|
|
|
2018-12-05 21:03:12 +00:00
|
|
|
def put_302(environ, start_response):
|
|
|
|
status = '302 Moved Temporarily'
|
2019-12-04 21:30:27 +00:00
|
|
|
response_body = b''
|
2019-12-22 19:51:29 +00:00
|
|
|
location = "http://" + fully_qualified_domain_name + '{{ captiveportal_splash_page }}'
|
2018-12-05 21:03:12 +00:00
|
|
|
response_headers = [('Content-type','text/html'),
|
2018-12-09 02:46:25 +00:00
|
|
|
('Location',location),
|
2018-12-05 21:03:12 +00:00
|
|
|
('Content-Length',str(len(response_body)))]
|
|
|
|
start_response(status, response_headers)
|
2018-12-09 02:46:25 +00:00
|
|
|
logger.debug("in function put_302: sending 302 html response")
|
2018-12-05 21:03:12 +00:00
|
|
|
return [response_body]
|
|
|
|
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
def parse_agent(agent):
|
|
|
|
system = ''
|
|
|
|
system_version = ''
|
|
|
|
match = re.search(r"(Android)\s([.\d]*)",agent)
|
|
|
|
if match:
|
|
|
|
system = match.group(1)
|
|
|
|
system_version = match.group(2)
|
|
|
|
match = re.search(r"(OS X)\s([\d_]*)",agent)
|
|
|
|
if match:
|
|
|
|
system = match.group(1)
|
|
|
|
system_version = match.group(2)
|
|
|
|
match = re.search(r"(iPhone OS)\s([\d_]*)",agent)
|
|
|
|
if match:
|
|
|
|
system = match.group(1)
|
|
|
|
system_version = match.group(2)
|
|
|
|
match = re.search(r"(Windows NT)\s([\d.]*)",agent)
|
|
|
|
if match:
|
|
|
|
system = match.group(1)
|
|
|
|
system_version = match.group(2)
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
match = re.search(r"(Microsoft NCSI)",agent)
|
|
|
|
if match:
|
|
|
|
system = match.group(1)
|
|
|
|
system_version = "8"
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
return (system, system_version)
|
|
|
|
|
|
|
|
#
|
|
|
|
# ================== Start serving the wsgi application =================
|
|
|
|
def application (environ, start_response):
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
global ip
|
|
|
|
global CATCH
|
|
|
|
global LIST
|
|
|
|
global INACTIVITY_TO
|
|
|
|
|
|
|
|
if 'HTTP_X_FORWARDED_FOR' in environ:
|
|
|
|
ip = environ['HTTP_X_FORWARDED_FOR'].strip()
|
|
|
|
else:
|
2019-12-05 19:23:46 +00:00
|
|
|
data = ['{}: {}\n'.format(key, value) for key, value in sorted(environ.items()) ]
|
|
|
|
#logger.debug("need the correct ip:{}".format(data))
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
ip = environ['REMOTE_ADDR'].strip()
|
2019-12-18 16:36:38 +00:00
|
|
|
cmd="arp -an %s|gawk \'{print $4}\'"%(ip)
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
mac = subprocess.check_output(cmd, shell=True)
|
|
|
|
data = []
|
2019-12-05 19:23:46 +00:00
|
|
|
data.append("host: {}\n".format(environ['HTTP_HOST']))
|
|
|
|
data.append("path: {}\n".format(environ['PATH_INFO']))
|
|
|
|
data.append("query: {}\n".format(environ['QUERY_STRING']))
|
|
|
|
data.append("ip: {}\n".format(ip))
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
agent = environ.get('HTTP_USER_AGENT','default_agent')
|
2019-12-05 19:23:46 +00:00
|
|
|
data.append("AGENT: {}\n".format(agent))
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
logger.debug(data)
|
|
|
|
#print(data)
|
|
|
|
found = False
|
|
|
|
return_204_flag = "False"
|
|
|
|
|
|
|
|
# record the activity with this ip
|
|
|
|
ts=tstamp(datetime.datetime.now(tzutc()))
|
|
|
|
sql = "INSERT or IGNORE INTO users (current_ts,ip) VALUES (?,?)"
|
|
|
|
c.execute(sql,(ts,ip,))
|
|
|
|
sql = "UPDATE users SET current_ts = ? where ip = ?"
|
|
|
|
c.execute(sql,(ts,ip,))
|
|
|
|
if c.rowcount == 0:
|
2019-12-05 19:23:46 +00:00
|
|
|
logger.debug("failed UPDATE users SET current_ts = {} WHERE ip = {}".format(ts,ip,))
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
conn.commit()
|
|
|
|
ymd=datetime.datetime.today().strftime("%y%m%d-%H%M")
|
|
|
|
|
|
|
|
system,system_version = parse_agent(agent)
|
|
|
|
if system != '':
|
|
|
|
update_user(ip, mac, system, system_version, ymd)
|
|
|
|
|
|
|
|
####### Return pages based upon PATH ###############
|
|
|
|
# do more specific stuff first
|
|
|
|
if environ['PATH_INFO'] == "/iiab_banner6.png":
|
|
|
|
return banner(environ, start_response)
|
|
|
|
|
|
|
|
if environ['PATH_INFO'] == "/bootstrap.min.js":
|
|
|
|
return bootstrap(environ, start_response)
|
|
|
|
|
|
|
|
if environ['PATH_INFO'] == "/bootstrap.min.css":
|
|
|
|
return bootstrap_css(environ, start_response)
|
|
|
|
|
|
|
|
if environ['PATH_INFO'] == "/jquery.min.js":
|
|
|
|
return jquery(environ, start_response)
|
|
|
|
|
|
|
|
if environ['PATH_INFO'] == "/favicon.ico":
|
|
|
|
return null(environ, start_response)
|
|
|
|
|
|
|
|
if environ['PATH_INFO'] == "/home_selected":
|
|
|
|
# the js link to home page triggers this ajax url
|
|
|
|
# mark the sign-in conversation completed, return 204 or Success or Success
|
2019-12-05 19:23:46 +00:00
|
|
|
#data = ['{}: {}\n'.format(key, value) for key, value in sorted(environ.items()) ]
|
|
|
|
#logger.debug("need the correct ip:{}".format(data))
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
logger.debug("function: home_selected. Setting flag to return_204")
|
|
|
|
#print("setting flag to return_204")
|
|
|
|
set_204after(ip,PORTAL_TO)
|
|
|
|
set_lasttimestamp(ip)
|
|
|
|
status = '200 OK'
|
2019-12-23 21:41:21 +00:00
|
|
|
response_body = b''
|
|
|
|
response_headers = [('Content-type','text/html'),
|
|
|
|
('Content-Length',str(len(response_body)))]
|
|
|
|
start_response(status, response_headers)
|
|
|
|
return [response_body]
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
|
|
|
|
#### parse OS platform based upon URL ##################
|
|
|
|
# mac
|
|
|
|
if environ['PATH_INFO'] == "/mac_splash":
|
|
|
|
return mac_splash(environ, start_response)
|
|
|
|
|
|
|
|
if environ['PATH_INFO'] == "/step2":
|
|
|
|
return step2(environ, start_response)
|
|
|
|
|
|
|
|
if environ['HTTP_HOST'] == "captive.apple.com" or\
|
|
|
|
environ['HTTP_HOST'] == "appleiphonecell.com" or\
|
|
|
|
environ['HTTP_HOST'] == "*.apple.com.edgekey.net" or\
|
|
|
|
environ['HTTP_HOST'] == "gsp1.apple.com" or\
|
|
|
|
environ['HTTP_HOST'] == "apple.com" or\
|
|
|
|
environ['HTTP_HOST'] == "www.apple.com":
|
|
|
|
current_ts, last_ts, send204after = timeout_info(ip)
|
|
|
|
if not send204after:
|
|
|
|
# take care of uninitialized state
|
|
|
|
set_204after(ip,0)
|
|
|
|
return macintosh(environ, start_response)
|
|
|
|
|
|
|
|
# android
|
|
|
|
if environ['PATH_INFO'] == "/android_splash":
|
|
|
|
return android_splash(environ, start_response)
|
|
|
|
if environ['PATH_INFO'] == "/android_https":
|
|
|
|
return android_https(environ, start_response)
|
|
|
|
if environ['HTTP_HOST'] == "clients3.google.com" or\
|
|
|
|
environ['HTTP_HOST'] == "mtalk.google.com" or\
|
|
|
|
environ['HTTP_HOST'] == "alt7-mtalk.google.com" or\
|
|
|
|
environ['HTTP_HOST'] == "alt6-mtalk.google.com" or\
|
|
|
|
environ['HTTP_HOST'] == "connectivitycheck.android.com" or\
|
2018-12-05 21:03:12 +00:00
|
|
|
environ['PATH_INFO'] == "/gen_204" or\
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
environ['HTTP_HOST'] == "connectivitycheck.gstatic.com":
|
|
|
|
current_ts, last_ts, send204after = timeout_info(ip)
|
2019-12-06 04:31:40 +00:00
|
|
|
logger.debug("current_ts: {} last_ts: {} send204after: {}".format(current_ts, last_ts, send204after,))
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
if not last_ts or (ts - int(last_ts) > INACTIVITY_TO):
|
|
|
|
return android(environ, start_response)
|
|
|
|
elif is_after204_timeout(ip):
|
|
|
|
return put_204(environ,start_response)
|
2018-12-05 21:03:12 +00:00
|
|
|
return android(environ, start_response)
|
Cap2 (#1300)
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* move captive portal to its own role
* runrole still not working
* make apache name consistent, define py_captive_portal_port
* record android fixes
* some progress -- windows8.1 works but detectportal.firefox active for both mac and windows
* works all platforms
* one captive_portal_install not changed to py_captive...
* port into defaults
* windows 7,8,10,mac,ios,android 5,7
* add # to dnsmasq.d/captive
* guess what android 8 might need
* restart apache2 and dnsmasq in role
* do not hard code apache name
* cut out disfunctional experiments
* variable py_captive_portal_port misspelled
* add wildcard serveralias to box.lan vhost to fix default
* add in STDOUT to log
* remove the py_
* add in msn to urls to capture
* missed a few py_
2018-11-18 04:09:40 +00:00
|
|
|
|
|
|
|
# microsoft
|
|
|
|
if environ['HTTP_HOST'] == "ipv6.msftncsi.com" or\
|
|
|
|
environ['HTTP_HOST'] == "detectportal.firefox.com" or\
|
|
|
|
environ['HTTP_HOST'] == "ipv6.msftncsi.com.edgesuite.net" or\
|
|
|
|
environ['HTTP_HOST'] == "www.msftncsi.com" or\
|
|
|
|
environ['HTTP_HOST'] == "www.msftncsi.com.edgesuite.net" or\
|
|
|
|
environ['HTTP_HOST'] == "www.msftconnecttest.com" or\
|
|
|
|
environ['HTTP_HOST'] == "www.msn.com" or\
|
|
|
|
environ['HTTP_HOST'] == "teredo.ipv6.microsoft.com" or\
|
|
|
|
environ['HTTP_HOST'] == "teredo.ipv6.microsoft.com.nsatc.net":
|
|
|
|
return microsoft(environ, start_response)
|
|
|
|
|
2019-12-05 19:23:46 +00:00
|
|
|
logger.debug("executing the default 302 response. [{}".format(data))
|
2018-12-05 21:03:12 +00:00
|
|
|
return put_302(environ,start_response)
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
|
|
|
|
# Instantiate the server
|
2018-12-05 21:03:12 +00:00
|
|
|
if __name__ == "__main__":
|
|
|
|
httpd = make_server (
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
"", # The host name
|
|
|
|
PORT, # A port number where to wait for the request
|
|
|
|
application # The application object name, in this case a function
|
2018-12-05 21:03:12 +00:00
|
|
|
)
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
|
2018-12-05 21:03:12 +00:00
|
|
|
httpd.serve_forever()
|
2019-12-04 21:30:27 +00:00
|
|
|
#vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 background=dark
|
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
add logging with the -l flag
no changes to default_vars.yml
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
add in template dir
rebase bassed upon copy in
cut out obvious dead code
working on put-204
make users a sqlite db
sqlite db has users, and agent info
android timeouts not yet working
android 5 and 6 both work. lost mac
return to a working version for the MAC. Missing the splash
android,mac,windows all appear to work
sqlite get status of execute row == Null
initialize lasttimestamp with ajax call when home is triggered
remove commented code, move towards logging vs print statements
drop iptables captive portal stuff not using port 8090, and dnsmasq
missed deleting trap_enabled
fixes for 6.7 defaults
dispense with apache logs for captive portal, use the rotating portal.log instead
bring in clean defaults and py
Squash debugging details
remove backup file
still cannot dispense with cna on iphone. mac escape from cna broke with these changes
captive comes after iiab in apache config
one filename wrong
logging used for debug, lost mac escape from cna
typos
got mac/iphone full browser back
remove dead code
python was not creating db, or putting ip when first encountered
2018-08-24 00:26:20 +00:00
|
|
|
|