summaryrefslogtreecommitdiffstats
path: root/src/krb524/sendmsg.c
diff options
context:
space:
mode:
authorDanilo Almeida <dalmeida@mit.edu>2000-07-20 00:46:02 +0000
committerDanilo Almeida <dalmeida@mit.edu>2000-07-20 00:46:02 +0000
commitaaa76aad10fa3caac34fabf5231146a36d579471 (patch)
tree8d710bd96a98fc7607a5058bc95b8c5bb00c6654 /src/krb524/sendmsg.c
parent3e14565597763891f97322ff9d6843ab109cf830 (diff)
downloadkrb5-aaa76aad10fa3caac34fabf5231146a36d579471.tar.gz
krb5-aaa76aad10fa3caac34fabf5231146a36d579471.tar.xz
krb5-aaa76aad10fa3caac34fabf5231146a36d579471.zip
* Makefile.in: Make krb524 library and k524init program build on
Windows. * krb524.def, libinit.c: Files needed to build on Windows. * k524init.c: Use public krb_in_tkt() with realm paramter instead of potentially private in_tkt() w/o realm parameter (which does not even exist w/o the realm paramter in some krb4 libraries). Use krb_save_credentials() instead of tf_init() then tf_save_credentials() then tf_close(). * cnv_tkt_skey.c: Put copy of krb_cr_tkt_krb5() and krb_create_ticket() as static functions in this file, calling them krb524int_*(). Call these functions instead of the ones in the MIT krb4 library included in the krb5 tree. * conv_princ.c: Remove unused headers. * k524init.c, cnv_tkt_skey.c, conv_creds.c, encode.c, misc.c, sendmsg.c, test.c: Do not include Unix headers on Windows. * sendmsg.c (krb524_sendto_kdc): Fix call to krb5_locate_kdc() to use right number and types of parameters. Use krb5int_accessor() to get at internals: krb5_locate_kdc(), krb5_max_dgram_size, krb5_skdc_timeout_1, and krb5_skdc_timeout_shift. (The latter 3 should probably be #defines...) git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12569 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/krb524/sendmsg.c')
-rw-r--r--src/krb524/sendmsg.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/krb524/sendmsg.c b/src/krb524/sendmsg.c
index 77e8f3bf7..8170891b4 100644
--- a/src/krb524/sendmsg.c
+++ b/src/krb524/sendmsg.c
@@ -30,12 +30,14 @@
#define NEED_LOWLEVEL_IO
#include "k5-int.h"
+#ifndef _WIN32
#include <unistd.h>
+#include <sys/time.h>
+#endif
+
#include <stdlib.h>
#include <string.h>
-#include <sys/time.h>
-
#ifdef _AIX
#include <sys/select.h>
#endif
@@ -43,9 +45,6 @@
#include <krb.h>
#include "krb524.h"
-/* For krb5_locate_kdc() */
-#include <k5-int.h>
-
/*
* krb524_sendto_kdc:
*
@@ -61,11 +60,6 @@
* when finished.
*/
-extern int krb5_max_dgram_size;
-extern int krb5_max_skdc_timeout;
-extern int krb5_skdc_timeout_shift;
-extern int krb5_skdc_timeout_1;
-
krb5_error_code
krb524_sendto_kdc (context, message, realm, reply)
krb5_context context;
@@ -83,12 +77,15 @@ krb524_sendto_kdc (context, message, realm, reply)
fd_set readable;
struct timeval waitlen;
int cc;
+ krb5int_access internals;
+ if (retval = krb5int_accessor(&internals, KRB5INT_ACCESS_VERSION))
+ return retval;
/*
* find KDC location(s) for realm
*/
- if ((retval = krb5_locate_kdc(context, realm, &addr, &naddr, NULL, NULL)))
+ if ((retval = internals.krb5_locate_kdc(context, realm, &addr, &naddr, 0)))
return retval;
if (naddr == 0)
return KRB5_REALM_UNKNOWN;
@@ -111,12 +108,12 @@ krb524_sendto_kdc (context, message, realm, reply)
else
((struct sockaddr_in *)&addr[i])->sin_port = htons(KRB524_PORT);
- if (!(reply->data = malloc(krb5_max_dgram_size))) {
+ if (!(reply->data = malloc(internals.krb5_max_dgram_size))) {
free(addr);
free(socklist);
return ENOMEM;
}
- reply->length = krb5_max_dgram_size;
+ reply->length = internals.krb5_max_dgram_size;
#if 0
/*
@@ -137,8 +134,8 @@ krb524_sendto_kdc (context, message, realm, reply)
* do exponential backoff.
*/
- for (timeout = krb5_skdc_timeout_1; timeout < krb5_max_skdc_timeout;
- timeout <<= krb5_skdc_timeout_shift) {
+ for (timeout = internals.krb5_skdc_timeout_1; timeout < internals.krb5_max_skdc_timeout;
+ timeout <<= internals.krb5_skdc_timeout_shift) {
sent = 0;
for (host = 0; host < naddr; host++) {
/* send to the host, wait timeout seconds for a response,