aboutsummaryrefslogtreecommitdiffstats
path: root/notes
diff options
context:
space:
mode:
authorDavid M. Syzdek <syzdek@bindlebinaries.com>2019-05-09 13:21:04 -0800
committerDavid M. Syzdek <syzdek@bindlebinaries.com>2019-05-09 13:21:04 -0800
commitd0d9a43d752a1c098762fe45d04485a862731a7b (patch)
tree785bf9ebd3d700da1fc267a12edd485ac84dfc3d /notes
parentda8b2f14d8daffdaad319b5500ada7baba4d5359 (diff)
downloadscratchpad-d0d9a43d752a1c098762fe45d04485a862731a7b.tar.gz
scratchpad-d0d9a43d752a1c098762fe45d04485a862731a7b.tar.bz2
scratchpad-d0d9a43d752a1c098762fe45d04485a862731a7b.tar.xz
scratchpad-d0d9a43d752a1c098762fe45d04485a862731a7b.zip
Adding function to add IP assignment
Diffstat (limited to 'notes')
-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