summaryrefslogtreecommitdiffstats
path: root/c/src/libnetworking/rtems
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--c/src/libnetworking/rtems/Makefile.am25
-rw-r--r--c/src/libnetworking/rtems/rtems_syscall.c17
-rw-r--r--c/src/libnetworking/rtems_servers/Makefile.am15
-rw-r--r--c/src/libnetworking/rtems_servers/ftpd.c5
-rw-r--r--c/src/libnetworking/rtems_webserver/Makefile.am27
-rw-r--r--c/src/libnetworking/rtems_webserver/balloc.c10
-rw-r--r--c/src/libnetworking/rtems_webserver/ejlex.c2
-rw-r--r--c/src/libnetworking/rtems_webserver/handler.c2
-rw-r--r--c/src/libnetworking/rtems_webserver/uemf.c2
-rw-r--r--c/src/libnetworking/rtems_webserver/uemf.h2
-rw-r--r--c/src/libnetworking/rtems_webserver/webs.c6
11 files changed, 79 insertions, 34 deletions
diff --git a/c/src/libnetworking/rtems/Makefile.am b/c/src/libnetworking/rtems/Makefile.am
index 28df4629c4..dfcac20c4b 100644
--- a/c/src/libnetworking/rtems/Makefile.am
+++ b/c/src/libnetworking/rtems/Makefile.am
@@ -1,6 +1,6 @@
-##
+##
## $Id$
-##
+##
AUTOMAKE_OPTIONS = foreign 1.4
@@ -15,6 +15,19 @@ C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.o)
OBJS = $(C_O_FILES)
+H_FILES = rtems_bsdnet.h rtems_bsdnet_internal.h tftp.h
+
+noinst_HEADERS = $(H_FILES)
+
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems $(H_FILES:%=$(PROJECT_INCLUDE)/rtems/%)
+
+$(PROJECT_INCLUDE)/rtems:
+ @$(mkinstalldirs) $@
+
+$(PROJECT_INCLUDE)/rtems/%.h: %.h
+ $(INSTALL_DATA) $< $@
+
+
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../automake/lib.am
@@ -28,14 +41,12 @@ AM_CPPFLAGS += -D_COMPILING_BSD_KERNEL_ -DKERNEL -DINET -DNFS -DDIAGNOSTIC \
$(LIB): $(OBJS)
$(make-library)
-all-local: $(ARCH) $(OBJS) $(LIB)
+all-local: $(PREINSTALL_FILES) $(ARCH) $(OBJS) $(LIB)
.PRECIOUS: $(LIB)
-EXTRA_DIST = issetugid.c rtems_bootp.c rtems_bsdnet.h \
- rtems_bsdnet_internal.h rtems_glue.c rtems_select.c rtems_showicmpstat.c \
+EXTRA_DIST = issetugid.c rtems_bootp.c rtems_glue.c rtems_select.c rtems_showicmpstat.c \
rtems_showifstat.c rtems_showipstat.c rtems_showmbuf.c rtems_showroute.c \
- rtems_showtcpstat.c rtems_showudpstat.c rtems_syscall.c sghostname.c \
- tftp.h
+ rtems_showtcpstat.c rtems_showudpstat.c rtems_syscall.c sghostname.c
include $(top_srcdir)/../../../automake/local.am
diff --git a/c/src/libnetworking/rtems/rtems_syscall.c b/c/src/libnetworking/rtems/rtems_syscall.c
index 05217f7212..d04ae95afb 100644
--- a/c/src/libnetworking/rtems/rtems_syscall.c
+++ b/c/src/libnetworking/rtems/rtems_syscall.c
@@ -136,11 +136,8 @@ connect (int s, struct sockaddr *name, int namelen)
return -1;
}
error = soconnect (so, nam);
- if (error) {
- errno = error;
- rtems_bsdnet_semaphore_release ();
- return -1;
- }
+ if (error)
+ goto bad;
if ((so->so_state & SS_NBIO) && (so->so_state & SS_ISCONNECTING)) {
m_freem(nam);
errno = EINPROGRESS;
@@ -148,15 +145,20 @@ connect (int s, struct sockaddr *name, int namelen)
return -1;
}
while ((so->so_state & SS_ISCONNECTING) && so->so_error == 0) {
- so->so_error = soconnsleep (so);
+ error = soconnsleep (so);
+ if (error)
+ break;
}
if (error == 0) {
error = so->so_error;
so->so_error = 0;
}
+ bad:
so->so_state &= ~SS_ISCONNECTING;
m_freem (nam);
- if (error == 0)
+ if (error)
+ errno = error;
+ else
ret = 0;
rtems_bsdnet_semaphore_release ();
return ret;
@@ -605,6 +607,7 @@ getpeersockname (int s, struct sockaddr *name, int *namelen, int pflag)
else
error = (*so->so_proto->pr_usrreqs->pru_sockaddr)(so, m);
if (error) {
+ m_freem(m);
errno = error;
rtems_bsdnet_semaphore_release ();
return -1;
diff --git a/c/src/libnetworking/rtems_servers/Makefile.am b/c/src/libnetworking/rtems_servers/Makefile.am
index 77d1677844..2c1d356fab 100644
--- a/c/src/libnetworking/rtems_servers/Makefile.am
+++ b/c/src/libnetworking/rtems_servers/Makefile.am
@@ -1,6 +1,6 @@
-##
+##
## $Id$
-##
+##
AUTOMAKE_OPTIONS = foreign 1.4
@@ -22,10 +22,19 @@ include $(top_srcdir)/../../../automake/lib.am
$(LIB): $(OBJS)
$(make-library)
-all-local: $(ARCH) $(OBJS) $(LIB)
+all-local: $(PREINSTALL_FILES) $(ARCH) $(OBJS) $(LIB)
.PRECIOUS: $(LIB)
EXTRA_DIST = ftpd.c ftpd.h
+H_FILES = ftpd.h
+
+noinst_HEADERS = $(H_FILES)
+
+PREINSTALL_FILES += $(PROJECT_INCLUDE) $(H_FILES:%=$(PROJECT_INCLUDE)/%)
+
+$(PROJECT_INCLUDE)/%.h: %.h
+ $(INSTALL_DATA) $< $@
+
include $(top_srcdir)/../../../automake/local.am
diff --git a/c/src/libnetworking/rtems_servers/ftpd.c b/c/src/libnetworking/rtems_servers/ftpd.c
index 25b1f3c4e4..aef88c82c7 100644
--- a/c/src/libnetworking/rtems_servers/ftpd.c
+++ b/c/src/libnetworking/rtems_servers/ftpd.c
@@ -899,6 +899,11 @@ rtems_ftpd_session(rtems_task_argument arg)
* Change History: *
* 12/01/97 - Creation (JWJ) *
*************************************************************************/
+
+/* this is not prototyped in strict ansi mode */
+
+FILE *fdopen (int fildes, const char *mode);
+
static void
rtems_ftpd_daemon()
{
diff --git a/c/src/libnetworking/rtems_webserver/Makefile.am b/c/src/libnetworking/rtems_webserver/Makefile.am
index 3dae7f9676..f14ceaaf67 100644
--- a/c/src/libnetworking/rtems_webserver/Makefile.am
+++ b/c/src/libnetworking/rtems_webserver/Makefile.am
@@ -1,6 +1,6 @@
-##
+##
## $Id$
-##
+##
AUTOMAKE_OPTIONS = foreign 1.4
@@ -9,12 +9,13 @@ LIB = $(ARCH)/$(LIBNAME)
C_FILES = asp.c balloc.c wbase64.c default.c ejlex.c ejparse.c form.c h.c \
handler.c mime.c misc.c webpage.c ringq.c rom.c security.c socket.c \
- sym.c uemf.c url.c value.c webcomp.c webrom.c webs.c websuemf.c \
- webmain.c
+ sym.c uemf.c url.c value.c webrom.c webs.c websuemf.c webmain.c
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.o)
OBJS = $(C_O_FILES)
+H_FILES = ej.h uemf.h webs.h wsIntrn.h
+
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../automake/lib.am
@@ -27,8 +28,24 @@ AM_CPPFLAGS += -DWEBS -DUEMF -DOS="RTEMS"
$(LIB): $(OBJS)
$(make-library)
+$(PROJECT_INCLUDE):
+ $(mkinstalldirs) $@
+
+$(PROJECT_INCLUDE)/goahead:
+ $(mkinstalldirs) $@
+
+$(PROJECT_INCLUDE)/goahead/%.h: %.h
+ $(INSTALL_DATA) $< $@
+
+$(PROJECT_INCLUDE)/rtems_webserver.h: rtems_webserver.h
+ $(INSTALL_DATA) $< $@
+
+PREINSTALL_FILES += $(PROJECT_INCLUDE) \
+ $(PROJECT_INCLUDE)/rtems_webserver.h $(PROJECT_INCLUDE)/goahead \
+ $(H_FILES:%.h=$(PROJECT_INCLUDE)/goahead/%.h)
+
if HAS_POSIX
-all-local: $(ARCH) $(OBJS) $(LIB)
+all-local: $(PREINSTALL_FILES) $(ARCH) $(OBJS) $(LIB)
endif
.PRECIOUS: $(LIB)
diff --git a/c/src/libnetworking/rtems_webserver/balloc.c b/c/src/libnetworking/rtems_webserver/balloc.c
index 20612ed148..f2dae27867 100644
--- a/c/src/libnetworking/rtems_webserver/balloc.c
+++ b/c/src/libnetworking/rtems_webserver/balloc.c
@@ -224,7 +224,7 @@ void *balloc(B_ARGS_DEC, int size)
#endif
bp = (bType*) malloc(memSize);
if (bp == NULL) {
- trace(0, T("B: malloc failed for %s:%d, size %d\n"),
+ goahead_trace(0, T("B: malloc failed for %s:%d, size %d\n"),
B_ARGS, memSize);
return NULL;
}
@@ -236,7 +236,7 @@ void *balloc(B_ARGS_DEC, int size)
#endif
} else {
- trace(0, T("B: balloc failed for %s:%d, size %d\n"),
+ goahead_trace(0, T("B: balloc failed for %s:%d, size %d\n"),
B_ARGS, memSize);
return NULL;
}
@@ -286,7 +286,7 @@ void *balloc(B_ARGS_DEC, int size)
* Nothing left on the primary free list, so malloc a new block
*/
if ((bp = (bType*) malloc(memSize)) == NULL) {
- trace(0, T("B: malloc failed for %s:%d size %d\n"),
+ goahead_trace(0, T("B: malloc failed for %s:%d size %d\n"),
B_ARGS, memSize);
return NULL;
}
@@ -300,7 +300,7 @@ void *balloc(B_ARGS_DEC, int size)
bp->flags = B_MALLOCED;
} else {
- trace(0, T("B: alloc failed for %s:%d size %d\n"), B_ARGS, size);
+ goahead_trace(0, T("B: alloc failed for %s:%d size %d\n"), B_ARGS, size);
return NULL;
}
}
@@ -577,7 +577,7 @@ static void bstatsWrite(int handle, char_t *fmt, ...)
buf = NULL;
gvsnprintf(&buf, VALUE_MAX_STRING, fmt, args);
va_end(args);
- trace(0, buf);
+ goahead_trace(0, buf);
if (buf) {
bfree(B_L, buf);
}
diff --git a/c/src/libnetworking/rtems_webserver/ejlex.c b/c/src/libnetworking/rtems_webserver/ejlex.c
index 67e1504bd7..091d17411b 100644
--- a/c/src/libnetworking/rtems_webserver/ejlex.c
+++ b/c/src/libnetworking/rtems_webserver/ejlex.c
@@ -189,7 +189,7 @@ void ejLexFreeInputState(ej_t* ep, ejinput_t* state)
int ejLexGetToken(ej_t* ep, int state)
{
ep->tid = getLexicalToken(ep, state);
- trace(7, T("ejGetToken: %d, \"%s\"\n"), ep->tid, ep->token);
+ goahead_trace(7, T("ejGetToken: %d, \"%s\"\n"), ep->tid, ep->token);
return ep->tid;
}
diff --git a/c/src/libnetworking/rtems_webserver/handler.c b/c/src/libnetworking/rtems_webserver/handler.c
index d481ec3c0c..fb42d2d097 100644
--- a/c/src/libnetworking/rtems_webserver/handler.c
+++ b/c/src/libnetworking/rtems_webserver/handler.c
@@ -264,7 +264,7 @@ int websUrlHandlerRequest(webs_t wp)
return 1;
}
if (!websValid(wp)) {
- trace(0,
+ goahead_trace(0,
T("webs: handler %s called websDone, but didn't return 1\n"),
sp->urlPrefix);
return 1;
diff --git a/c/src/libnetworking/rtems_webserver/uemf.c b/c/src/libnetworking/rtems_webserver/uemf.c
index 8a6675f944..a9302f989c 100644
--- a/c/src/libnetworking/rtems_webserver/uemf.c
+++ b/c/src/libnetworking/rtems_webserver/uemf.c
@@ -47,7 +47,7 @@ void error(E_ARGS_DEC, int flags, char_t *fmt, ...)
* Trace log. Customize this function to log trace output
*/
-void trace(int level, char_t *afmt, ...)
+void goahead_trace(int level, char_t *afmt, ...)
{
#if DEBUG
va_list args;
diff --git a/c/src/libnetworking/rtems_webserver/uemf.h b/c/src/libnetworking/rtems_webserver/uemf.h
index c63e75bd99..8945907dfb 100644
--- a/c/src/libnetworking/rtems_webserver/uemf.h
+++ b/c/src/libnetworking/rtems_webserver/uemf.h
@@ -649,7 +649,7 @@ extern sym_t *symEnter(sym_fd_t sd, char_t *name, value_t v, int arg);
extern int symDelete(sym_fd_t sd, char_t *name);
extern void symWalk(sym_fd_t sd, void (*fn)(sym_t *symp));
-extern void trace(int lev, char_t *fmt, ...);
+extern void goahead_trace(int lev, char_t *fmt, ...);
extern value_t valueInteger(long value);
extern value_t valueString(char_t *value, int flags);
diff --git a/c/src/libnetworking/rtems_webserver/webs.c b/c/src/libnetworking/rtems_webserver/webs.c
index e198cc1e9a..cee03ee01c 100644
--- a/c/src/libnetworking/rtems_webserver/webs.c
+++ b/c/src/libnetworking/rtems_webserver/webs.c
@@ -193,7 +193,7 @@ int websOpenListen(int port, int retries)
orig, port - 1);
return -1;
}
- trace(0, T("webs: Listening for HTTP requests on port %d\n"), port);
+ goahead_trace(0, T("webs: Listening for HTTP requests on port %d\n"), port);
/*
* Determine the full URL address to access the home page for this web server
@@ -269,7 +269,7 @@ static int websAccept(int sid, char *ipaddr, int port)
* Arrange for a timeout to kill hung requests
*/
wp->timeout = emfCreateTimer(WEBS_TIMEOUT, websTimeout, (long) wp);
- trace(5, T("webs: accept request\n"));
+ goahead_trace(5, T("webs: accept request\n"));
return 0;
}
@@ -1144,7 +1144,7 @@ int websWrite(webs_t wp, char_t* fmt, ...)
buf = NULL;
rc = 0;
if (gvsnprintf(&buf, WEBS_BUFSIZE, fmt, vargs) >= WEBS_BUFSIZE) {
- trace(0, T("webs: websWrite lost data, buffer overflow\n"));
+ goahead_trace(0, T("webs: websWrite lost data, buffer overflow\n"));
}
va_end(vargs);
a_assert(buf);