void shell_port(char ** argv, int elem) {
- int n, i;
+ int n, i, m, o;
if (elem == 1) {
else
printf("\033[92mCable is fine!\033[0m\n", settings.portStatistics[n].errorDist);
}
+ } else if (strncmp(argv[1], "mirror", 6) == 0) {
+
+ if (elem == 3) {
+ if (strncmp(argv[2], "off", 3) == 0) {
+ password();
+ printError(gs105e_mirrorPorts(0, 0));
+ return;
+
+ }
+ }
+
+ if (elem < 4) {
+ printf("port mirror output input [input.....]\n");
+ return;
+ }
+
+ n = atoi(argv[2]);
+
+ if (n < 1 | n > 5) {
+ printf("Invalid Port %i\n", n);
+ return;
+ }
+
+ o = 0;
+
+ for (m = 3; m < elem; m++) {
+ i = atoi(argv[m]);
+ if (i < 1 | i > 5) {
+ printf("Invalid Port %i\n", i);
+ return;
+ }
+
+ if (i == n) {
+ printf("Output can't be input port!\n");
+ return;
+ }
+
+ o |= (0x80 >> (i - 1));
+ }
+ password();
+ printError(gs105e_mirrorPorts(n, o));
+
}
}