dreid 99/10/24 05:27:35
Modified:src/lib/apr/network_io/beos networkio.h sockets.c sockopt.c
Added: src/lib/apr/network_io/beos sockaddr.c
Log:
Bring BeOS back into line with Ben's changes to the network API.
Revision ChangesPath
1.7 +3 -1 apache-2.0/src/lib/apr/network_io/beos/networkio.h
Index: networkio.h
===
RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/beos/networkio.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- networkio.h 1999/10/23 14:43:43 1.6
+++ networkio.h 1999/10/24 12:27:33 1.7
@@ -79,9 +79,11 @@
struct socket_t {
ap_context_t *cntxt;
int socketdes;
-struct sockaddr_in * addr;
+struct sockaddr_in *local_addr;
+struct sockaddr_in *remote_addr;
int addr_len;
int timeout;
+int connected;
};
struct pollfd_t {
1.9 +27 -49apache-2.0/src/lib/apr/network_io/beos/sockets.c
Index: sockets.c
===
RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/beos/sockets.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- sockets.c 1999/10/15 14:20:09 1.8
+++ sockets.c 1999/10/24 12:27:33 1.9
@@ -83,16 +83,19 @@
}
(*new)-cntxt = cont;
- (*new)-addr = (struct sockaddr_in *) ap_palloc((*new)-cntxt,
+ (*new)-local_addr = (struct sockaddr_in *) ap_palloc((*new)-cntxt,
sizeof (struct sockaddr_in));
-if ((*new)-addr == NULL){
+ (*new)-remote_addr = (struct sockaddr_in *) ap_palloc((*new)-cntxt,
+ sizeof (struct sockaddr_in));
+if ((*new)-local_addr == NULL || (*new)-remote_addr==NULL){
return APR_ENOMEM;
}
(*new)-socketdes = socket(AF_INET ,SOCK_STREAM, 0);
- (*new)-addr-sin_family = AF_INET;
-(*new)-addr_len = sizeof(*(*new)-addr);
- memset((*new)-addr-sin_zero, 0, sizeof((*new)-addr-sin_zero));
+ (*new)-local_addr-sin_family = AF_INET;
+ (*new)-remote_addr-sin_family = AF_INET;
+(*new)-addr_len = sizeof(*(*new)-local_addr);
+ memset((*new)-local_addr-sin_zero, 0,
sizeof((*new)-local_addr-sin_zero));
if ((*new)-socketdes 0) {
return errno;
@@ -120,42 +123,10 @@
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_getport(ap_uint32_t *port, struct socket_t *sock)
-{
-*port = ntohs(sock-addr-sin_port);
-return APR_SUCCESS;
-}
-
-ap_status_t ap_setipaddr(struct socket_t *sock, const char *addr)
-{
-if (!strcmp(addr, APR_ANYADDR)) {
-sock-addr-sin_addr.s_addr = htonl(INADDR_ANY);
-return APR_SUCCESS;
-}
-if (inet_aton(addr, sock-addr-sin_addr) == 0) {
-return errno;
-}
-return APR_SUCCESS;
-}
-
-ap_status_t ap_getipaddr(char *addr, ap_ssize_t len,
- const struct socket_t *sock)
-{
-char *temp = inet_ntoa(sock-addr-sin_addr);
-ap_cpystrn(addr,temp,len-1);
-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)
+sock-local_addr-sin_addr.s_addr = INADDR_ANY;
+if (bind(sock-socketdes, (struct sockaddr *)sock-local_addr,
sock-addr_len) == -1)
return errno;
else
return APR_SUCCESS;
@@ -175,11 +146,14 @@
sizeof(ap_socket_t));
(*new)-cntxt = sock-cntxt;
-(*new)-addr = (struct sockaddr_in *)ap_palloc((*new)-cntxt,
+(*new)-local_addr = (struct sockaddr_in *)ap_palloc((*new)-cntxt,
+ sizeof(struct sockaddr_in));
+(*new)-remote_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)-connected = 1;
+
+(*new)-socketdes = accept(sock-socketdes, (struct sockaddr
*)(*new)-local_addr,
(*new)-addr_len);
if ((*new)-socketdes 0){
@@ -196,21 +170,25 @@
struct hostent *hp;
hp = gethostbyname(hostname);
-if ((sock-socketdes 0) || (!sock-addr)) {
+if ((sock-socketdes 0) || (!sock-remote_addr)) {
return APR_ENOTSOCK;
}
- memcpy((char *)sock-addr-sin_addr, hp-h_addr , hp-h_length);
+ memcpy((char *)sock-remote_addr-sin_addr, hp-h_addr , hp-h_length);