diff options
Diffstat (limited to 'notes/projects')
| -rw-r--r-- | notes/projects/radius/sql/ippool-functions.sql | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/notes/projects/radius/sql/ippool-functions.sql b/notes/projects/radius/sql/ippool-functions.sql index 719467d..256e8f0 100644 --- a/notes/projects/radius/sql/ippool-functions.sql +++ b/notes/projects/radius/sql/ippool-functions.sql | |||
| @@ -145,7 +145,7 @@ $$; | |||
| 145 | * : force IP assignment, even if netblock is not assignable (i.e. static | 145 | * : force IP assignment, even if netblock is not assignable (i.e. static |
| 146 | * assignments) | 146 | * assignments) |
| 147 | * | 147 | * |
| 148 | * Returns TRUE if assigned and FALSE if not assigned | 148 | * Returns the assigned IP address if successful and NULL if not assigned |
| 149 | */ | 149 | */ |
| 150 | CREATE OR REPLACE FUNCTION ip_assign | 150 | CREATE OR REPLACE FUNCTION ip_assign |
| 151 | ( | 151 | ( |
| @@ -155,7 +155,7 @@ CREATE OR REPLACE FUNCTION ip_assign | |||
| 155 | assignNas TEXT DEFAULT NULL, | 155 | assignNas TEXT DEFAULT NULL, |
| 156 | assignForce BOOLEAN DEFAULT FALSE | 156 | assignForce BOOLEAN DEFAULT FALSE |
| 157 | ) | 157 | ) |
| 158 | RETURNS BOOLEAN | 158 | RETURNS INET |
| 159 | LANGUAGE plpgsql | 159 | LANGUAGE plpgsql |
| 160 | SECURITY DEFINER | 160 | SECURITY DEFINER |
| 161 | AS $$ | 161 | AS $$ |
| @@ -172,7 +172,7 @@ BEGIN | |||
| 172 | AND ip.nasId IS NOT NULL | 172 | AND ip.nasId IS NOT NULL |
| 173 | AND ip.address != assignIp; | 173 | AND ip.address != assignIp; |
| 174 | IF ( assignPortCount >= assignPortLimit ) THEN | 174 | IF ( assignPortCount >= assignPortLimit ) THEN |
| 175 | RETURN FALSE; | 175 | RETURN NULL; |
| 176 | END IF; | 176 | END IF; |
| 177 | 177 | ||
| 178 | -- verifies IP address is assignable | 178 | -- verifies IP address is assignable |
| @@ -182,7 +182,7 @@ BEGIN | |||
| 182 | WHERE netblock.network >>= set_masklen( assignIp, 32 ) | 182 | WHERE netblock.network >>= set_masklen( assignIp, 32 ) |
| 183 | AND netblock.busyout = TRUE; | 183 | AND netblock.busyout = TRUE; |
| 184 | IF FOUND THEN | 184 | IF FOUND THEN |
| 185 | RETURN FALSE; | 185 | RETURN NULL; |
| 186 | END IF; | 186 | END IF; |
| 187 | END IF; | 187 | END IF; |
| 188 | 188 | ||
| @@ -203,7 +203,7 @@ BEGIN | |||
| 203 | WHERE netblock.network >>= assignIp; | 203 | WHERE netblock.network >>= assignIp; |
| 204 | END IF; | 204 | END IF; |
| 205 | IF ( assignNasId IS NULL ) THEN | 205 | IF ( assignNasId IS NULL ) THEN |
| 206 | RETURN FALSE; | 206 | RETURN NULL; |
| 207 | END IF; | 207 | END IF; |
| 208 | 208 | ||
| 209 | -- updates record | 209 | -- updates record |
| @@ -213,7 +213,10 @@ BEGIN | |||
| 213 | WHERE address = set_masklen( assignIp, 32 ) | 213 | WHERE address = set_masklen( assignIp, 32 ) |
| 214 | AND nasId IS NULL; | 214 | AND nasId IS NULL; |
| 215 | 215 | ||
| 216 | RETURN FOUND; | 216 | IF NOT FOUND THEN |
| 217 | RETURN NULL; | ||
| 218 | END IF; | ||
| 219 | RETURN set_masklen( assignIp, 32 ); | ||
| 217 | END; | 220 | END; |
| 218 | $$; | 221 | $$; |
| 219 | GRANT EXECUTE | 222 | GRANT EXECUTE |
