mirror of
https://github.com/sheumann/telnetd.git
synced 2024-11-21 09:35:33 +00:00
More small changes for GNO and ORCA/C compatibility.
In particular, address a couple instances where GNO's sockets implementation doesn't comply with modern standards. Also, add a few missing prototypes so we can use ORCA/C prototype-checking lint functionality.
This commit is contained in:
parent
9bab5c3dec
commit
de9fad8d67
@ -1,12 +1,12 @@
|
|||||||
.INCLUDE: Makefile.common
|
.INCLUDE: Makefile.common
|
||||||
|
|
||||||
# This should be the ltermcap from GNO 2.0.4. The one from 2.0.6 is broken
|
# /usr/lib/libtermcap.204 should be the ltermcap from GNO 2.0.4. The one
|
||||||
# (links to unimplemented functions), so don't use it.
|
# from 2.0.6 is broken (links to unimplemented functions), so don't use it.
|
||||||
# The 2.0.4 version is in the "lib.shk" file within
|
# The 2.0.4 version is in the "lib.shk" file within
|
||||||
# ftp://ftp.gno.org/pub/apple2/gs.specific/gno/base/v204/gnodisk1.sdk
|
# ftp://ftp.gno.org/pub/apple2/gs.specific/gno/base/v204/gnodisk1.sdk
|
||||||
LIBS = -l/usr/lib/libtermcap.204
|
LIBS = -l/usr/lib/libtermcap.204 -l/usr/lib/libnetdb
|
||||||
|
|
||||||
CFLAGS = -i
|
CFLAGS = -i -w
|
||||||
|
|
||||||
$(OBJS): $(HEADERS)
|
$(OBJS): $(HEADERS)
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
|
@ -50,6 +50,9 @@
|
|||||||
#ifdef __GNO__
|
#ifdef __GNO__
|
||||||
typedef int socklen_t;
|
typedef int socklen_t;
|
||||||
typedef unsigned short in_port_t;
|
typedef unsigned short in_port_t;
|
||||||
|
/* GNO calls actually expect an older form of "struct sockaddr",
|
||||||
|
* different from the "struct sockaddr" defined in the headers. */
|
||||||
|
# define sockaddr __SOCKADDR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
|
9
sys/cdefs.h
Normal file
9
sys/cdefs.h
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/* We use this as a hack to define stuff in every file, since they all
|
||||||
|
* #include <sys/cdefs.h> first. When compiling with occ, this file will
|
||||||
|
* be included in preference to the system header of the same name. */
|
||||||
|
|
||||||
|
#ifdef __GNO__
|
||||||
|
# define __unused
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "/usr/include/sys/cdefs.h"
|
@ -432,8 +432,7 @@ send_docmd(char *name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
send_dontcmd(name)
|
send_dontcmd(char *name)
|
||||||
char *name;
|
|
||||||
{
|
{
|
||||||
return(send_tncmd(send_dont, "dont", name));
|
return(send_tncmd(send_dont, "dont", name));
|
||||||
}
|
}
|
||||||
@ -1386,7 +1385,7 @@ shell(int argc, char **argv __unused)
|
|||||||
_exit(1);
|
_exit(1);
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
(void)wait((int *)0); /* Wait for the shell to complete */
|
(void)wait(NULL); /* Wait for the shell to complete */
|
||||||
|
|
||||||
if (TerminalWindowSize(&newrows, &newcols) && connected &&
|
if (TerminalWindowSize(&newrows, &newcols) && connected &&
|
||||||
(err_ || ((oldrows != newrows) || (oldcols != newcols)))) {
|
(err_ || ((oldrows != newrows) || (oldcols != newcols)))) {
|
||||||
@ -2101,7 +2100,12 @@ static const char *
|
|||||||
sockaddr_ntop(struct sockaddr *sa)
|
sockaddr_ntop(struct sockaddr *sa)
|
||||||
{
|
{
|
||||||
void *addr;
|
void *addr;
|
||||||
|
#if !defined(__GNO__) || defined(INET6)
|
||||||
static char addrbuf[INET6_ADDRSTRLEN];
|
static char addrbuf[INET6_ADDRSTRLEN];
|
||||||
|
#else
|
||||||
|
/* Since we don't have IPv6, the IPv4 size is sufficient. */
|
||||||
|
static char addrbuf[16];
|
||||||
|
#endif
|
||||||
|
|
||||||
switch (sa->sa_family) {
|
switch (sa->sa_family) {
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
@ -2341,7 +2345,12 @@ tn(int argc, char **argv)
|
|||||||
int gni_err = 1;
|
int gni_err = 1;
|
||||||
|
|
||||||
if (doaddrlookup)
|
if (doaddrlookup)
|
||||||
gni_err = getnameinfo(res->ai_addr, res->ai_addr->sa_len,
|
gni_err = getnameinfo(res->ai_addr,
|
||||||
|
#ifndef __GNO__
|
||||||
|
res->ai_addr->sa_len,
|
||||||
|
#else
|
||||||
|
sizeof(struct sockaddr),
|
||||||
|
#endif
|
||||||
_hostname, sizeof(_hostname) - 1, NULL, 0,
|
_hostname, sizeof(_hostname) - 1, NULL, 0,
|
||||||
NI_NAMEREQD);
|
NI_NAMEREQD);
|
||||||
if (gni_err != 0)
|
if (gni_err != 0)
|
||||||
@ -2690,7 +2699,7 @@ command(int top, const char *tbuf, int cnt)
|
|||||||
* Help command.
|
* Help command.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
help(int argc, char *argv[])
|
help(int argc, char **argv)
|
||||||
{
|
{
|
||||||
Command *c;
|
Command *c;
|
||||||
|
|
||||||
|
@ -44,6 +44,10 @@ static const char sccsid[] = "@(#)telnetd.c 8.4 (Berkeley) 5/30/95";
|
|||||||
|
|
||||||
#ifdef __GNO__
|
#ifdef __GNO__
|
||||||
#include "libtelnet/getaddrinfo.h"
|
#include "libtelnet/getaddrinfo.h"
|
||||||
|
/* GNO doesn't have struct sockaddr_storage; just use "struct sockaddr"
|
||||||
|
* (which is really struct osockaddr). */
|
||||||
|
#define sockaddr_storage sockaddr
|
||||||
|
#define ss_family sa_family
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <err.h>
|
#include <err.h>
|
||||||
@ -418,7 +422,7 @@ main(int argc, char *argv[])
|
|||||||
} /* end of main */
|
} /* end of main */
|
||||||
|
|
||||||
void
|
void
|
||||||
usage()
|
usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "usage: telnetd");
|
fprintf(stderr, "usage: telnetd");
|
||||||
#ifdef AUTHENTICATION
|
#ifdef AUTHENTICATION
|
||||||
|
@ -68,7 +68,7 @@ static const char sccsid[] = "@(#)utility.c 8.4 (Berkeley) 5/30/95";
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
void
|
void
|
||||||
ttloop()
|
ttloop(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
DIAG(TD_REPORT, output_data("td: ttloop\r\n"));
|
DIAG(TD_REPORT, output_data("td: ttloop\r\n"));
|
||||||
|
Loading…
Reference in New Issue
Block a user