diff options
Diffstat (limited to '')
-rw-r--r-- | c/src/libnetworking/rtems/Makefile.am | 25 | ||||
-rw-r--r-- | c/src/libnetworking/rtems/rtems_syscall.c | 17 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_servers/Makefile.am | 15 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_servers/ftpd.c | 5 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_webserver/Makefile.am | 27 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_webserver/balloc.c | 10 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_webserver/ejlex.c | 2 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_webserver/handler.c | 2 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_webserver/uemf.c | 2 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_webserver/uemf.h | 2 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_webserver/webs.c | 6 |
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); |