Merge branch 'master' into wip/win32-port2

This commit is contained in:
Love Hornquist Astrand
2009-11-25 05:41:14 -08:00
23 changed files with 108 additions and 165 deletions

View File

@@ -195,6 +195,9 @@ AM_CONDITIONAL(KRB4, false)
AM_CONDITIONAL(KRB5, true) AM_CONDITIONAL(KRB5, true)
AM_CONDITIONAL(do_roken_rename, true) AM_CONDITIONAL(do_roken_rename, true)
AC_DEFINE(SUPPORT_INETD, 1, [Enable use of inetd style startup.])dnl
AC_DEFINE(KRB5, 1, [Enable Kerberos 5 support in applications.])dnl AC_DEFINE(KRB5, 1, [Enable Kerberos 5 support in applications.])dnl
AC_SUBST(LIB_kdb)dnl AC_SUBST(LIB_kdb)dnl

View File

@@ -1362,9 +1362,6 @@ static const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg }
/* Define if the Unix rand method is not defined */ /* Define if the Unix rand method is not defined */
#define NO_RAND_UNIX_METHOD 1 #define NO_RAND_UNIX_METHOD 1
/* Define if fd_sets aren't limited to FD_SETSIZE sockets */
#define NO_LIMIT_FD_SETSIZE 1
/* Define if PID files should not be used. */ /* Define if PID files should not be used. */
#define NO_PIDFILES 1 #define NO_PIDFILES 1

View File

@@ -175,7 +175,7 @@ wait_for_connection(krb5_context context,
FD_ZERO(&orig_read_set); FD_ZERO(&orig_read_set);
for(i = 0; i < num_socks; i++) { for(i = 0; i < num_socks; i++) {
#ifndef NO_LIMIT_FD_SETSIZE #ifdef FD_SETSIZE
if (socks[i] >= FD_SETSIZE) if (socks[i] >= FD_SETSIZE)
errx (1, "fd too large"); errx (1, "fd too large");
#endif #endif

View File

@@ -110,8 +110,8 @@ main(int argc, char **argv)
heim_sipc mach; heim_sipc mach;
heim_sipc_launchd_mach_init(service_name, kcm_service, NULL, &mach); heim_sipc_launchd_mach_init(service_name, kcm_service, NULL, &mach);
} else { } else {
heim_sipc unix; heim_sipc un;
heim_sipc_service_unix(service_name, kcm_service, NULL, &unix); heim_sipc_service_unix(service_name, kcm_service, NULL, &un);
} }
heim_ipc_main(); heim_ipc_main();

View File

@@ -356,11 +356,11 @@ configure(krb5_context context, int argc, char **argv)
if (config->pkinit_kdc_anchors == NULL) if (config->pkinit_kdc_anchors == NULL)
krb5_errx(context, 1, "pkinit enabled but no X509 anchors"); krb5_errx(context, 1, "pkinit enabled but no X509 anchors");
_kdc_pk_initialize(context, config, krb5_kdc_pk_initialize(context, config,
config->pkinit_kdc_identity, config->pkinit_kdc_identity,
config->pkinit_kdc_anchors, config->pkinit_kdc_anchors,
config->pkinit_kdc_cert_pool, config->pkinit_kdc_cert_pool,
config->pkinit_kdc_revoke); config->pkinit_kdc_revoke);
} }

View File

@@ -270,7 +270,7 @@ init_socket(krb5_context context,
ret = krb5_addr2sockaddr (context, a, sa, &sa_size, port); ret = krb5_addr2sockaddr (context, a, sa, &sa_size, port);
if (ret) { if (ret) {
krb5_warn(context, ret, "krb5_addr2sockaddr"); krb5_warn(context, ret, "krb5_addr2sockaddr");
closesocket(d->s); rk_closesocket(d->s);
d->s = rk_INVALID_SOCKET; d->s = rk_INVALID_SOCKET;
return; return;
} }
@@ -299,7 +299,7 @@ init_socket(krb5_context context,
krb5_print_address (a, a_str, sizeof(a_str), &len); krb5_print_address (a, a_str, sizeof(a_str), &len);
krb5_warn(context, errno, "bind %s/%d", a_str, ntohs(port)); krb5_warn(context, errno, "bind %s/%d", a_str, ntohs(port));
closesocket(d->s); rk_closesocket(d->s);
d->s = rk_INVALID_SOCKET; d->s = rk_INVALID_SOCKET;
return; return;
} }
@@ -309,7 +309,7 @@ init_socket(krb5_context context,
krb5_print_address (a, a_str, sizeof(a_str), &len); krb5_print_address (a, a_str, sizeof(a_str), &len);
krb5_warn(context, errno, "listen %s/%d", a_str, ntohs(port)); krb5_warn(context, errno, "listen %s/%d", a_str, ntohs(port));
closesocket(d->s); rk_closesocket(d->s);
d->s = rk_INVALID_SOCKET; d->s = rk_INVALID_SOCKET;
return; return;
} }
@@ -489,7 +489,7 @@ handle_udp(krb5_context context,
} }
d->sock_len = sizeof(d->__ss); d->sock_len = sizeof(d->__ss);
n = recvfrom(d->s, buf, max_request, 0, d->sa, &d->sock_len); n = recvfrom(d->s, buf, max_request_udp, 0, d->sa, &d->sock_len);
if(rk_IS_SOCKET_ERROR(n)) if(rk_IS_SOCKET_ERROR(n))
krb5_warn(context, rk_SOCK_ERRNO, "recvfrom"); krb5_warn(context, rk_SOCK_ERRNO, "recvfrom");
else { else {
@@ -525,7 +525,7 @@ clear_descr(struct descr *d)
memset(d->buf, 0, d->size); memset(d->buf, 0, d->size);
d->len = 0; d->len = 0;
if(d->s != rk_INVALID_SOCKET) if(d->s != rk_INVALID_SOCKET)
closesocket(d->s); rk_closesocket(d->s);
d->s = rk_INVALID_SOCKET; d->s = rk_INVALID_SOCKET;
} }
@@ -572,10 +572,10 @@ add_new_tcp (krb5_context context,
return; return;
} }
#ifndef NO_LIMIT_FD_SETSIZE #ifdef FD_SETSIZE
if (s >= FD_SETSIZE) { if (s >= FD_SETSIZE) {
krb5_warnx(context, "socket FD too large"); krb5_warnx(context, "socket FD too large");
closesocket (s); rk_closesocket (s);
return; return;
} }
#endif #endif
@@ -880,6 +880,7 @@ loop(krb5_context context,
#ifndef NO_LIMIT_FD_SETSIZE #ifndef NO_LIMIT_FD_SETSIZE
if(max_fd < d[i].s) if(max_fd < d[i].s)
max_fd = d[i].s; max_fd = d[i].s;
#ifdef FD_SETSIZE
if (max_fd >= FD_SETSIZE) if (max_fd >= FD_SETSIZE)
krb5_errx(context, 1, "fd too large"); krb5_errx(context, 1, "fd too large");
#endif #endif
@@ -923,7 +924,7 @@ loop(krb5_context context,
} }
} }
if (0); if (0);
#ifndef NO_SIGXCPU #ifdef SIGXCPU
else if(exit_flag == SIGXCPU) else if(exit_flag == SIGXCPU)
kdc_log(context, config, 0, "CPU time limit exceeded"); kdc_log(context, config, 0, "CPU time limit exceeded");
#endif #endif

View File

@@ -50,7 +50,7 @@ struct getargs args[] = {
{ "database", 'd', arg_string, &database, "database", "file" }, { "database", 'd', arg_string, &database, "database", "file" },
{ "stdin", 'n', arg_flag, &from_stdin, "read from stdin" }, { "stdin", 'n', arg_flag, &from_stdin, "read from stdin" },
{ "print", 0, arg_flag, &print_dump, "print dump to stdout" }, { "print", 0, arg_flag, &print_dump, "print dump to stdout" },
#ifndef NO_INETD #ifdef SUPPORT_INETD
{ "inetd", 'i', arg_negative_flag, &inetd_flag, { "inetd", 'i', arg_negative_flag, &inetd_flag,
"Not started from inetd" }, "Not started from inetd" },
#endif #endif
@@ -79,7 +79,6 @@ main(int argc, char **argv)
krb5_authenticator authent; krb5_authenticator authent;
krb5_keytab keytab; krb5_keytab keytab;
krb5_socket_t sock = rk_INVALID_SOCKET; krb5_socket_t sock = rk_INVALID_SOCKET;
int close_socket = 0;
HDB *db = NULL; HDB *db = NULL;
int optidx = 0; int optidx = 0;
char *tmp_db; char *tmp_db;
@@ -130,24 +129,21 @@ main(int argc, char **argv)
char *server; char *server;
sock = STDIN_FILENO; sock = STDIN_FILENO;
#ifndef NO_INETD #ifdef SUPPORT_INETD
if (inetd_flag == -1) { if (inetd_flag == -1) {
if (getpeername (sock, sa, &sin_len) < 0) { if (getpeername (sock, sa, &sin_len) < 0) {
inetd_flag = 0; inetd_flag = 0;
close_socket = 0;
} else { } else {
inetd_flag = 1; inetd_flag = 1;
close_socket = 0;
} }
} }
if (!inetd_flag) { #else
inetd_flag = 0;
#endif #endif
if (!inetd_flag) {
mini_inetd (krb5_getportbyname (context, "hprop", "tcp", mini_inetd (krb5_getportbyname (context, "hprop", "tcp",
HPROP_PORT), &sock); HPROP_PORT), &sock);
close_socket = 1;
#ifndef NO_INETD
} }
#endif
sin_len = sizeof(ss); sin_len = sizeof(ss);
if(getpeername(sock, sa, &sin_len) < 0) if(getpeername(sock, sa, &sin_len) < 0)
krb5_err(context, 1, errno, "getpeername"); krb5_err(context, 1, errno, "getpeername");
@@ -281,8 +277,8 @@ main(int argc, char **argv)
if (!print_dump) if (!print_dump)
krb5_log(context, fac, 0, "Received %d principals", nprincs); krb5_log(context, fac, 0, "Received %d principals", nprincs);
if (close_socket) if (inetd_flag == 0)
closesocket(sock); rk_closesocket(sock);
exit(0); exit(0);
} }

View File

@@ -95,11 +95,11 @@ main(int argc, char **argv)
if (config->pkinit_kdc_anchors == NULL) if (config->pkinit_kdc_anchors == NULL)
krb5_errx(context, 1, "pkinit enabled but no X509 anchors"); krb5_errx(context, 1, "pkinit enabled but no X509 anchors");
_kdc_pk_initialize(context, config, krb5_kdc_pk_initialize(context, config,
config->pkinit_kdc_identity, config->pkinit_kdc_identity,
config->pkinit_kdc_anchors, config->pkinit_kdc_anchors,
config->pkinit_kdc_cert_pool, config->pkinit_kdc_cert_pool,
config->pkinit_kdc_revoke); config->pkinit_kdc_revoke);
} }

View File

@@ -122,18 +122,22 @@ main(int argc, char **argv)
sigaction(SIGINT, &sa, NULL); sigaction(SIGINT, &sa, NULL);
sigaction(SIGTERM, &sa, NULL); sigaction(SIGTERM, &sa, NULL);
#ifdef SIGXCPU
sigaction(SIGXCPU, &sa, NULL); sigaction(SIGXCPU, &sa, NULL);
#endif
sa.sa_handler = SIG_IGN; sa.sa_handler = SIG_IGN;
#ifdef SIGPIPE
sigaction(SIGPIPE, &sa, NULL); sigaction(SIGPIPE, &sa, NULL);
#endif
} }
#else #else
signal(SIGINT, sigterm); signal(SIGINT, sigterm);
signal(SIGTERM, sigterm); signal(SIGTERM, sigterm);
#ifndef NO_SIGXCPU #ifdef SIGXCPU
signal(SIGXCPU, sigterm); signal(SIGXCPU, sigterm);
#endif #endif
#ifndef NO_SIGPIPE #ifdef SIGPIPE
signal(SIGPIPE, SIG_IGN); signal(SIGPIPE, SIG_IGN);
#endif #endif
#endif #endif

View File

@@ -1945,12 +1945,12 @@ load_mappings(krb5_context context, const char *fn)
*/ */
krb5_error_code krb5_error_code
_kdc_pk_initialize(krb5_context context, krb5_kdc_pk_initialize(krb5_context context,
krb5_kdc_configuration *config, krb5_kdc_configuration *config,
const char *user_id, const char *user_id,
const char *anchors, const char *anchors,
char **pool, char **pool,
char **revoke_list) char **revoke_list)
{ {
const char *file; const char *file;
char *fn = NULL; char *fn = NULL;

View File

@@ -13,6 +13,7 @@ HEIMDAL_KDC_1.0 {
krb5_kdc_process_request; krb5_kdc_process_request;
krb5_kdc_save_request; krb5_kdc_save_request;
krb5_kdc_update_time; krb5_kdc_update_time;
krb5_kdc_pk_initialize;
local: local:
*; *;
}; };

View File

@@ -66,6 +66,8 @@ const int hdb_interface_version = HDB_INTERFACE_VERSION;
static struct hdb_method methods[] = { static struct hdb_method methods[] = {
#if HAVE_DB1 || HAVE_DB3 #if HAVE_DB1 || HAVE_DB3
{ HDB_INTERFACE_VERSION, "db:", hdb_db_create}, { HDB_INTERFACE_VERSION, "db:", hdb_db_create},
#endif
#if HAVE_DB1
{ HDB_INTERFACE_VERSION, "mit-db:", hdb_mdb_create}, { HDB_INTERFACE_VERSION, "mit-db:", hdb_mdb_create},
#endif #endif
#if HAVE_NDBM #if HAVE_NDBM

View File

@@ -1023,9 +1023,12 @@ certificate_is_self_signed(hx509_context context,
ret = _hx509_name_cmp(&cert->tbsCertificate.subject, ret = _hx509_name_cmp(&cert->tbsCertificate.subject,
&cert->tbsCertificate.issuer, &diff); &cert->tbsCertificate.issuer, &diff);
*self_signed = (diff == 0); *self_signed = (diff == 0);
if (ret) if (ret) {
hx509_set_error_string(context, 0, ret, hx509_set_error_string(context, 0, ret,
"Failed to check if self signed"); "Failed to check if self signed");
} else
ret = _hx509_self_signed_valid(context, &cert->signatureAlgorithm);
return ret; return ret;
} }

View File

@@ -87,8 +87,9 @@ struct signature_alg {
const heim_oid *key_oid; const heim_oid *key_oid;
const AlgorithmIdentifier *digest_alg; const AlgorithmIdentifier *digest_alg;
int flags; int flags;
#define PROVIDE_CONF 1 #define PROVIDE_CONF 0x1
#define REQUIRE_SIGNER 2 #define REQUIRE_SIGNER 0x2
#define SELF_SIGNED_OK 0x4
#define SIG_DIGEST 0x100 #define SIG_DIGEST 0x100
#define SIG_PUBLIC_SIG 0x200 #define SIG_PUBLIC_SIG 0x200
@@ -1200,7 +1201,7 @@ static const struct signature_alg ecdsa_with_sha256_alg = {
&_hx509_signature_ecdsa_with_sha256_data, &_hx509_signature_ecdsa_with_sha256_data,
&asn1_oid_id_ecPublicKey, &asn1_oid_id_ecPublicKey,
&_hx509_signature_sha256_data, &_hx509_signature_sha256_data,
PROVIDE_CONF|REQUIRE_SIGNER|RA_RSA_USES_DIGEST_INFO|SIG_PUBLIC_SIG, PROVIDE_CONF|REQUIRE_SIGNER|RA_RSA_USES_DIGEST_INFO|SIG_PUBLIC_SIG|SELF_SIGNED_OK,
0, 0,
NULL, NULL,
ecdsa_verify_signature, ecdsa_verify_signature,
@@ -1214,7 +1215,7 @@ static const struct signature_alg ecdsa_with_sha1_alg = {
&_hx509_signature_ecdsa_with_sha1_data, &_hx509_signature_ecdsa_with_sha1_data,
&asn1_oid_id_ecPublicKey, &asn1_oid_id_ecPublicKey,
&_hx509_signature_sha1_data, &_hx509_signature_sha1_data,
PROVIDE_CONF|REQUIRE_SIGNER|RA_RSA_USES_DIGEST_INFO|SIG_PUBLIC_SIG, PROVIDE_CONF|REQUIRE_SIGNER|RA_RSA_USES_DIGEST_INFO|SIG_PUBLIC_SIG|SELF_SIGNED_OK,
0, 0,
NULL, NULL,
ecdsa_verify_signature, ecdsa_verify_signature,
@@ -1243,7 +1244,7 @@ static const struct signature_alg pkcs1_rsa_sha1_alg = {
&_hx509_signature_rsa_with_sha1_data, &_hx509_signature_rsa_with_sha1_data,
&asn1_oid_id_pkcs1_rsaEncryption, &asn1_oid_id_pkcs1_rsaEncryption,
NULL, NULL,
PROVIDE_CONF|REQUIRE_SIGNER|RA_RSA_USES_DIGEST_INFO|SIG_PUBLIC_SIG, PROVIDE_CONF|REQUIRE_SIGNER|RA_RSA_USES_DIGEST_INFO|SIG_PUBLIC_SIG|SELF_SIGNED_OK,
0, 0,
NULL, NULL,
rsa_verify_signature, rsa_verify_signature,
@@ -1256,7 +1257,7 @@ static const struct signature_alg rsa_with_sha256_alg = {
&_hx509_signature_rsa_with_sha256_data, &_hx509_signature_rsa_with_sha256_data,
&asn1_oid_id_pkcs1_rsaEncryption, &asn1_oid_id_pkcs1_rsaEncryption,
&_hx509_signature_sha256_data, &_hx509_signature_sha256_data,
PROVIDE_CONF|REQUIRE_SIGNER|RA_RSA_USES_DIGEST_INFO|SIG_PUBLIC_SIG, PROVIDE_CONF|REQUIRE_SIGNER|RA_RSA_USES_DIGEST_INFO|SIG_PUBLIC_SIG|SELF_SIGNED_OK,
0, 0,
NULL, NULL,
rsa_verify_signature, rsa_verify_signature,
@@ -1269,7 +1270,7 @@ static const struct signature_alg rsa_with_sha1_alg = {
&_hx509_signature_rsa_with_sha1_data, &_hx509_signature_rsa_with_sha1_data,
&asn1_oid_id_pkcs1_rsaEncryption, &asn1_oid_id_pkcs1_rsaEncryption,
&_hx509_signature_sha1_data, &_hx509_signature_sha1_data,
PROVIDE_CONF|REQUIRE_SIGNER|RA_RSA_USES_DIGEST_INFO|SIG_PUBLIC_SIG, PROVIDE_CONF|REQUIRE_SIGNER|RA_RSA_USES_DIGEST_INFO|SIG_PUBLIC_SIG|SELF_SIGNED_OK,
0, 0,
NULL, NULL,
rsa_verify_signature, rsa_verify_signature,
@@ -1481,6 +1482,27 @@ _hx509_signature_best_before(hx509_context context,
return 0; return 0;
} }
int
_hx509_self_signed_valid(hx509_context context,
const AlgorithmIdentifier *alg)
{
const struct signature_alg *md;
md = find_sig_alg(&alg->algorithm);
if (md == NULL) {
hx509_clear_error_string(context);
return HX509_SIG_ALG_NO_SUPPORTED;
}
if ((md->flags & SELF_SIGNED_OK) == 0) {
hx509_set_error_string(context, 0, HX509_CRYPTO_ALGORITHM_BEST_BEFORE,
"Algorithm %s not trusted for self signatures",
md->name);
return HX509_CRYPTO_ALGORITHM_BEST_BEFORE;
}
return 0;
}
int int
_hx509_verify_signature(hx509_context context, _hx509_verify_signature(hx509_context context,
const hx509_cert cert, const hx509_cert cert,

View File

@@ -473,6 +473,21 @@ krb5_config_parse_file_multi (krb5_context context,
return ENOENT; return ENOENT;
#endif #endif
} else { } else {
#ifdef KRB5_USE_PATH_TOKENS
char * exp_fname = NULL;
ret = _krb5_expand_path_tokens(context, fname, &exp_fname);
if (ret) {
if (newfname)
free(newfname);
return ret;
}
if (newfname)
free(newfname);
fname = newfname = exp_fname;
#endif
f.f = fopen(fname, "r"); f.f = fopen(fname, "r");
f.s = NULL; f.s = NULL;
if(f.f == NULL) { if(f.f == NULL) {
@@ -493,46 +508,7 @@ krb5_config_parse_file_multi (krb5_context context,
free(newfname); free(newfname);
return ret; return ret;
} }
=======
#ifdef KRB5_USE_PATH_TOKENS
{
char * exp_fname = NULL;
ret = _krb5_expand_path_tokens(context, fname, &exp_fname);
if (ret) {
if (newfname)
free(newfname);
return ret;
}
if (newfname)
free(newfname);
fname = newfname = exp_fname;
} }
#endif
f.f = fopen(fname, "r");
f.s = NULL;
if(f.f == NULL) {
ret = errno;
krb5_set_error_message (context, ret, "open %s: %s",
fname, strerror(ret));
if (newfname)
free(newfname);
return ret;
}
ret = krb5_config_parse_debug (&f, res, &lineno, &str);
fclose(f.f);
if (ret) {
krb5_set_error_message (context, ret, "%s:%u: %s", fname, lineno, str);
if (newfname)
free(newfname);
return ret;
>>>>>>> Initial Windows port
}
if (newfname)
free(newfname);
return 0; return 0;
} }

View File

@@ -94,6 +94,7 @@ HEIMDAL_KRB5_2.0 {
krb5_cc_get_config; krb5_cc_get_config;
krb5_cc_get_friendly_name; krb5_cc_get_friendly_name;
krb5_cc_get_full_name; krb5_cc_get_full_name;
krb5_cc_get_kdc_offset;
krb5_cc_get_lifetime; krb5_cc_get_lifetime;
krb5_cc_get_name; krb5_cc_get_name;
krb5_cc_get_ops; krb5_cc_get_ops;
@@ -113,8 +114,10 @@ HEIMDAL_KRB5_2.0 {
krb5_cc_set_config; krb5_cc_set_config;
krb5_cc_set_default_name; krb5_cc_set_default_name;
krb5_cc_set_flags; krb5_cc_set_flags;
krb5_cc_set_kdc_offset;
krb5_cc_start_seq_get; krb5_cc_start_seq_get;
krb5_cc_store_cred; krb5_cc_store_cred;
krb5_cc_support_switch
krb5_cc_switch; krb5_cc_switch;
krb5_cc_set_friendly_name; krb5_cc_set_friendly_name;
krb5_change_password; krb5_change_password;

View File

@@ -36,7 +36,7 @@
#ifndef ROKEN_LIB_FUNCTION #ifndef ROKEN_LIB_FUNCTION
#ifdef _WIN32 #ifdef _WIN32
#define ROKEN_LIB_FUNCTION __declspec(dllimport) #define ROKEN_LIB_FUNCTION
#define ROKEN_LIB_CALL __stdcall #define ROKEN_LIB_CALL __stdcall
#else #else
#define ROKEN_LIB_FUNCTION #define ROKEN_LIB_FUNCTION

View File

@@ -40,11 +40,7 @@
#include <ifaddrs.h> #include <ifaddrs.h>
<<<<<<< HEAD
void
=======
static void static void
>>>>>>> master
print_addr(const char *s, struct sockaddr *sa) print_addr(const char *s, struct sockaddr *sa)
{ {
int i; int i;
@@ -59,11 +55,7 @@ print_addr(const char *s, struct sockaddr *sa)
printf("\n"); printf("\n");
} }
<<<<<<< HEAD
void
=======
static void static void
>>>>>>> master
print_ifaddrs(struct ifaddrs *x) print_ifaddrs(struct ifaddrs *x)
{ {
struct ifaddrs *p; struct ifaddrs *p;
@@ -87,11 +79,7 @@ main(int argc, char **argv)
struct ifaddrs *addrs = NULL; struct ifaddrs *addrs = NULL;
int ret; int ret;
<<<<<<< HEAD
if (SOCK_INIT)
=======
if (rk_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);

View File

@@ -37,9 +37,11 @@
#ifndef ROKEN_LIB_FUNCTION #ifndef ROKEN_LIB_FUNCTION
#ifdef _WIN32 #ifdef _WIN32
#define ROKEN_LIB_FUNCTION _stdcall #define ROKEN_LIB_FUNCTION
#define ROKEN_LIB_CALL _stdcall
#else #else
#define ROKEN_LIB_FUNCTION #define ROKEN_LIB_FUNCTION
#define ROKEN_LIB_CALL
#endif #endif
#endif #endif

View File

@@ -38,9 +38,11 @@
#ifndef ROKEN_LIB_FUNCTION #ifndef ROKEN_LIB_FUNCTION
#ifdef _WIN32 #ifdef _WIN32
#define ROKEN_LIB_FUNCTION _stdcall #define ROKEN_LIB_FUNCTION
#define ROKEN_LIB_CALL _stdcall
#else #else
#define ROKEN_LIB_FUNCTION #define ROKEN_LIB_FUNCTION
#define ROKEN_LIB_CALL
#endif #endif
#endif #endif

View File

@@ -114,25 +114,17 @@ 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]);
=======
rk_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]);
=======
rk_closesocket(fds[i]); rk_closesocket(fds[i]);
>>>>>>> master
fds[i] = rk_INVALID_SOCKET; fds[i] = rk_INVALID_SOCKET;
continue; continue;
} }
#ifndef NO_LIMIT_FD_SETSIZE #ifdef FD_SETSIZE
if (fds[i] >= FD_SETSIZE) if (fds[i] >= FD_SETSIZE)
errx (1, "fd too large"); errx (1, "fd too large");
#endif #endif
@@ -156,11 +148,7 @@ 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]);
=======
rk_closesocket(fds[i]); rk_closesocket(fds[i]);
>>>>>>> master
free(fds); free(fds);
return; return;
} }
@@ -185,11 +173,7 @@ 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;

View File

@@ -72,8 +72,8 @@ typedef SOCKET rk_socket_t;
#define EWOULDBLOCK WSAEWOULDBLOCK #define EWOULDBLOCK WSAEWOULDBLOCK
#define ENOTSOCK WSAENOTSOCK #define ENOTSOCK WSAENOTSOCK
#define rk_SOCK_INIT rk_WSAStartup() #define rk_SOCK_INIT() rk_WSAStartup()
#define rk_SOCK_EXIT rk_WSACleanup() #define rk_SOCK_EXIT() rk_WSACleanup()
ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL rk_WSAStartup(void); ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL rk_WSAStartup(void);
ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL rk_WSACleanup(void); ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL rk_WSACleanup(void);
@@ -89,13 +89,8 @@ 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_EXIT 0
=======
#define rk_SOCK_INIT() 0 #define rk_SOCK_INIT() 0
#define rk_SOCK_EXIT() 0 #define rk_SOCK_EXIT() 0
>>>>>>> master
#endif #endif
@@ -933,11 +928,7 @@ 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_t *); 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 *);

View File

@@ -87,11 +87,7 @@ 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);
=======
rk_closesocket(s); rk_closesocket(s);
>>>>>>> master
if (ai) if (ai)
freeaddrinfo(ai); freeaddrinfo(ai);
@@ -129,11 +125,7 @@ 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);
=======
rk_closesocket(s); rk_closesocket(s);
>>>>>>> master
return 1; return 1;
} }
@@ -141,41 +133,25 @@ 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);
=======
rk_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);
=======
rk_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);
=======
rk_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);
=======
rk_closesocket(s); rk_closesocket(s);
>>>>>>> master
return 0; return 0;
} }
@@ -222,11 +198,7 @@ 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);
=======
rk_closesocket(s); rk_closesocket(s);
>>>>>>> master
return 0; return 0;
} }
} }
@@ -236,11 +208,7 @@ test_simple_echo_socket(void)
strerror(rk_SOCK_ERRNO)); strerror(rk_SOCK_ERRNO));
} }
<<<<<<< HEAD
closesocket(s);
=======
rk_closesocket(s); rk_closesocket(s);
>>>>>>> master
} }
return 1; return 1;