Merge branch 'master' into wip/win32-port2
This commit is contained in:
@@ -329,7 +329,7 @@ main(int argc, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(interactive_flag)
|
if(interactive_flag)
|
||||||
mini_inetd (port);
|
mini_inetd(port, NULL);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LOG_NDELAY sets up the logging connection immediately,
|
* LOG_NDELAY sets up the logging connection immediately,
|
||||||
|
@@ -1252,7 +1252,7 @@ main(int argc, char **argv)
|
|||||||
err(1, "error opening %s", lf);
|
err(1, "error opening %s", lf);
|
||||||
}
|
}
|
||||||
|
|
||||||
mini_inetd(htons(port));
|
mini_inetd(htons(port), NULL);
|
||||||
fprintf(logfile, "connected\n");
|
fprintf(logfile, "connected\n");
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@@ -284,7 +284,7 @@ static int
|
|||||||
doit (int port, const char *service)
|
doit (int port, const char *service)
|
||||||
{
|
{
|
||||||
if (do_inetd)
|
if (do_inetd)
|
||||||
mini_inetd(port);
|
mini_inetd(port, NULL);
|
||||||
return proto (STDIN_FILENO, service);
|
return proto (STDIN_FILENO, service);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -772,7 +772,7 @@ main (int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!inetd_flag)
|
if (!inetd_flag)
|
||||||
mini_inetd (port);
|
mini_inetd (port, NULL);
|
||||||
|
|
||||||
signal (SIGCHLD, childhandler);
|
signal (SIGCHLD, childhandler);
|
||||||
return doit(STDIN_FILENO, tcp_flag);
|
return doit(STDIN_FILENO, tcp_flag);
|
||||||
|
@@ -301,7 +301,7 @@ pop_init(POP *p,int argcount,char **argmessage)
|
|||||||
portnum = p->kerberosp ?
|
portnum = p->kerberosp ?
|
||||||
pop_getportbyname(p, "kpop", "tcp", 1109) :
|
pop_getportbyname(p, "kpop", "tcp", 1109) :
|
||||||
pop_getportbyname(p, "pop", "tcp", 110);
|
pop_getportbyname(p, "pop", "tcp", 110);
|
||||||
mini_inetd (portnum);
|
mini_inetd (portnum, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the address and socket of the client to whom I am speaking */
|
/* Get the address and socket of the client to whom I am speaking */
|
||||||
|
@@ -961,7 +961,7 @@ main(int argc, char **argv)
|
|||||||
errx (1, "getaddrinfo: %s", gai_strerror (error));
|
errx (1, "getaddrinfo: %s", gai_strerror (error));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mini_inetd_addrinfo (ai);
|
mini_inetd_addrinfo (ai, NULL);
|
||||||
freeaddrinfo(ai);
|
freeaddrinfo(ai);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -370,7 +370,7 @@ main(int argc, char **argv)
|
|||||||
port = k_getportbyname("telnet", "tcp", htons(23));
|
port = k_getportbyname("telnet", "tcp", htons(23));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
mini_inetd (port);
|
mini_inetd (port, NULL);
|
||||||
} else if (argc > 0) {
|
} else if (argc > 0) {
|
||||||
usage(1);
|
usage(1);
|
||||||
/* NOT REACHED */
|
/* NOT REACHED */
|
||||||
|
@@ -155,7 +155,7 @@ proto (int sock, const char *service)
|
|||||||
static int
|
static int
|
||||||
doit (int port, const char *service)
|
doit (int port, const char *service)
|
||||||
{
|
{
|
||||||
mini_inetd (port);
|
mini_inetd (port, NULL);
|
||||||
|
|
||||||
return proto (STDIN_FILENO, service);
|
return proto (STDIN_FILENO, service);
|
||||||
}
|
}
|
||||||
|
@@ -136,7 +136,6 @@ check_directory(krb5_context context,
|
|||||||
if((d = opendir(dirname)) == NULL)
|
if((d = opendir(dirname)) == NULL)
|
||||||
return errno;
|
return errno;
|
||||||
|
|
||||||
#ifdef HAVE_DIRFD
|
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
struct stat st2;
|
struct stat st2;
|
||||||
@@ -151,7 +150,6 @@ check_directory(krb5_context context,
|
|||||||
return EACCES;
|
return EACCES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
while((dent = readdir(d)) != NULL) {
|
while((dent = readdir(d)) != NULL) {
|
||||||
if(strcmp(dent->d_name, ".") == 0 ||
|
if(strcmp(dent->d_name, ".") == 0 ||
|
||||||
|
66
lib/roken/dirent.hin
Normal file
66
lib/roken/dirent.hin
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
/***********************************************************************
|
||||||
|
* Copyright (c) 2009, Secure Endpoints Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - 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 COPYRIGHT HOLDERS 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
|
||||||
|
* COPYRIGHT HOLDER 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.
|
||||||
|
*
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
#ifndef __DIRENT_H__
|
||||||
|
#define __DIRENT_H__
|
||||||
|
|
||||||
|
#ifndef ROKEN_LIB_FUNCTION
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define ROKEN_LIB_FUNCTION
|
||||||
|
#define ROKEN_LIB_CALL __cdecl
|
||||||
|
#else
|
||||||
|
#define ROKEN_LIB_FUNCTION
|
||||||
|
#define ROKEN_LIB_CALL
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include<sys/types.h>
|
||||||
|
|
||||||
|
struct dirent {
|
||||||
|
ino_t d_ino;
|
||||||
|
char d_name[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _dirent_dirinfo DIR;
|
||||||
|
|
||||||
|
ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL closedir(DIR *);
|
||||||
|
|
||||||
|
ROKEN_LIB_FUNCTION DIR * ROKEN_LIB_CALL opendir(const char *);
|
||||||
|
|
||||||
|
ROKEN_LIB_FUNCTION struct dirent * ROKEN_LIB_CALL readdir(DIR *);
|
||||||
|
|
||||||
|
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL rewinddir(DIR *);
|
||||||
|
|
||||||
|
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL seekdir(DIR *, long);
|
||||||
|
|
||||||
|
ROKEN_LIB_FUNCTION long ROKEN_LIB_CALL telldir(DIR *);
|
||||||
|
|
||||||
|
#endif
|
@@ -40,7 +40,11 @@
|
|||||||
|
|
||||||
#include <ifaddrs.h>
|
#include <ifaddrs.h>
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
void
|
void
|
||||||
|
=======
|
||||||
|
static void
|
||||||
|
>>>>>>> master
|
||||||
print_addr(const char *s, struct sockaddr *sa)
|
print_addr(const char *s, struct sockaddr *sa)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -55,7 +59,11 @@ print_addr(const char *s, struct sockaddr *sa)
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
void
|
void
|
||||||
|
=======
|
||||||
|
static void
|
||||||
|
>>>>>>> master
|
||||||
print_ifaddrs(struct ifaddrs *x)
|
print_ifaddrs(struct ifaddrs *x)
|
||||||
{
|
{
|
||||||
struct ifaddrs *p;
|
struct ifaddrs *p;
|
||||||
@@ -79,7 +87,11 @@ main(int argc, char **argv)
|
|||||||
struct ifaddrs *addrs = NULL;
|
struct ifaddrs *addrs = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
if (SOCK_INIT)
|
if (SOCK_INIT)
|
||||||
|
=======
|
||||||
|
if (rk_SOCK_INIT())
|
||||||
|
>>>>>>> master
|
||||||
errx(1, "Couldn't initialize sockets. Err=%d\n", rk_SOCK_ERRNO);
|
errx(1, "Couldn't initialize sockets. Err=%d\n", rk_SOCK_ERRNO);
|
||||||
|
|
||||||
ret = getifaddrs(&addrs);
|
ret = getifaddrs(&addrs);
|
||||||
@@ -94,7 +106,7 @@ main(int argc, char **argv)
|
|||||||
/* Check that freeifaddrs doesn't crash */
|
/* Check that freeifaddrs doesn't crash */
|
||||||
freeifaddrs(addrs);
|
freeifaddrs(addrs);
|
||||||
|
|
||||||
if (SOCK_EXIT)
|
if (rk_SOCK_EXIT())
|
||||||
errx(1, "Couldn't uninitialize sockets. Err=%d\n", rk_SOCK_ERRNO);
|
errx(1, "Couldn't uninitialize sockets. Err=%d\n", rk_SOCK_ERRNO);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -63,7 +63,7 @@ accept_it (rk_socket_t s, rk_socket_t *ret_socket)
|
|||||||
dup2(fd, STDIN_FILENO);
|
dup2(fd, STDIN_FILENO);
|
||||||
dup2(fd, STDOUT_FILENO);
|
dup2(fd, STDOUT_FILENO);
|
||||||
|
|
||||||
closesocket(fd);
|
rk_closesocket(as);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,13 +114,21 @@ mini_inetd_addrinfo (struct addrinfo *ai, rk_socket_t *ret_socket)
|
|||||||
socket_set_ipv6only(fds[i], 1);
|
socket_set_ipv6only(fds[i], 1);
|
||||||
if (rk_IS_SOCKET_ERROR(bind (fds[i], a->ai_addr, a->ai_addrlen))) {
|
if (rk_IS_SOCKET_ERROR(bind (fds[i], a->ai_addr, a->ai_addrlen))) {
|
||||||
warn ("bind af = %d", a->ai_family);
|
warn ("bind af = %d", a->ai_family);
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(fds[i]);
|
closesocket(fds[i]);
|
||||||
|
=======
|
||||||
|
rk_closesocket(fds[i]);
|
||||||
|
>>>>>>> master
|
||||||
fds[i] = rk_INVALID_SOCKET;
|
fds[i] = rk_INVALID_SOCKET;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (rk_IS_SOCKET_ERROR(listen (fds[i], SOMAXCONN))) {
|
if (rk_IS_SOCKET_ERROR(listen (fds[i], SOMAXCONN))) {
|
||||||
warn ("listen af = %d", a->ai_family);
|
warn ("listen af = %d", a->ai_family);
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(fds[i]);
|
closesocket(fds[i]);
|
||||||
|
=======
|
||||||
|
rk_closesocket(fds[i]);
|
||||||
|
>>>>>>> master
|
||||||
fds[i] = rk_INVALID_SOCKET;
|
fds[i] = rk_INVALID_SOCKET;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -148,7 +156,11 @@ mini_inetd_addrinfo (struct addrinfo *ai, rk_socket_t *ret_socket)
|
|||||||
if (FD_ISSET (fds[i], &read_set)) {
|
if (FD_ISSET (fds[i], &read_set)) {
|
||||||
accept_it (fds[i], ret_socket);
|
accept_it (fds[i], ret_socket);
|
||||||
for (i = 0; i < n; ++i)
|
for (i = 0; i < n; ++i)
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(fds[i]);
|
closesocket(fds[i]);
|
||||||
|
=======
|
||||||
|
rk_closesocket(fds[i]);
|
||||||
|
>>>>>>> master
|
||||||
free(fds);
|
free(fds);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -173,7 +185,11 @@ mini_inetd_addrinfo (struct addrinfo *ai, rk_socket_t *ret_socket)
|
|||||||
* @see mini_inetd_addrinfo()
|
* @see mini_inetd_addrinfo()
|
||||||
*/
|
*/
|
||||||
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
||||||
|
<<<<<<< HEAD
|
||||||
mini_inetd (int port, rk_socket_t * ret_socket)
|
mini_inetd (int port, rk_socket_t * ret_socket)
|
||||||
|
=======
|
||||||
|
mini_inetd(int port, rk_socket_t * ret_socket)
|
||||||
|
>>>>>>> master
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
struct addrinfo *ai, hints;
|
struct addrinfo *ai, hints;
|
||||||
|
@@ -56,6 +56,11 @@
|
|||||||
|
|
||||||
#include<ws2tcpip.h>
|
#include<ws2tcpip.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* error codes for inet_ntop/inet_pton
|
||||||
|
*/
|
||||||
|
#define EAFNOSUPPORT WSAEAFNOSUPPORT
|
||||||
|
|
||||||
typedef SOCKET rk_socket_t;
|
typedef SOCKET rk_socket_t;
|
||||||
|
|
||||||
#define rk_IS_BAD_SOCKET(s) ((s) == INVALID_SOCKET)
|
#define rk_IS_BAD_SOCKET(s) ((s) == INVALID_SOCKET)
|
||||||
@@ -84,8 +89,13 @@ typedef int rk_socket_t;
|
|||||||
#define rk_SOCK_ERRNO errno
|
#define rk_SOCK_ERRNO errno
|
||||||
#define rk_INVALID_SOCKET (-1)
|
#define rk_INVALID_SOCKET (-1)
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
#define rk_SOCK_INIT 0
|
#define rk_SOCK_INIT 0
|
||||||
#define rk_SOCK_EXIT 0
|
#define rk_SOCK_EXIT 0
|
||||||
|
=======
|
||||||
|
#define rk_SOCK_INIT() 0
|
||||||
|
#define rk_SOCK_EXIT() 0
|
||||||
|
>>>>>>> master
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -923,7 +933,11 @@ extern const char *__progname;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
||||||
|
<<<<<<< HEAD
|
||||||
mini_inetd_addrinfo (struct addrinfo*, rk_socket *);
|
mini_inetd_addrinfo (struct addrinfo*, rk_socket *);
|
||||||
|
=======
|
||||||
|
mini_inetd_addrinfo (struct addrinfo*, rk_socket_t *);
|
||||||
|
>>>>>>> master
|
||||||
|
|
||||||
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
||||||
mini_inetd (int, rk_socket_t *);
|
mini_inetd (int, rk_socket_t *);
|
||||||
|
@@ -303,7 +303,7 @@ socket_set_ipv6only (rk_socket_t sock, int val)
|
|||||||
*
|
*
|
||||||
* While the socket handle in \a sock can be used with WinSock
|
* While the socket handle in \a sock can be used with WinSock
|
||||||
* functions after calling socket_to_fd(), it should not be closed
|
* functions after calling socket_to_fd(), it should not be closed
|
||||||
* with closesocket(). The socket will be closed when the associated
|
* with rk_closesocket(). The socket will be closed when the associated
|
||||||
* file descriptor is closed.
|
* file descriptor is closed.
|
||||||
*/
|
*/
|
||||||
ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
|
ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
|
||||||
|
@@ -218,7 +218,7 @@ openlog( char* ident, int option, int facility )
|
|||||||
sa_local.sin_family = AF_INET;
|
sa_local.sin_family = AF_INET;
|
||||||
if( bind( syslog_socket, (SOCKADDR*) &sa_local, sizeof(SOCKADDR_IN) ) == 0 )
|
if( bind( syslog_socket, (SOCKADDR*) &sa_local, sizeof(SOCKADDR_IN) ) == 0 )
|
||||||
break;
|
break;
|
||||||
closesocket( syslog_socket );
|
rk_closesocket( syslog_socket );
|
||||||
syslog_socket = INVALID_SOCKET;
|
syslog_socket = INVALID_SOCKET;
|
||||||
if( n == 100 )
|
if( n == 100 )
|
||||||
goto done;
|
goto done;
|
||||||
@@ -243,7 +243,7 @@ openlog( char* ident, int option, int facility )
|
|||||||
done:
|
done:
|
||||||
if( failed ) {
|
if( failed ) {
|
||||||
if( syslog_socket != INVALID_SOCKET )
|
if( syslog_socket != INVALID_SOCKET )
|
||||||
closesocket( syslog_socket );
|
rk_closesocket( syslog_socket );
|
||||||
}
|
}
|
||||||
syslog_opened = !failed;
|
syslog_opened = !failed;
|
||||||
|
|
||||||
|
@@ -87,7 +87,11 @@ get_connected_socket(rk_socket_t * s_ret)
|
|||||||
|
|
||||||
done:
|
done:
|
||||||
if (!rk_IS_BAD_SOCKET(s))
|
if (!rk_IS_BAD_SOCKET(s))
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
|
=======
|
||||||
|
rk_closesocket(s);
|
||||||
|
>>>>>>> master
|
||||||
|
|
||||||
if (ai)
|
if (ai)
|
||||||
freeaddrinfo(ai);
|
freeaddrinfo(ai);
|
||||||
@@ -125,7 +129,11 @@ test_simple_echo_client(void)
|
|||||||
if (rk_IS_SOCKET_ERROR(rv)) {
|
if (rk_IS_SOCKET_ERROR(rv)) {
|
||||||
fprintf(stderr, "[%s] send() failure (%s)\n",
|
fprintf(stderr, "[%s] send() failure (%s)\n",
|
||||||
getprogname(), strerror(rk_SOCK_ERRNO));
|
getprogname(), strerror(rk_SOCK_ERRNO));
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
|
=======
|
||||||
|
rk_closesocket(s);
|
||||||
|
>>>>>>> master
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,25 +141,41 @@ test_simple_echo_client(void)
|
|||||||
if (rk_IS_SOCKET_ERROR(rv)) {
|
if (rk_IS_SOCKET_ERROR(rv)) {
|
||||||
fprintf (stderr, "[%s] recv() failure (%s)\n",
|
fprintf (stderr, "[%s] recv() failure (%s)\n",
|
||||||
getprogname(), strerror(rk_SOCK_ERRNO));
|
getprogname(), strerror(rk_SOCK_ERRNO));
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
|
=======
|
||||||
|
rk_closesocket(s);
|
||||||
|
>>>>>>> master
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rv == 0) {
|
if (rv == 0) {
|
||||||
fprintf (stderr, "[%s] No data received\n", prog);
|
fprintf (stderr, "[%s] No data received\n", prog);
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
|
=======
|
||||||
|
rk_closesocket(s);
|
||||||
|
>>>>>>> master
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rv != strlen(test_strings[i])) {
|
if (rv != strlen(test_strings[i])) {
|
||||||
fprintf (stderr, "[%s] Data length mismatch %d != %d\n", prog, rv, strlen(test_strings[i]));
|
fprintf (stderr, "[%s] Data length mismatch %d != %d\n", prog, rv, strlen(test_strings[i]));
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
|
=======
|
||||||
|
rk_closesocket(s);
|
||||||
|
>>>>>>> master
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf (stderr, "[%s] Done\n", prog);
|
fprintf (stderr, "[%s] Done\n", prog);
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
|
=======
|
||||||
|
rk_closesocket(s);
|
||||||
|
>>>>>>> master
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -198,7 +222,11 @@ test_simple_echo_socket(void)
|
|||||||
if (!strcmp(buf, "exit")) {
|
if (!strcmp(buf, "exit")) {
|
||||||
fprintf(stderr, "[%s] Exiting...\n", prog);
|
fprintf(stderr, "[%s] Exiting...\n", prog);
|
||||||
shutdown(s, SD_SEND);
|
shutdown(s, SD_SEND);
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
|
=======
|
||||||
|
rk_closesocket(s);
|
||||||
|
>>>>>>> master
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -208,7 +236,11 @@ test_simple_echo_socket(void)
|
|||||||
strerror(rk_SOCK_ERRNO));
|
strerror(rk_SOCK_ERRNO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
closesocket(s);
|
closesocket(s);
|
||||||
|
=======
|
||||||
|
rk_closesocket(s);
|
||||||
|
>>>>>>> master
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
Reference in New Issue
Block a user