aboutsummaryrefslogtreecommitdiffstats
path: root/notes
diff options
context:
space:
mode:
authorDavid M. Syzdek <syzdek@bindlebinaries.com>2019-05-28 11:06:38 -0800
committerDavid M. Syzdek <syzdek@bindlebinaries.com>2019-05-28 11:06:38 -0800
commit68c9da80ceb8adad2dff8703c7fb02c5a491340a (patch)
tree911be803eb1a2865b6123b0347cd39e83b8a1005 /notes
parent12ea5f6b07dcc3ebca33c67421eb41b0487be6af (diff)
downloadscratchpad-68c9da80ceb8adad2dff8703c7fb02c5a491340a.tar.gz
scratchpad-68c9da80ceb8adad2dff8703c7fb02c5a491340a.tar.bz2
scratchpad-68c9da80ceb8adad2dff8703c7fb02c5a491340a.tar.xz
scratchpad-68c9da80ceb8adad2dff8703c7fb02c5a491340a.zip
changed the return type of ip_assign() to INET
Diffstat (limited to 'notes')
-rw-r--r--notes/projects/radius/sql/ippool-functions.sql15
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 */
150CREATE OR REPLACE FUNCTION ip_assign 150CREATE 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 );
217END; 220END;
218$$; 221$$;
219GRANT EXECUTE 222GRANT EXECUTE