diff options
author | Tom Yu <tlyu@mit.edu> | 2002-12-07 04:14:07 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2002-12-07 04:14:07 +0000 |
commit | 65184d3858714e1a326f18053f6509050b069518 (patch) | |
tree | 63514ec49b25e5c6a16a515b2126631ef3f4cd74 /src/lib/krb5/os/sendto_kdc.c | |
parent | 34da169bae1a1ae416c73a6318298ffc30c65ebb (diff) | |
download | krb5-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.c | 7 |
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; |