diff options
Diffstat (limited to '')
-rw-r--r-- | lib/rlogin.c (renamed from libmisc/rlogin.c) | 104 |
1 files changed, 32 insertions, 72 deletions
diff --git a/libmisc/rlogin.c b/lib/rlogin.c index fa67dc3..cbc05dd 100644 --- a/libmisc/rlogin.c +++ b/lib/rlogin.c @@ -18,76 +18,36 @@ #include <stdio.h> #include <pwd.h> #include <netdb.h> + +#include "atoi/str2i.h" + + static struct { int spd_name; int spd_baud; } speed_table[] = { -#ifdef B50 - { - B50, 50}, -#endif -#ifdef B75 - { - B75, 75}, -#endif -#ifdef B110 - { - B110, 110}, -#endif -#ifdef B134 - { - B134, 134}, -#endif -#ifdef B150 - { - B150, 150}, -#endif -#ifdef B200 - { - B200, 200}, -#endif -#ifdef B300 - { - B300, 300}, -#endif -#ifdef B600 - { - B600, 600}, -#endif -#ifdef B1200 - { - B1200, 1200}, -#endif -#ifdef B1800 - { - B1800, 1800}, -#endif -#ifdef B2400 - { - B2400, 2400}, -#endif -#ifdef B4800 - { - B4800, 4800}, -#endif -#ifdef B9600 - { - B9600, 9600}, -#endif -#ifdef B19200 - { - B19200, 19200}, -#endif -#ifdef B38400 - { - B38400, 38400}, -#endif - { - -1, -1} + { B50, 50}, + { B75, 75}, + { B110, 110}, + { B134, 134}, + { B150, 150}, + { B200, 200}, + { B300, 300}, + { B600, 600}, + { B1200, 1200}, + { B1800, 1800}, + { B2400, 2400}, + { B4800, 4800}, + { B9600, 9600}, + { B19200, 19200}, + { B38400, 38400}, + { -1, -1} }; -static void get_remote_string (char *buf, size_t size) + +static void +get_remote_string(char *buf, size_t size) { for (;;) { if (read (0, buf, 1) != 1) { @@ -101,11 +61,13 @@ static void get_remote_string (char *buf, size_t size) ++buf; } } - /*NOTREACHED*/} + /*NOTREACHED*/ +} + int -do_rlogin (const char *remote_host, char *name, size_t namelen, char *term, - size_t termlen) +do_rlogin(const char *remote_host, char *name, size_t namesize, char *term, + size_t termsize) { struct passwd *pwd; char remote_name[32]; @@ -115,18 +77,17 @@ do_rlogin (const char *remote_host, char *name, size_t namelen, char *term, int i; TERMIO termio; - get_remote_string (remote_name, sizeof remote_name); - get_remote_string (name, namelen); - get_remote_string (term, termlen); + get_remote_string(remote_name, sizeof(remote_name)); + get_remote_string(name, namesize); + get_remote_string(term, termsize); cp = strchr (term, '/'); if (NULL != cp) { *cp = '\0'; cp++; - if (getulong (cp, &remote_speed) == 0) { + if (str2ul(&remote_speed, cp) == -1) remote_speed = 9600; - } } for (i = 0; ( (speed_table[i].spd_baud != remote_speed) @@ -172,4 +133,3 @@ do_rlogin (const char *remote_host, char *name, size_t namelen, char *term, #endif } #endif /* RLOGIN */ - |