@@ -146,9 +146,6 @@ void send_eee(int s)
146146 char * header = "HTTP/1.1 200 OK\r\n"
147147 "Content-Type: application/json; charset=UTF-8\r\n\r\n" ;
148148
149- time_t now = time (NULL );
150- now = last_called ? last_called + 1 : now ; // Make sure we don't divide by 0 for rates
151-
152149 ports = json_object_new_array_ext (PORTS );
153150 for (int i = 1 ; i <= PORTS ; i ++ ) {
154151 v = json_object_new_object ();
@@ -166,13 +163,41 @@ void send_eee(int s)
166163 json_object_object_add (v , "active" , json_object_new_int ((i % 2 ) ? 1 : 0 ));
167164 json_object_array_add (ports , v );
168165 }
169- last_called = now ;
170166
171167 write (s , header , strlen (header ));
172168
173169 jstring = json_object_to_json_string_ext (ports , JSON_C_TO_STRING_PLAIN );
174170 write (s , jstring , strlen (jstring ));
175- json_object_put (v );
171+ json_object_put (ports );
172+ }
173+
174+
175+ void send_mirror (int s )
176+ {
177+ uint16_t mirror_tx , mirror_rx = 0 ;
178+ char mirror_tx_buf [20 ];
179+ char mirror_rx_buf [20 ];
180+ struct json_object * mirror ;
181+ const char * jstring ;
182+ char * header = "HTTP/1.1 200 OK\r\n"
183+ "Content-Type: application/json; charset=UTF-8\r\n\r\n" ;
184+
185+ mirror = json_object_new_object ();
186+ json_object_object_add (mirror , "mPort" , json_object_new_int (1 ));
187+ json_object_object_add (mirror , "enabled" , json_object_new_int (1 ));
188+
189+ mirror_tx = 0b000110 ;
190+ mirror_rx = 0b000010 ;
191+ sprintf (mirror_tx_buf , "%016b" , mirror_tx );
192+ sprintf (mirror_rx_buf , "%016b" , mirror_rx );
193+ json_object_object_add (mirror , "mirror_tx" , json_object_new_string (mirror_tx_buf ));
194+ json_object_object_add (mirror , "mirror_rx" , json_object_new_string (mirror_rx_buf ));
195+
196+ write (s , header , strlen (header ));
197+
198+ jstring = json_object_to_json_string_ext (mirror , JSON_C_TO_STRING_PLAIN );
199+ write (s , jstring , strlen (jstring ));
200+ json_object_put (mirror );
176201}
177202
178203
@@ -303,6 +328,11 @@ void launch(struct Server *server)
303328 send_basic_info (new_socket );
304329 goto done ;
305330 }
331+ if (!strncmp (& buffer [4 ], "/mirror.json" , 12 )) {
332+ printf ("Mirror request\n" );
333+ send_mirror (new_socket );
334+ goto done ;
335+ }
306336 if (!strncmp (& buffer [4 ], "/vlan.json?vid=" , 15 )) {
307337 int vlan = atoi (& buffer [19 ]);
308338 printf ("VLAN request for %d\n" , vlan );
0 commit comments