diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2014-03-14 02:58:48 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2014-03-14 02:58:48 +0000 |
commit | 2c284d9395713ea0217230e077e70d2df8a9900c (patch) | |
tree | 289644ca4a3bc9d349466888b297c5a34d00e321 /tools/regression | |
parent | bc3f5ec90bde2f3a5e4021d133c89793d68b8c73 (diff) | |
download | src-2c284d9395713ea0217230e077e70d2df8a9900c.tar.gz src-2c284d9395713ea0217230e077e70d2df8a9900c.zip |
Remove IPX support.
IPX was a network transport protocol in Novell's NetWare network operating
system from late 80s and then 90s. The NetWare itself switched to TCP/IP
as default transport in 1998. Later, in this century the Novell Open
Enterprise Server became successor of Novell NetWare. The last release
that claimed to still support IPX was OES 2 in 2007. Routing equipment
vendors (e.g. Cisco) discontinued support for IPX in 2011.
Thus, IPX won't be supported in FreeBSD 11.0-RELEASE.
Notes
Notes:
svn path=/head/; revision=263140
Diffstat (limited to 'tools/regression')
-rw-r--r-- | tools/regression/netipx/README | 11 | ||||
-rw-r--r-- | tools/regression/netipx/ipxdgramloopback/Makefile | 12 | ||||
-rw-r--r-- | tools/regression/netipx/ipxdgramloopback/ipxdgramloopback.c | 118 | ||||
-rw-r--r-- | tools/regression/netipx/ipxsocket/Makefile | 8 | ||||
-rw-r--r-- | tools/regression/netipx/ipxsocket/ipxsocket.c | 93 | ||||
-rw-r--r-- | tools/regression/netipx/spxabort/Makefile | 12 | ||||
-rw-r--r-- | tools/regression/netipx/spxabort/spxabort.c | 96 | ||||
-rw-r--r-- | tools/regression/netipx/spxloopback/Makefile | 12 | ||||
-rw-r--r-- | tools/regression/netipx/spxloopback/spxloopback.c | 237 |
9 files changed, 0 insertions, 599 deletions
diff --git a/tools/regression/netipx/README b/tools/regression/netipx/README deleted file mode 100644 index a1a07a4e7855..000000000000 --- a/tools/regression/netipx/README +++ /dev/null @@ -1,11 +0,0 @@ -These regression tests assume that the kernel is compiled with support for -netipx: - - options IPX - -In addition, the loopback interface should be configured with the address -0xbebe.1: - - ifconfig lo0 ipx 0xbebe.1 - -$FreeBSD$ diff --git a/tools/regression/netipx/ipxdgramloopback/Makefile b/tools/regression/netipx/ipxdgramloopback/Makefile deleted file mode 100644 index 78b3e4528989..000000000000 --- a/tools/regression/netipx/ipxdgramloopback/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# -# $FreeBSD$ -# - -PROG= ipxdgramloopback -NO_MAN= - -DPADD= ${LIBIPX} -LDADD= -lipx -WARNS?= 3 - -.include <bsd.prog.mk> diff --git a/tools/regression/netipx/ipxdgramloopback/ipxdgramloopback.c b/tools/regression/netipx/ipxdgramloopback/ipxdgramloopback.c deleted file mode 100644 index 73b6a2a99a9b..000000000000 --- a/tools/regression/netipx/ipxdgramloopback/ipxdgramloopback.c +++ /dev/null @@ -1,118 +0,0 @@ -/*- - * Copyright (c) 2006 Robert N. M. Watson - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS 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 AUTHOR OR 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. - * - * $FreeBSD$ - */ - -/* - * Simple netipx regression test that attempts to build an IPX datagram - * socket pair and send a packet from one to the other. - */ - -#include <sys/types.h> -#include <sys/socket.h> - -#include <netipx/ipx.h> - -#include <err.h> -#include <fcntl.h> -#include <string.h> -#include <unistd.h> - -#define IPX_ENDPOINT "0xbebe.1.0x8a13" -#define PACKETLEN 128 - -int -main(int argc, char *argv[]) -{ - struct sockaddr_ipx sipx_recv, sipx_send; - u_char packet[PACKETLEN]; - int i, sock_recv, sock_send; - ssize_t len; - - /* - * Socket to receive with. - */ - sock_recv = socket(PF_IPX, SOCK_DGRAM, 0); - if (sock_recv < 0) - err(-1, "sock_recv = socket(PF_IPX, SOCK_DGRAM, 0)"); - - bzero(&sipx_recv, sizeof(sipx_recv)); - sipx_recv.sipx_len = sizeof(sipx_recv); - sipx_recv.sipx_family = AF_IPX; - sipx_recv.sipx_addr = ipx_addr(IPX_ENDPOINT); - - if (bind(sock_recv, (struct sockaddr *)&sipx_recv, sizeof(sipx_recv)) - < 0) - err(-1, "bind(sock_recv)"); - - /* - * Set non-blocking to try to avoid blocking indefinitely if the - * packet doesn't end up in the right place. - */ - if (fcntl(sock_recv, F_SETFL, O_NONBLOCK) < 0) - err(-1, "fcntl(O_NONBLOCK, sock_recv)"); - - /* - * Socket to send with. - */ - sock_send = socket(PF_IPX, SOCK_DGRAM, 0); - if (sock_send < 0) - err(-1, "sock_send = socket(PF_IPX, SOCK_DGRAM, 0)"); - - bzero(&sipx_send, sizeof(sipx_send)); - sipx_send.sipx_len = sizeof(sipx_send); - sipx_send.sipx_family = AF_IPX; - sipx_send.sipx_addr = ipx_addr(IPX_ENDPOINT); - - for (i = 0; i < PACKETLEN; i++) - packet[i] = (i & 0xff); - - len = sendto(sock_send, packet, sizeof(packet), 0, - (struct sockaddr *)&sipx_send, sizeof(sipx_send)); - if (len < 0) - err(-1, "sendto()"); - if (len != sizeof(packet)) - errx(-1, "sendto(): short send (%zu length, %zd sent)", - sizeof(packet), len); - - sleep(1); /* Arbitrary non-zero amount. */ - - bzero(packet, sizeof(packet)); - len = recv(sock_recv, packet, sizeof(packet), 0); - if (len < 0) - err(-1, "recv()"); - if (len != sizeof(packet)) - errx(-1, "recv(): short receive (%zu length, %zd received)", - sizeof(packet), len); - - for (i = 0; i < PACKETLEN; i++) { - if (packet[i] != (i & 0xff)) - errx(-1, "recv(): byte %d wrong (%d instead of %d)", - i, packet[i], i & 0xff); - } - - return (0); -} diff --git a/tools/regression/netipx/ipxsocket/Makefile b/tools/regression/netipx/ipxsocket/Makefile deleted file mode 100644 index 65157fa1dd19..000000000000 --- a/tools/regression/netipx/ipxsocket/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# -# $FreeBSD$ -# - -PROG= ipxsocket -NO_MAN= - -.include <bsd.prog.mk> diff --git a/tools/regression/netipx/ipxsocket/ipxsocket.c b/tools/regression/netipx/ipxsocket/ipxsocket.c deleted file mode 100644 index afcd2dc9a548..000000000000 --- a/tools/regression/netipx/ipxsocket/ipxsocket.c +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 2006 Robert N. M. Watson - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS 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 AUTHOR OR 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. - * - * $FreeBSD$ - */ - -/* - * Simple regression test to open and then immediately close various types of - * PF_IPX sockets. Run with various waits in order to make sure that the - * various IPX/SPX timers have a chance to walk the pcb lists and hit the - * sockets. - */ - -#include <sys/types.h> -#include <sys/socket.h> - -#include <netipx/ipx.h> - -#include <err.h> -#include <unistd.h> - -static int -maybe_sleep(int sec) -{ - - if (sec == 0) - return (0); - return (sleep(sec)); -} - -int -main(int argc, char *argv[]) -{ - int delay, s; - - for (delay = 0; delay < 5; delay++) { - s = socket(PF_IPX, SOCK_DGRAM, 0); - if (s < 0) - warn("socket(PF_IPX, SOCK_DGRAM, 0)"); - else { - maybe_sleep(delay); - close(s); - } - - s = socket(PF_IPX, SOCK_STREAM, 0); - if (s < 0) - warn("socket(PF_IPX, SOCK_STREAM, 0)"); - else { - maybe_sleep(delay); - close(s); - } - - s = socket(PF_IPX, SOCK_SEQPACKET, 0); - if (s < 0) - warn("socket(PF_IPX, SOCK_SEQPACKET, 0)"); - else { - maybe_sleep(delay); - close(s); - } - - s = socket(PF_IPX, SOCK_RAW, 0); - if (s < 0) - warn("socket(PF_IPX, SOCK_RAW, 0)"); - else { - maybe_sleep(delay); - close(s); - } - } - - return (0); -} diff --git a/tools/regression/netipx/spxabort/Makefile b/tools/regression/netipx/spxabort/Makefile deleted file mode 100644 index ec3ef5b26fd6..000000000000 --- a/tools/regression/netipx/spxabort/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# -# $FreeBSD$ -# - -PROG= spxabort -NO_MAN= - -DPADD= ${LIBIPX} -LDADD= -lipx -WARNS?= 3 - -.include <bsd.prog.mk> diff --git a/tools/regression/netipx/spxabort/spxabort.c b/tools/regression/netipx/spxabort/spxabort.c deleted file mode 100644 index 8b6537f265eb..000000000000 --- a/tools/regression/netipx/spxabort/spxabort.c +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * Copyright (c) 2006 Robert N. M. Watson - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS 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 AUTHOR OR 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. - * - * $FreeBSD$ - */ - -/* - * Exercise the pru_abort() code for SPX by opening an SPX connection to a - * listen socket, then closing the listen socket before accepting. - * - * We would also like to be able to test the other two abort cases, in which - * incomplete connections are aborted due to overflow, and due to close of - * the listen socket, but that requires a packet level test rather than using - * the socket API. - */ - -#include <sys/types.h> -#include <sys/socket.h> - -#include <netipx/ipx.h> - -#include <err.h> -#include <errno.h> -#include <fcntl.h> -#include <stdio.h> -#include <string.h> -#include <unistd.h> - -#define IPX_ENDPOINT "0xbebe.1.0x8a13" - -int -main(int argc, char *argv[]) -{ - struct sockaddr_ipx sipx; - int sock_listen, sock; - - sock_listen = socket(PF_IPX, SOCK_STREAM, 0); - if (sock_listen < 0) - err(-1, "sock_listen = socket(PF_IPX, SOCK_STREAM, 0)"); - - bzero(&sipx, sizeof(sipx)); - sipx.sipx_len = sizeof(sipx); - sipx.sipx_family = AF_IPX; - sipx.sipx_addr = ipx_addr(IPX_ENDPOINT); - - if (bind(sock_listen, (struct sockaddr *)&sipx, sizeof(sipx)) < 0) - err(-1, "bind(sock_listen)"); - - if (listen(sock_listen, -1) < 0) - err(-1, "listen(sock_listen)"); - - sock = socket(PF_IPX, SOCK_STREAM, 0); - if (sock < 0) - err(-1, "sock = socket(PF_IPX, SOCK_STREAM, 0)"); - - bzero(&sipx, sizeof(sipx)); - sipx.sipx_len = sizeof(sipx); - sipx.sipx_family = AF_IPX; - sipx.sipx_addr = ipx_addr(IPX_ENDPOINT); - - if (fcntl(sock, F_SETFL, O_NONBLOCK) < 0) - err(-1, "fcntl(sock, F_SETFL, O_NONBLOCKING)"); - - if (connect(sock, (struct sockaddr *)&sipx, sizeof(sipx)) < 0) { - if (errno != EINPROGRESS) - err(-1, "sock = socket(PF_IPX, SOCK_STREAM, 0)"); - } - - sleep(1); /* Arbitrary. */ - - close(sock_listen); - - return (0); -}; diff --git a/tools/regression/netipx/spxloopback/Makefile b/tools/regression/netipx/spxloopback/Makefile deleted file mode 100644 index 4245217a2aca..000000000000 --- a/tools/regression/netipx/spxloopback/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# -# $FreeBSD$ -# - -PROG= spxloopback -NO_MAN= - -DPADD= ${LIBIPX} -LDADD= -lipx -WARNS?= 3 - -.include <bsd.prog.mk> diff --git a/tools/regression/netipx/spxloopback/spxloopback.c b/tools/regression/netipx/spxloopback/spxloopback.c deleted file mode 100644 index 0f3f156b8be7..000000000000 --- a/tools/regression/netipx/spxloopback/spxloopback.c +++ /dev/null @@ -1,237 +0,0 @@ -/*- - * Copyright (c) 2006 Robert N. M. Watson - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS 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 AUTHOR OR 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. - * - * $FreeBSD$Exp $ - */ - -/* - * Simple netipx regression test that attempts to build an SPX stream socket - * pair, and send data twice over the stream, once in each direction. - * Purposefully pick a small packet length that should fit into the buffers - * at both ends, and therefore not result in a buffer deadlock. - */ - -#include <sys/types.h> -#include <sys/socket.h> - -#include <netipx/ipx.h> - -#include <err.h> -#include <errno.h> -#include <signal.h> -#include <stdio.h> -#include <string.h> -#include <unistd.h> - -#define IPX_ENDPOINT "0xbebe.1.0x8a13" -#define PACKETLEN 16 * (1024 * 1024) - -static void -packet_fill(u_char *packet) -{ - int i; - - for (i = 0; i < PACKETLEN; i++) - packet[i] = (i & 0xff); -} - -static int -packet_check(u_char *packet, size_t totlen, ssize_t len) -{ - size_t i; - - for (i = totlen; i < totlen + len; i++) { - if (packet[i] != (i & 0xff)) - return (-1); - } - return (0); -} - -static void -my_send(int sock, const char *who, pid_t pid) -{ - u_char packet[PACKETLEN]; - ssize_t len; - size_t totlen; - int error; - - totlen = 0; - packet_fill(packet); - while (totlen < PACKETLEN) { - len = send(sock, packet + totlen, PACKETLEN - totlen, 0); - if (len < 0) { - error = errno; - (void)kill(pid, SIGTERM); - errno = error; - err(-1, "%s: send()", who); - } - if (len == 0) { - (void)kill(pid, SIGTERM); - errx(-1, "%s: send(): EOF", who); - } - totlen += len; - } -} - -static void -my_recv(int sock, const char *who, pid_t pid) -{ - u_char packet[PACKETLEN]; - ssize_t len; - size_t totlen; - int error; - - totlen = 0; - bzero(packet, sizeof(packet)); - while (totlen < PACKETLEN) { - len = recv(sock, packet + totlen, sizeof(packet) - totlen, 0); - if (len < 0) { - errno = error; - (void)kill(pid, SIGTERM); - errno = error; - err(-1, "%s: recv()", who); - } - if (len == 0) { - (void)kill(pid, SIGTERM); - errx(-1, "%s: recv(): EOF", who); - } - if (packet_check(packet, totlen, len) < 0) { - (void)kill(pid, SIGTERM); - errx(-1, "%s: recv(): got bad data", who); - } - totlen += len; - } -} - -int -main(int argc, char *argv[]) -{ - int error, sock_listen, sock_recv, sock_send; - struct sockaddr_ipx sipx_listen, sipx_send; - pid_t childpid, parentpid; - - /* - * Socket to receive with. - */ - sock_listen = socket(PF_IPX, SOCK_STREAM, 0); - if (sock_listen < 0) - err(-1, "sock_listen = socket(PF_IPX, SOCK_STREAM, 0)"); - - bzero(&sipx_listen, sizeof(sipx_listen)); - sipx_listen.sipx_len = sizeof(sipx_listen); - sipx_listen.sipx_family = AF_IPX; - sipx_listen.sipx_addr = ipx_addr(IPX_ENDPOINT); - - if (bind(sock_listen, (struct sockaddr *)&sipx_listen, - sizeof(sipx_listen)) < 0) - err(-1, "bind(sock_listen)"); - - if (listen(sock_listen, -1) < 0) - err(-1, "listen(sock_listen)"); - - parentpid = getpid(); - - childpid = fork(); - if (childpid < 0) - err(-1, "fork()"); - - if (childpid == 0) { - /* - * The child: accept connections and process data on them. - */ - while (1) { - sock_recv = accept(sock_listen, NULL, NULL); - if (sock_recv < 0) { - warn("accept()"); - continue; - } - - my_recv(sock_recv, "listener", parentpid); - my_send(sock_recv, "listener", parentpid); - - close(sock_recv); - } - } else { - /* - * The parent: connect, send data, receive it back, and exit; - * build two connections, once using a full connect() API - * call, and the second using sendto(). - */ - - /* - * Socket to send with. - */ - sock_send = socket(PF_IPX, SOCK_STREAM, 0); - if (sock_send < 0) { - error = errno; - (void)kill(childpid, SIGTERM); - errno = error; - err(-1, "sock_send = socket(PF_IPX, SOCK_STREAM, 0)"); - } - - bzero(&sipx_send, sizeof(sipx_send)); - sipx_send.sipx_len = sizeof(sipx_send); - sipx_send.sipx_family = AF_IPX; - sipx_send.sipx_addr = ipx_addr(IPX_ENDPOINT); - - if (connect(sock_send, (struct sockaddr *)&sipx_send, - sizeof(sipx_send)) < 0) { - error = errno; - (void)kill(childpid, SIGTERM); - errno = error; - err(-1, "sock_send = socket(PF_IPX, SOCK_STREAM, 0)"); - } - - my_send(sock_send, "connector", childpid); - my_recv(sock_send, "connector", childpid); - - close(sock_send); - -#ifdef SPX_SUPPORTS_SENDTO_WITH_CONNECT - sock_send = socket(PF_IPX, SOCK_STREAM, 0); - if (sock_send < 0) { - error = errno; - (void)kill(childpid, SIGTERM); - errno = error; - err(-1, "sock_send = socket(PF_IPX, SOCK_STREAM, 0)"); - } - - bzero(&sipx_send, sizeof(sipx_send)); - sipx_send.sipx_len = sizeof(sipx_send); - sipx_send.sipx_family = AF_IPX; - sipx_send.sipx_addr = ipx_addr(IPX_ENDPOINT); - - my_sendto(sock_send, "connector", childpid, - (struct sockaddr *)&sipx_send, sizeof(sipx_send)); - my_recv(sock_send, "connector", childpid); - - close(sock_send); -#endif - - (void)kill(childpid, SIGTERM); - } - - return (0); -} |