diff options
Diffstat (limited to 'network_io/beos')
-rw-r--r-- | network_io/beos/Makefile.in | 63 | ||||
-rw-r--r-- | network_io/beos/networkio.h | 90 | ||||
-rw-r--r-- | network_io/beos/poll.c | 180 | ||||
-rw-r--r-- | network_io/beos/sendrecv.c | 139 | ||||
-rw-r--r-- | network_io/beos/sockets.c | 202 | ||||
-rw-r--r-- | network_io/beos/sockopt.c | 107 |
6 files changed, 0 insertions, 781 deletions
diff --git a/network_io/beos/Makefile.in b/network_io/beos/Makefile.in deleted file mode 100644 index fe0106086..000000000 --- a/network_io/beos/Makefile.in +++ /dev/null @@ -1,63 +0,0 @@ -#CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS) -#LIBS=$(EXTRA_LIBS) $(LIBS1) -#INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES) -#LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS) - -CC=@CC@ -RANLIB=@RANLIB@ -CFLAGS=@CFLAGS@ @OPTIM@ -LIBS=@LIBS@ -LDFLAGS=@LDFLAGS@ $(LIBS) -INCDIR=../../inc -INCDIR1=../../include -INCLUDES=-I$(INCDIR) -I$(INCDIR1) -I. - -LIB=../libnetwork.a - -OBJS=poll.o \ - sendrecv.o \ - sockets.o \ - sockopt.o \ - -.c.o: - $(CC) $(CFLAGS) -c $(INCLUDES) $< - -all: $(LIB) - -clean: - $(RM) -f *.o *.a *.so - -distclean: clean - -$(RM) -f Makefile - -$(OBJS): Makefile - -$(LIB): $(OBJS) - $(RM) -f $@ - $(AR) cr $@ $(OBJS) - $(RANLIB) $@ - -# -# We really don't expect end users to use this rule. It works only with -# gcc, and rebuilds Makefile.tmpl. You have to re-run Configure after -# using it. -# -depend: - cp Makefile.in Makefile.in.bak \ - && sed -ne '1,/^# DO NOT REMOVE/p' Makefile.in > Makefile.new \ - && gcc -MM $(INCLUDES) $(CFLAGS) *.c >> Makefile.new \ - && sed -e '1,$$s: $(INCDIR)/: $$(INCDIR)/:g' \ - -e '1,$$s: $(OSDIR)/: $$(OSDIR)/:g' Makefile.new \ - > Makefile.in \ - && rm Makefile.new - -# DO NOT REMOVE -poll.o: poll.c networkio.h ../../include/apr_general.h \ - ../../include/apr_errno.h ../../include/apr_network_io.h -sendrecv.o: sendrecv.c networkio.h ../../include/apr_general.h \ - ../../include/apr_errno.h ../../include/apr_network_io.h -socket.o: socket.c -sockets.o: sockets.c networkio.h ../../include/apr_general.h \ - ../../include/apr_errno.h ../../include/apr_network_io.h -sockopt.o: sockopt.c networkio.h ../../include/apr_general.h \ - ../../include/apr_errno.h ../../include/apr_network_io.h diff --git a/network_io/beos/networkio.h b/network_io/beos/networkio.h deleted file mode 100644 index c16caa379..000000000 --- a/network_io/beos/networkio.h +++ /dev/null @@ -1,90 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1999 The Apache Group. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the Apache Group - * for use in the Apache HTTP server project (http://www.apache.org/)." - * - * 4. The names "Apache Server" and "Apache Group" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache" - * nor may "Apache" appear in their names without prior written - * permission of the Apache Group. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the Apache Group - * for use in the Apache HTTP server project (http://www.apache.org/)." - * - * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Group. - * For more information on the Apache Group and the Apache HTTP server - * project, please see <http://www.apache.org/>. - * - */ - -#ifndef NETWORK_IO_H -#define NETWORK_IO_H - -#include <socket.h> -#include <netdb.h> -#include "apr_general.h" - -#define POLLIN 1 -#define POLLPRI 2 -#define POLLOUT 4 -#define POLLERR 8 -#define POLLHUP 16 -#define POLLNVAL 32 - -struct socket_t { - ap_context_t *cntxt; - int socketdes; - char *remote_hostname; - struct sockaddr_in * addr; - int addr_len; -}; - -struct pollfd_t { - ap_context_t *cntxt; - struct socket_t *sock; - fd_set *read; - fd_set *write; - fd_set *except; - int highsock; -}; - -ap_int16_t get_event(ap_int16_t); - -#endif /* ! NETWORK_IO_H */ - diff --git a/network_io/beos/poll.c b/network_io/beos/poll.c deleted file mode 100644 index 2253e3911..000000000 --- a/network_io/beos/poll.c +++ /dev/null @@ -1,180 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1999 The Apache Group. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the Apache Group - * for use in the Apache HTTP server project (http://www.apache.org/)." - * - * 4. The names "Apache Server" and "Apache Group" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache" - * nor may "Apache" appear in their names without prior written - * permission of the Apache Group. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the Apache Group - * for use in the Apache HTTP server project (http://www.apache.org/)." - * - * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Group. - * For more information on the Apache Group and the Apache HTTP server - * project, please see <http://www.apache.org/>. - * - */ - - -#include "networkio.h" -#include "apr_network_io.h" -#include "networkio.h" -#include "apr_general.h" - -/* BeOS R4 doesn't have a poll function, but R5 will have */ -/* so for the time being we try our best with an implementaion that */ -/* uses select. However, select on beos isn't that hot either, so */ -/* until R5 we have to live with a less than perfect implementation */ - -/* Apparently those sneaky people at Be included support for write in */ -/* select for R4.5 of BeOS. So here we use code that uses the write */ -/* bits. */ - -ap_status_t ap_setup_poll(ap_context_t *cont, ap_int32_t num, struct pollfd_t ** -new) -{ - (*new) = (struct pollfd_t *)ap_palloc(cont, sizeof(struct pollfd_t) * num); - if ((*new) == NULL) { - return APR_ENOMEM; - } - (*new)->cntxt = cont; - (*new)->read = (fd_set *)ap_palloc(cont, sizeof(fd_set)); - (*new)->write = (fd_set *)ap_palloc(cont, sizeof(fd_set)); - (*new)->except = (fd_set *)ap_palloc(cont, sizeof(fd_set)); - FD_ZERO((*new)->read); - FD_ZERO((*new)->write); - FD_ZERO((*new)->except); - (*new)->highsock = -1; - return APR_SUCCESS; -} - -ap_status_t ap_add_poll_socket(struct pollfd_t *aprset, - struct socket_t *sock, ap_int16_t event) -{ - if (event & APR_POLLIN) { - FD_SET(sock->socketdes, aprset->read); - } - if (event & APR_POLLPRI) { - FD_SET(sock->socketdes, aprset->read); - } - if (event & APR_POLLOUT) { - FD_SET(sock->socketdes, aprset->write); - } - if (sock->socketdes > aprset->highsock) { - aprset->highsock = sock->socketdes; - } - return APR_SUCCESS; -} - -ap_status_t ap_poll(struct pollfd_t *aprset, ap_int32_t *nsds, ap_int32_t timeout) -{ - int rv; - struct timeval *thetime; - - if (timeout == -1) { - thetime = NULL; - } - else { - /* Convert milli-seconds into seconds and micro-seconds. */ - thetime = (struct timeval *)ap_palloc(aprset->cntxt, sizeof(struct timeval)); - thetime->tv_sec = timeout / (1000); - timeout = timeout % 1000; - thetime->tv_usec = timeout * 1000; - } - - rv = select(aprset->highsock + 1, aprset->read, aprset->write, - NULL, thetime); - - (*nsds) = rv; - if ((*nsds) == 0) { - return APR_TIMEUP; - } - if ((*nsds) < 0) { - return APR_EEXIST; - } - return APR_SUCCESS; -} - -ap_status_t ap_get_revents(struct pollfd_t *aprset, struct socket_t *sock, ap_int16_t *event) -{ - ap_int16_t revents = 0; - char data[256]; - int dummy = 256; - - if (FD_ISSET(sock->socketdes, aprset->read)) { - revents |= APR_POLLIN; - if (recv(sock->socketdes, &data, 0, 0) == -1) { - switch (errno) { - case ECONNRESET: - case ECONNABORTED: - case ESHUTDOWN: - case ENETRESET: { - revents ^= APR_POLLIN; - revents |= APR_POLLHUP; - break; - } - case ENOTSOCK: { - revents ^= APR_POLLIN; - revents |= APR_POLLNVAL; - } - default: { - revents ^= APR_POLLIN; - revents |= APR_POLLERR; - } - } - } - } - if (FD_ISSET(sock->socketdes, aprset->write)) { - revents |= APR_POLLOUT; - } - - /* Still no support for execpt bits in BeOS R4.5 so for the time being */ - /* we can't check this. Hopefully the error checking above will allow */ - /* sufficient errors to be recognised to cover this. */ - - /*if (FD_ISSET(sock->socketdes, aprset->except)) { - revents |= APR_POLLPRI; - }*/ - - (*event) = revents; - return APR_SUCCESS; -} - diff --git a/network_io/beos/sendrecv.c b/network_io/beos/sendrecv.c deleted file mode 100644 index 122288e83..000000000 --- a/network_io/beos/sendrecv.c +++ /dev/null @@ -1,139 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1996-1999 The Apache Group. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the Apache Group - * for use in the Apache HTTP server project (http://www.apache.org/)." - * - * 4. The names "Apache Server" and "Apache Group" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache" - * nor may "Apache" appear in their names without prior written - * permission of the Apache Group. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the Apache Group - * for use in the Apache HTTP server project (http://www.apache.org/)." - * - * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Group and was originally based - * on public domain software written at the National Center for - * Supercomputing Applications, University of Illinois, Urbana-Champaign. - * For more information on the Apache Group and the Apache HTTP server - * project, please see <http://www.apache.org/>. - * - */ - -#include <sys/time.h> -#include <socket.h> -#include <netdb.h> -#include "networkio.h" -#include "apr_errno.h" -#include "apr_general.h" -#include "apr_network_io.h" - -ap_status_t ap_send(struct socket_t *sock, const char *buf, ap_ssize_t *len, time_t sec) -{ - ssize_t rv; - int sendlen = *len; - - do { - rv = send(sock->socketdes, buf, sendlen,0); - } while (rv == -1 && errno == EINTR); - - if (rv == -1 && errno == EAGAIN && sec > 0) { - struct timeval tv; - fd_set fdset; - int srv; - - do { - FD_ZERO(&fdset); - FD_SET(sock->socketdes, &fdset); - tv.tv_sec = sec; - tv.tv_usec = 0; - - srv = select(FD_SETSIZE, NULL, &fdset, NULL, &tv); - } while (srv == -1 && errno == EINTR); - - if (srv < 1) { - (*len) = -1; - return errno; - } - else { - do { - rv = send(sock->socketdes, buf, sendlen,0); - } while (rv == -1 && errno == EINTR); - } - } - (*len) = rv; - return APR_SUCCESS; -} - -ap_status_t ap_recv(struct socket_t *sock, char *buf, ap_ssize_t *len, time_t sec) -{ - ap_ssize_t rv; - int recvlen = *len; - - do { - rv = recv(sock->socketdes, buf, recvlen,0); - } while (rv == -1 && errno == EINTR); - - if (rv == -1 && errno == EAGAIN && sec > 0) { - struct timeval tv; - fd_set fdset; - int srv; - - do { - FD_ZERO(&fdset); - FD_SET(sock->socketdes, &fdset); - tv.tv_sec = sec; - tv.tv_usec = 0; - - srv = select(FD_SETSIZE, &fdset, NULL, NULL, &tv); - } while (srv == -1 && errno == EINTR); - - if (srv < 1) { - (*len) = -1; - return errno; - } - else { - do { - rv = recv(sock->socketdes, buf, recvlen,0); - } while (rv == -1 && errno == EINTR); - } - } - (*len) = rv; - return APR_SUCCESS; -} - diff --git a/network_io/beos/sockets.c b/network_io/beos/sockets.c deleted file mode 100644 index 167918ece..000000000 --- a/network_io/beos/sockets.c +++ /dev/null @@ -1,202 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1999 The Apache Group. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the Apache Group - * for use in the Apache HTTP server project (http://www.apache.org/)." - * - * 4. The names "Apache Server" and "Apache Group" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache" - * nor may "Apache" appear in their names without prior written - * permission of the Apache Group. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the Apache Group - * for use in the Apache HTTP server project (http://www.apache.org/)." - * - * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Group. - * For more information on the Apache Group and the Apache HTTP server - * project, please see <http://www.apache.org/>. - * - */ - -#include <errno.h> -#include <string.h> -#include <socket.h> -#include <netdb.h> -#include "networkio.h" -#include "apr_network_io.h" -#include "apr_general.h" - -ap_status_t socket_cleanup(void *sock) -{ - struct socket_t *thesocket = sock; - if (closesocket(thesocket->socketdes) == 0) { - thesocket->socketdes = -1; - return APR_SUCCESS; - } - else { - return errno; - } -} - -ap_status_t ap_create_tcp_socket(ap_context_t *cont, struct socket_t **new) -{ - (*new) = (struct socket_t *)ap_palloc(cont,sizeof(struct socket_t)); - - if ((*new) == NULL){ - return APR_ENOMEM; - } - - (*new)->cntxt = cont; - (*new)->addr = (struct sockaddr_in *) ap_palloc((*new)->cntxt, - sizeof (struct sockaddr_in)); - if ((*new)->addr == NULL){ - return APR_ENOMEM; - } - - (*new)->socketdes = socket(AF_INET ,SOCK_STREAM, 0); - (*new)->remote_hostname=NULL; - - (*new)->addr->sin_family = AF_INET; - - (*new)->addr_len = sizeof(*(*new)->addr); - memset(&(*new)->addr->sin_zero, 0, sizeof((*new)->addr->sin_zero)); - - if ((*new)->socketdes < 0) { - return errno; - } - else { - ap_register_cleanup((*new)->cntxt, (void *)(*new), - socket_cleanup, NULL); - return APR_SUCCESS; - } -} - -ap_status_t ap_shutdown(struct socket_t *thesocket, ap_shutdown_how_e how) -{ - /*if (shutdown(thesocket->socketdes, how) == 0) {*/ - return APR_SUCCESS; - /*} - else { - return APR_FAILURE; - }*/ -} - -ap_status_t ap_close_socket(struct socket_t *thesocket) -{ - ap_kill_cleanup(thesocket->cntxt,thesocket,socket_cleanup); - return socket_cleanup(thesocket); -} - -ap_status_t ap_setport(struct socket_t *sock, ap_uint32_t port) -{ - sock->addr->sin_port = htons((short)port); - return APR_SUCCESS; -} - -ap_status_t ap_bind(struct socket_t *sock) -{ - sock->addr->sin_addr.s_addr = INADDR_ANY; - if (bind(sock->socketdes, (struct sockaddr *)sock->addr, sock->addr_len) == -1) - return errno; - else - return APR_SUCCESS; -} - -ap_status_t ap_listen(struct socket_t *sock, ap_int32_t backlog) -{ - if (listen(sock->socketdes, backlog) == -1) - return errno; - else - return APR_SUCCESS; -} - -ap_status_t ap_accept(const struct socket_t *sock, struct socket_t **new) -{ - struct hostent *hptr; - - (*new) = (struct socket_t *)ap_palloc(sock->cntxt, - sizeof(ap_socket_t)); - - (*new)->cntxt = sock->cntxt; - (*new)->addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt, - sizeof(struct sockaddr_in)); - (*new)->addr_len = sizeof(struct sockaddr_in); - - (*new)->socketdes = accept(sock->socketdes, (struct sockaddr *)(*new)->addr, - &(*new)->addr_len); - - if ((*new)->socketdes <0){ - return errno; - } - - hptr = gethostbyaddr((char*)&(*new)->addr->sin_addr, - sizeof(struct in_addr), AF_INET); - if (hptr != NULL){ - (*new)->remote_hostname = strdup(hptr->h_name); - } - - ap_register_cleanup((*new)->cntxt, (void *)new, - socket_cleanup, NULL); - return APR_SUCCESS; -} - -ap_status_t ap_connect(struct socket_t *sock, char *hostname) -{ - struct hostent *hp; - - hp = gethostbyname(hostname); - if ((sock->socketdes < 0) || (!sock->addr)) { - return APR_ENOTSOCK; - } - - memcpy((char *)&sock->addr->sin_addr, hp->h_addr , hp->h_length); - - sock->addr->sin_family = AF_INET; - - memset(sock->addr->sin_zero, 0, sizeof(sock->addr->sin_zero)); - - sock->addr_len = sizeof(sock->addr); - - while ((connect(sock->socketdes, (const struct sockaddr *)sock->addr, sock->addr_len) < 0)){ - if (errno != EALREADY && errno != EINPROGRESS) - return errno; - } - - sock->remote_hostname = strdup(hostname); - return APR_SUCCESS; -} diff --git a/network_io/beos/sockopt.c b/network_io/beos/sockopt.c deleted file mode 100644 index e3aa5228e..000000000 --- a/network_io/beos/sockopt.c +++ /dev/null @@ -1,107 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1999 The Apache Group. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the Apache Group - * for use in the Apache HTTP server project (http://www.apache.org/)." - * - * 4. The names "Apache Server" and "Apache Group" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache" - * nor may "Apache" appear in their names without prior written - * permission of the Apache Group. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the Apache Group - * for use in the Apache HTTP server project (http://www.apache.org/)." - * - * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Group. - * For more information on the Apache Group and the Apache HTTP server - * project, please see <http://www.apache.org/>. - * - */ - -#include <errno.h> -#include <string.h> -#include <sys/socket.h> -#include <unistd.h> -#include <fcntl.h> -#include "networkio.h" -#include "apr_network_io.h" -#include "apr_general.h" - -ap_status_t ap_setsocketopt(struct socket_t *sock, ap_int32_t opt, ap_int32_t on) -{ - int one; - if (on){ - one = 1; - }else { - one = 0; - } - if (opt & APR_SO_DEBUG) { - if (setsockopt(sock->socketdes, SOL_SOCKET, SO_DEBUG, &one, sizeof(one)) == -1) { - return errno; - } - } - if (opt & APR_SO_REUSEADDR) { - if (setsockopt(sock->socketdes, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) == -1) { - return errno; - } - } - if (opt & APR_SO_NONBLOCK) { - if (setsockopt(sock->socketdes, SOL_SOCKET, SO_NONBLOCK, &one, sizeof(one)) == -1){ - return errno; - } - } - return APR_SUCCESS; -} - -ap_status_t ap_gethostname(ap_context_t *cont, char * buf, int len) -{ - if (gethostname(buf, len) == -1){ - return errno; - } else { - return APR_SUCCESS; - } -} - -ap_status_t ap_get_remote_hostname(struct socket_t *sock, char **name) -{ - (*name) = (char*)ap_pstrdup(sock->cntxt, sock->remote_hostname); - if (*name) { - return APR_SUCCESS; - } - return APR_ENOMEM; -} |