diff options
| author | David M. Syzdek <syzdek@bindlebinaries.com> | 2019-05-09 13:21:04 -0800 |
|---|---|---|
| committer | David M. Syzdek <syzdek@bindlebinaries.com> | 2019-05-09 13:21:04 -0800 |
| commit | d0d9a43d752a1c098762fe45d04485a862731a7b (patch) | |
| tree | 785bf9ebd3d700da1fc267a12edd485ac84dfc3d | |
| parent | da8b2f14d8daffdaad319b5500ada7baba4d5359 (diff) | |
| download | scratchpad-d0d9a43d752a1c098762fe45d04485a862731a7b.tar.gz scratchpad-d0d9a43d752a1c098762fe45d04485a862731a7b.tar.bz2 scratchpad-d0d9a43d752a1c098762fe45d04485a862731a7b.tar.xz scratchpad-d0d9a43d752a1c098762fe45d04485a862731a7b.zip | |
Adding function to add IP assignment
| -rw-r--r-- | notes/projects/radius/sql/ippool-schema.sql | 37 |
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 | */ |
| 270 | CREATE 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 $$ | ||
| 280 | DECLARE | ||
| 281 | BEGIN | ||
| 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; | ||
| 296 | END; | ||
| 297 | $$; | ||
| 298 | |||
| 299 | |||
| 300 | /* | ||
| 301 | * updates timestamp of addresses | ||
| 302 | * | ||
| 303 | * returns trigger | ||
| 304 | */ | ||
| 270 | CREATE OR REPLACE FUNCTION ip_trigger | 305 | CREATE OR REPLACE FUNCTION ip_trigger |
| 271 | ( ) | 306 | ( ) |
| 272 | RETURNS trigger | 307 | RETURNS trigger |
