int main(int argc, char *argv[]) { FILE *fp; int c; if (pledge("stdio rpath", NULL) == -1) err(1, "pledge"); fp = NULL; while ((c = getopt(argc, argv, "Ddpt:w:")) != -1) { switch (c) { #ifdef DEBUG case 'D': Debug = 1; break; #endif case 'd': Flags |= AC_D; break; case 'p': Flags |= AC_P; break; case 't': /* only do specified ttys */ add_tty(optarg); break; case 'w': fp = file(optarg); break; case '?': default: usage(); break; } } if (optind < argc) { /* * initialize user list */ for (; optind < argc; optind++) { Users = update_user(Users, argv[optind], 0L); } Flags |= AC_U; /* freeze user list */ } if (Flags & AC_D) Flags &= ~AC_P; if (fp == NULL) { /* * if _PATH_WTMP does not exist, exit quietly */ if (access(_PATH_WTMP, 0) != 0 && errno == ENOENT) return 0; fp = file(_PATH_WTMP); } ac(fp); return 0; }
struct ipw_tty *ipwireless_tty_create(struct ipw_hardware *hardware, struct ipw_network *network, dev_node_t *nodes) { int i, j; for (i = 0; i < IPWIRELESS_PCMCIA_MINOR_RANGE; i++) { int allfree = 1; for (j = i; j < IPWIRELESS_PCMCIA_MINORS; j += IPWIRELESS_PCMCIA_MINOR_RANGE) if (ttys[j] != NULL) { allfree = 0; break; } if (allfree) { j = i; if (add_tty(&nodes[0], j, hardware, network, IPW_CHANNEL_DIALLER, IPW_CHANNEL_RAS, TTYTYPE_MODEM)) return NULL; j += IPWIRELESS_PCMCIA_MINOR_RANGE; if (add_tty(&nodes[1], j, hardware, network, IPW_CHANNEL_DIALLER, -1, TTYTYPE_MONITOR)) return NULL; j += IPWIRELESS_PCMCIA_MINOR_RANGE; if (add_tty(NULL, j, hardware, network, IPW_CHANNEL_RAS, -1, TTYTYPE_RAS_RAW)) return NULL; nodes[0].next = &nodes[1]; nodes[1].next = NULL; return ttys[i]; } } return NULL; }