aboutsummaryrefslogtreecommitdiffstats
path: root/notes/projects/radius/sql/ippool-schema.sql
diff options
context:
space:
mode:
Diffstat (limited to 'notes/projects/radius/sql/ippool-schema.sql')
-rw-r--r--notes/projects/radius/sql/ippool-schema.sql37
1 files changed, 36 insertions, 1 deletions
diff --git a/notes/projects/radius/sql/ippool-schema.sql b/notes/projects/radius/sql/ippool-schema.sql
index ee12658..f0b259d 100644
--- a/notes/projects/radius/sql/ippool-schema.sql
+++ b/notes/projects/radius/sql/ippool-schema.sql
@@ -127,7 +127,7 @@ CREATE TABLE IF NOT EXISTS netblock
127 poolId INTEGER NOT NULL, 127 poolId INTEGER NOT NULL,
128 regionId INTEGER, 128 regionId INTEGER,
129 active BOOLEAN NOT NULL DEFAULT TRUE, 129 active BOOLEAN NOT NULL DEFAULT TRUE,
130 description VARCHAR(32), 130 description VARCHAR(256),
131 PRIMARY KEY ( id ), 131 PRIMARY KEY ( id ),
132 FOREIGN KEY ( poolId ) 132 FOREIGN KEY ( poolId )
133 REFERENCES pool 133 REFERENCES pool
@@ -267,6 +267,41 @@ $$;
267 * 267 *
268 * returns trigger 268 * returns trigger
269 */ 269 */
270CREATE OR REPLACE FUNCTION ip_assign
271(
272 assignIp INET,
273 assignUser TEXT,
274 assignNas TEXT DEFAULT NULL,
275 assignSess TEXT DEFAULT NULL
276)
277 RETURNS BOOLEAN
278 LANGUAGE plpgsql
279 AS $$
280DECLARE
281BEGIN
282
283 -- sets defaults
284 IF ( assignSess IS NULL ) THEN
285 assignSess := 'user:' || assignUser;
286 END IF;
287
288 -- updates record
289 UPDATE ip
290 SET nasId = ( SELECT id FROM nas WHERE name LIKE assignNas ),
291 username = assignUser,
292 acctSession = assignSess
293 WHERE address = set_masklen( assignIp, 32 );
294
295 RETURN FOUND;
296END;
297$$;
298
299
300/*
301 * updates timestamp of addresses
302 *
303 * returns trigger
304 */
270CREATE OR REPLACE FUNCTION ip_trigger 305CREATE OR REPLACE FUNCTION ip_trigger
271( ) 306( )
272 RETURNS trigger 307 RETURNS trigger