summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/os/sendto_kdc.c
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2002-12-07 04:14:07 +0000
committerTom Yu <tlyu@mit.edu>2002-12-07 04:14:07 +0000
commit65184d3858714e1a326f18053f6509050b069518 (patch)
tree63514ec49b25e5c6a16a515b2126631ef3f4cd74 /src/lib/krb5/os/sendto_kdc.c
parent34da169bae1a1ae416c73a6318298ffc30c65ebb (diff)
downloadkrb5-65184d3858714e1a326f18053f6509050b069518.tar.gz
krb5-65184d3858714e1a326f18053f6509050b069518.tar.xz
krb5-65184d3858714e1a326f18053f6509050b069518.zip
Fix some KRB5_CALLCONV botches that were causing trouble for Windows build
Update send_to_kdc() to use various krb5 internals to talk to the krb4 KDC. Add a new internal function to optionally return the local address used to talk to the KDC. Many changes to lib/krb5/os to support this. Fix bug in krb5int_sendto() that prevented correct UDP length from being returned. Update callers of internal locate_* and sendto_* functions. ticket: 1189 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15038 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/os/sendto_kdc.c')
-rw-r--r--src/lib/krb5/os/sendto_kdc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/krb5/os/sendto_kdc.c b/src/lib/krb5/os/sendto_kdc.c
index 687f4e079..300e9777e 100644
--- a/src/lib/krb5/os/sendto_kdc.c
+++ b/src/lib/krb5/os/sendto_kdc.c
@@ -308,12 +308,12 @@ krb5_sendto_kdc (krb5_context context, const krb5_data *message,
else
socktype1 = SOCK_STREAM, socktype2 = SOCK_DGRAM;
- retval = krb5_locate_kdc(context, realm, &addrs, use_master, socktype1);
+ retval = krb5_locate_kdc(context, realm, &addrs, use_master, socktype1, 0);
if (socktype2) {
struct addrlist addrs2;
retval = krb5_locate_kdc(context, realm, &addrs2, use_master,
- socktype2);
+ socktype2, 0);
if (retval == 0) {
(void) merge_addrlists(&addrs, &addrs2);
krb5int_free_addrlist(&addrs2);
@@ -1061,7 +1061,8 @@ krb5int_sendto (krb5_context context, const krb5_data *message,
}
/* Success! */
reply->data = conns[winning_conn].x.in.buf;
- reply->length = conns[winning_conn].x.in.bufsize;
+ reply->length = (conns[winning_conn].x.in.pos
+ - conns[winning_conn].x.in.buf);
dprint("returning %d bytes in buffer %p\n",
(int) reply->length, reply->data);
retval = 0;