Project

General

Profile

Download (3.89 KB) Statistics
| Branch: | Tag: | Revision:
1
<?php
2

    
3
/*
4
	itemid.inc
5

    
6
	part of pfSense (https://www.pfsense.org)
7
	Copyright (c) 2009-2016 Electric Sheep Fencing, LLC.
8
	Copyright (C) 2009 Janne Enberg <janne.enberg@lietu.net>
9
	All rights reserved.
10

    
11
	Redistribution and use in source and binary forms, with or without
12
	modification, are permitted provided that the following conditions are met:
13

    
14
	1. Redistributions of source code must retain the above copyright notice,
15
	   this list of conditions and the following disclaimer.
16

    
17
	2. Redistributions in binary form must reproduce the above copyright
18
	   notice, this list of conditions and the following disclaimer in
19
	   the documentation and/or other materials provided with the
20
	   distribution.
21

    
22
	3. All advertising materials mentioning features or use of this software
23
	   must display the following acknowledgment:
24
	   "This product includes software developed by the pfSense Project
25
	   for use in the pfSense® software distribution. (http://www.pfsense.org/).
26

    
27
	4. The names "pfSense" and "pfSense Project" must not be used to
28
	   endorse or promote products derived from this software without
29
	   prior written permission. For written permission, please contact
30
	   coreteam@pfsense.org.
31

    
32
	5. Products derived from this software may not be called "pfSense"
33
	   nor may "pfSense" appear in their names without prior written
34
	   permission of the Electric Sheep Fencing, LLC.
35

    
36
	6. Redistributions of any form whatsoever must retain the following
37
	   acknowledgment:
38

    
39
	"This product includes software developed by the pfSense Project
40
	for use in the pfSense software distribution (http://www.pfsense.org/).
41

    
42
	THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
43
	EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
44
	IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
45
	PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR
46
	ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
47
	SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
48
	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
49
	LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
50
	HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
51
	STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
52
	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
53
	OF THE POSSIBILITY OF SUCH DAMAGE.
54
*/
55

    
56
/****f* itemid/delete_id
57
 * NAME
58
 *   delete_id - delete an item with ['id'] = $id from $array
59
 * INPUTS
60
 *   $id       - int: The ID to delete
61
 *   $array    - array to delete the item from
62
 * RESULT
63
 *   boolean   - true if item was found and deleted
64
 ******/
65
function delete_id($id, &$array) {
66
	// Index to delete
67
	$delete_index = NULL;
68

    
69
	if (!is_array($array)) {
70
		return false;
71
	}
72

    
73
	// Search for the item in the array
74
	foreach ($array as $key => $item) {
75
		// If this item is the one we want to delete
76
		if (isset($item['associated-rule-id']) && $item['associated-rule-id'] == $id) {
77
			$delete_index = $key;
78
			break;
79
		}
80
	}
81

    
82
	// If we found the item, unset it
83
	if ($delete_index !== NULL) {
84
		unset($array[$delete_index]);
85
		return true;
86
	} else {
87
		return false;
88
	}
89

    
90
}
91

    
92
/****f* itemid/get_id
93
 * NAME
94
 *   get_id - Get an item id with ['associated-rule-id'] = $id from $array
95
 * INPUTS
96
 *   $id       - string: The ID to get
97
 *   $array    - array to get the item from
98
 * RESULT
99
 *   mixed   - The id, NULL if not found
100
 ******/
101
function get_id($id, &$array) {
102
	// Use $foo = &get_id('id', array('id'=>'value'));
103

    
104
	if (!is_array($array)) {
105
		return false;
106
	}
107

    
108
	// Search for the item in the array
109
	foreach ($array as $key => $item) {
110
		// If this item is the one we want to delete
111
		if (isset($item['associated-rule-id']) && $item['associated-rule-id'] == $id) {
112
			return $key;
113
		}
114
	}
115

    
116
	return false;
117
}
118

    
119
/****f* itemid/get_unique_id
120
 * NAME
121
 *   get_unique_id - get a unique identifier
122
 * RESULT
123
 *   string     - unique id
124
 ******/
125
function get_unique_id() {
126

    
127
	return uniqid("nat_", true);
128
}
129

    
130
?>
(29-29/65)