X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fplugins%2Fradius%2Fradiusclient%2Flib%2Futil.c;fp=pppd%2Fplugins%2Fradius%2Fradiusclient%2Flib%2Futil.c;h=0000000000000000000000000000000000000000;hb=4abe4296f0eddbb2b6ff11dbbd27100156c85f87;hp=491ef7f9848c1a867a0d21c92235132106ec2fff;hpb=4b9bf9ae2701487191810e564aaa4672eb95130e;p=ppp.git diff --git a/pppd/plugins/radius/radiusclient/lib/util.c b/pppd/plugins/radius/radiusclient/lib/util.c deleted file mode 100644 index 491ef7f..0000000 --- a/pppd/plugins/radius/radiusclient/lib/util.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * $Id: util.c,v 1.3 2004/10/28 00:21:48 paulus Exp $ - * - * Copyright (C) 1995,1996,1997 Lars Fenneberg - * - * Copyright 1992 Livingston Enterprises, Inc. - * - * Copyright 1992,1993, 1994,1995 The Regents of the University of Michigan - * and Merit Network, Inc. All Rights Reserved - * - * See the file COPYRIGHT for the respective terms and conditions. - * If the file is missing contact me at lf@elemental.net - * and I'll send you a copy. - * - */ - -#include -#include -#include - -/* - * Function: rc_str2tm - * - * Purpose: Turns printable string into correct tm struct entries. - * - */ - -static const char * months[] = - { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" - }; - -void rc_str2tm (char *valstr, struct tm *tm) -{ - int i; - - /* Get the month */ - for (i = 0; i < 12; i++) - { - if (strncmp (months[i], valstr, 3) == 0) - { - tm->tm_mon = i; - i = 13; - } - } - - /* Get the Day */ - tm->tm_mday = atoi (&valstr[4]); - - /* Now the year */ - tm->tm_year = atoi (&valstr[7]) - 1900; -} - -/* - * Function: rc_getifname - * - * Purpose: get the network interface name associated with this tty - * - */ - -char *rc_getifname(char *tty) -{ -#if defined(BSD4_4) || defined(linux) - static char name[512]; - int fd; - - if ((fd = open(tty, O_RDWR|O_NDELAY)) < 0) { - rc_log(LOG_ERR, "rc_getifname: can't open %s: %s", tty, strerror(errno)); - return NULL; - } -#endif - -#ifdef BSD4_4 - strcpy(name,ttyname(fd)); - if (strlen(name) < 1) { - rc_log(LOG_ERR, "rc_getifname: can't get attached interface of %s: %s", tty, strerror(errno)); - close(fd); - return NULL; - } -#elif linux - if (ioctl(fd, SIOCGIFNAME, name) < 0) { - rc_log(LOG_ERR, "rc_getifname: can't ioctl %s: %s", tty, strerror(errno)); - close(fd); - return NULL; - } -#else - return NULL; -#endif - -#if defined(BSD4_4) || defined(linux) - close(fd); - return name; -#endif -} - -/* - * Function: rc_getstr - * - * Purpose: Reads in a string from the user (with or witout echo) - * - */ - -char *rc_getstr (char *prompt, int do_echo) -{ - int in, out; - char *p; - sigset_t newset; - sigset_t oldset; - struct termios term_old, term_new; - static char buf[GETSTR_LENGTH]; - int is_term, flags, old_flags; - char c; - int flushed = 0; - - in = fileno(stdin); - out = fileno(stdout); - - (void) sigemptyset (&newset); - (void) sigaddset (&newset, SIGINT); - (void) sigaddset (&newset, SIGTSTP); - (void) sigaddset (&newset, SIGQUIT); - - (void) sigprocmask (SIG_BLOCK, &newset, &oldset); - - if ((is_term = isatty(in))) - { - - (void) tcgetattr (in, &term_old); - term_new = term_old; - if (do_echo) - term_new.c_lflag |= ECHO; - else - term_new.c_lflag &= ~ECHO; - - if (tcsetattr (in, TCSAFLUSH, &term_new) == 0) - flushed = 1; - - } - else - { - is_term = 0; - if ((flags = fcntl(in, F_GETFL, 0)) >= 0) { - old_flags = flags; - flags |= O_NONBLOCK; - - fcntl(in, F_SETFL, flags); - - while (read(in, &c, 1) > 0) - /* nothing */; - - fcntl(in, F_SETFL, old_flags); - - flushed = 1; - } - } - - write(out, prompt, strlen(prompt)); - - /* well, this looks ugly, but it handles the following end of line - markers: \r \r\0 \r\n \n \n\r, at least at a second pass */ - - p = buf; - for (;;) - { - if (read(in, &c, 1) <= 0) - return NULL; - - if (!flushed && ((c == '\0') || (c == '\r') || (c == '\n'))) { - flushed = 1; - continue; - } - - if ((c == '\r') || (c == '\n')) - break; - - flushed = 1; - - if (p < buf + GETSTR_LENGTH) - { - if (do_echo && !is_term) - write(out, &c, 1); - *p++ = c; - } - } - - *p = '\0'; - - if (!do_echo || !is_term) write(out, "\r\n", 2); - - if (is_term) - tcsetattr (in, TCSAFLUSH, &term_old); - else { - if ((flags = fcntl(in, F_GETFL, 0)) >= 0) { - old_flags = flags; - flags |= O_NONBLOCK; - - fcntl(in, F_SETFL, flags); - - while (read(in, &c, 1) > 0) - /* nothing */; - - fcntl(in, F_SETFL, old_flags); - } - } - - (void) sigprocmask (SIG_SETMASK, &oldset, NULL); - - return (buf); -} - -void rc_mdelay(int msecs) -{ - struct timeval tv; - - tv.tv_sec = (int) msecs / 1000; - tv.tv_usec = (msecs % 1000) * 1000; - - select(0,(fd_set *)NULL,(fd_set *)NULL,(fd_set *)NULL, &tv); -} - -/* - * Function: rc_mksid - * - * Purpose: generate a quite unique string - * - * Remarks: not that unique at all... - * - */ - -char * -rc_mksid (void) -{ - static char buf[15]; - static unsigned short int cnt = 0; - sprintf (buf, "%08lX%04X%02hX", - (unsigned long int) time (NULL), - (unsigned int) getpid (), - cnt & 0xFF); - cnt++; - return buf; -}