+#ifdef DIAGNOSTICS
+ /*
+ * Check for desired diagnostics capabilities.
+ */
+ if (argc > 0 && !strncmp(*argv, "-D", 2)) {
+ *argv += 2;
+ if (**argv == '\0') {
+ if (argc < 2) {
+ usage();
+ /* NOT REACHED */
+ }
+ argv++, argc--;
+ if (**argv == '\0') {
+ usage();
+ /* NOT REACHED */
+ }
+ }
+ if (!strcmp(*argv, "report")) {
+ diagnostic |= TD_REPORT|TD_OPTIONS;
+ } else if (!strcmp(*argv, "exercise")) {
+ diagnostic |= TD_EXERCISE;
+ } else if (!strcmp(*argv, "netdata")) {
+ diagnostic |= TD_NETDATA;
+ } else if (!strcmp(*argv, "ptydata")) {
+ diagnostic |= TD_PTYDATA;
+ } else if (!strcmp(*argv, "options")) {
+ diagnostic |= TD_OPTIONS;
+ } else {
+ usage();
+ /* NOT REACHED */
+ }
+ goto top;
+ }
+#endif /* DIAGNOSTICS */
+
+#ifdef BFTPDAEMON
+ /*
+ * Check for bftp daemon
+ */
+ if (argc > 0 && !strncmp(*argv, "-B", 2)) {
+ bftpd++;
+ goto top;
+ }
+#endif /* BFTPDAEMON */
+
+ if (argc > 0 && **argv == '-') {
+ fprintf(stderr, "telnetd: %s: unknown option\n", *argv+1);
+ usage();
+ /* NOT REACHED */
+ }
+