Project

General

Profile

« Previous | Next » 

Revision b45630bf

Added by Jim Pingle about 14 years ago

Fix whitespace.

View differences:

usr/local/www/diag_arp.php
88 88
$p = 0;
89 89
// Put everything together again
90 90
while($i < $leases_count) {
91
        /* split the line by space */
92
        $data = explode(" ", $leases_content[$i]);
93
        /* walk the fields */
94
        $f = 0;
95
        $fcount = count($data);
96
        /* with less then 20 fields there is nothing useful */
97
        if($fcount < 20) {
98
                $i++;
99
                continue;
100
        }
101
        while($f < $fcount) {
102
                switch($data[$f]) {
103
                        case "failover":
104
                                $pools[$p]['name'] = $data[$f+2];
105
                                $pools[$p]['mystate'] = $data[$f+7];
106
                                $pools[$p]['peerstate'] = $data[$f+14];
107
                                $pools[$p]['mydate'] = $data[$f+10];
108
                                $pools[$p]['mydate'] .= " " . $data[$f+11];
109
                                $pools[$p]['peerdate'] = $data[$f+17];
110
                                $pools[$p]['peerdate'] .= " " . $data[$f+18];
111
                                $p++;
112
                                $i++;
113
                                continue 3;
114
                        case "lease":
115
                                $leases[$l]['ip'] = $data[$f+1];
116
                                $leases[$l]['type'] = "dynamic";
117
                                $f = $f+2;
118
                                break;
119
                        case "starts":
120
                                $leases[$l]['start'] = $data[$f+2];
121
                                $leases[$l]['start'] .= " " . $data[$f+3];
122
                                $f = $f+3;
123
                                break;
124
                        case "ends":
125
                                $leases[$l]['end'] = $data[$f+2];
126
                                $leases[$l]['end'] .= " " . $data[$f+3];
127
                                $f = $f+3;
128
                                break;
129
                        case "tstp":
130
                                $f = $f+3;
131
                                break;
132
                        case "tsfp":
133
                                $f = $f+3;
134
                                break;
135
                        case "atsfp":
136
                                $f = $f+3;
137
                                break;
138
                        case "cltt":
139
                                $f = $f+3;
140
                                break;
141
                        case "binding":
142
                                switch($data[$f+2]) {
143
                                        case "active":
144
                                                $leases[$l]['act'] = "active";
145
                                                break;
146
                                        case "free":
147
                                                $leases[$l]['act'] = "expired";
148
                                                $leases[$l]['online'] = "offline";
149
                                                break;
150
                                        case "backup":
151
                                                $leases[$l]['act'] = "reserved";
152
                                                $leases[$l]['online'] = "offline";
153
                                                break;
154
                                }
155
                                $f = $f+1;
156
                                break;
157
                        case "next":
158
                                /* skip the next binding statement */
159
                                $f = $f+3;
160
                                break;
91
	/* split the line by space */
92
	$data = explode(" ", $leases_content[$i]);
93
	/* walk the fields */
94
	$f = 0;
95
	$fcount = count($data);
96
	/* with less then 20 fields there is nothing useful */
97
	if($fcount < 20) {
98
		$i++;
99
		continue;
100
	}
101
	while($f < $fcount) {
102
		switch($data[$f]) {
103
			case "failover":
104
				$pools[$p]['name'] = $data[$f+2];
105
				$pools[$p]['mystate'] = $data[$f+7];
106
				$pools[$p]['peerstate'] = $data[$f+14];
107
				$pools[$p]['mydate'] = $data[$f+10];
108
				$pools[$p]['mydate'] .= " " . $data[$f+11];
109
				$pools[$p]['peerdate'] = $data[$f+17];
110
				$pools[$p]['peerdate'] .= " " . $data[$f+18];
111
				$p++;
112
				$i++;
113
				continue 3;
114
			case "lease":
115
				$leases[$l]['ip'] = $data[$f+1];
116
				$leases[$l]['type'] = "dynamic";
117
				$f = $f+2;
118
				break;
119
			case "starts":
120
				$leases[$l]['start'] = $data[$f+2];
121
				$leases[$l]['start'] .= " " . $data[$f+3];
122
				$f = $f+3;
123
				break;
124
			case "ends":
125
				$leases[$l]['end'] = $data[$f+2];
126
				$leases[$l]['end'] .= " " . $data[$f+3];
127
				$f = $f+3;
128
				break;
129
			case "tstp":
130
				$f = $f+3;
131
				break;
132
			case "tsfp":
133
				$f = $f+3;
134
				break;
135
			case "atsfp":
136
				$f = $f+3;
137
				break;
138
			case "cltt":
139
				$f = $f+3;
140
				break;
141
			case "binding":
142
				switch($data[$f+2]) {
143
					case "active":
144
						$leases[$l]['act'] = "active";
145
						break;
146
					case "free":
147
						$leases[$l]['act'] = "expired";
148
						$leases[$l]['online'] = "offline";
149
						break;
150
					case "backup":
151
						$leases[$l]['act'] = "reserved";
152
						$leases[$l]['online'] = "offline";
153
						break;
154
				}
155
				$f = $f+1;
156
				break;
157
			case "next":
158
				/* skip the next binding statement */
159
				$f = $f+3;
160
				break;
161 161
			case "rewind":
162 162
				/* skip the rewind binding statement */
163 163
				$f = $f+3;
164 164
				break;
165
                        case "hardware":
166
                                $leases[$l]['mac'] = $data[$f+2];
167
                                /* check if it's online and the lease is active */
168
                                if($leases[$l]['act'] == "active") {
169
                                        $online = exec("/usr/sbin/arp -an |/usr/bin/awk '/{$leases[$l]['ip']}/ {print}'|wc -l");
170
                                        if ($online == 1) {
171
                                                $leases[$l]['online'] = 'online';
172
                                        } else {
173
                                                $leases[$l]['online'] = 'offline';
174
                                        }
175
                                }
176
                                $f = $f+2;
177
                                break;
178
                        case "client-hostname":
179
                                if($data[$f+1] <> "") {
180
                                        $leases[$l]['hostname'] = preg_replace('/"/','',$data[$f+1]);
181
                                } else {
182
                                        $hostname = gethostbyaddr($leases[$l]['ip']);
183
                                        if($hostname <> "") {
184
                                                $leases[$l]['hostname'] = $hostname;
185
                                        }
186
                                }
187
                                $f = $f+1;
188
                                break;
189
                        case "uid":
190
                                $f = $f+1;
191
                                break;
192
                }
193
                $f++;
194
        }
195
        $l++;
196
        $i++;
165
			case "hardware":
166
				$leases[$l]['mac'] = $data[$f+2];
167
				/* check if it's online and the lease is active */
168
				if($leases[$l]['act'] == "active") {
169
					$online = exec("/usr/sbin/arp -an |/usr/bin/awk '/{$leases[$l]['ip']}/ {print}'|wc -l");
170
					if ($online == 1) {
171
						$leases[$l]['online'] = 'online';
172
					} else {
173
						$leases[$l]['online'] = 'offline';
174
					}
175
				}
176
				$f = $f+2;
177
				break;
178
			case "client-hostname":
179
				if($data[$f+1] <> "") {
180
					$leases[$l]['hostname'] = preg_replace('/"/','',$data[$f+1]);
181
				} else {
182
					$hostname = gethostbyaddr($leases[$l]['ip']);
183
					if($hostname <> "") {
184
						$leases[$l]['hostname'] = $hostname;
185
					}
186
				}
187
				$f = $f+1;
188
				break;
189
			case "uid":
190
				$f = $f+1;
191
				break;
192
		}
193
		$f++;
194
	}
195
	$l++;
196
	$i++;
197 197
}
198 198

  
199 199
/* remove duplicate items by mac address */
200 200
if(count($leases) > 0) {
201
        $leases = remove_duplicate($leases,"ip");
201
	$leases = remove_duplicate($leases,"ip");
202 202
}
203 203

  
204 204
if(count($pools) > 0) {
205
        $pools = remove_duplicate($pools,"name");
206
        asort($pools);
205
	$pools = remove_duplicate($pools,"name");
206
	asort($pools);
207 207
}
208 208

  
209 209
// Put this in an easy to use form
......
239 239
	}
240 240
}
241 241

  
242
function _getHostName($mac,$ip)
243
{
242
function _getHostName($mac,$ip) {
244 243
	global $dhcpmac, $dhcpip;
245 244

  
246 245
	if ($dhcpmac[$mac])

Also available in: Unified diff