diff options
author | Stefan Metzmacher <metze@samba.org> | 2011-02-09 09:07:47 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2011-03-04 21:19:05 +0100 |
commit | e70b09e8f8f99b2d63047525f1d5e360582f7eaa (patch) | |
tree | 5aab72f3c40630f4896baaba81216f75ede6d51a /source4/kdc/kdc-glue.h | |
parent | ad9ac99afd04b1f69ca188eb0005a1226520bc7d (diff) | |
download | samba-e70b09e8f8f99b2d63047525f1d5e360582f7eaa.tar.gz samba-e70b09e8f8f99b2d63047525f1d5e360582f7eaa.tar.bz2 samba-e70b09e8f8f99b2d63047525f1d5e360582f7eaa.zip |
s4:kdc: split the kdc_udp_proxy() logic from the main kdc logic
By having kdc_udp_proxy_send/recv(), which just asks any writeable
dc for a reponse blob, we simplify the interaction between
client-local and local-writeable sockets.
This allows us to make kdc_udp_call and kdc_udp_socket private to
kdc.c again.
metze
Diffstat (limited to 'source4/kdc/kdc-glue.h')
-rw-r--r-- | source4/kdc/kdc-glue.h | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/source4/kdc/kdc-glue.h b/source4/kdc/kdc-glue.h index 75b6b988fe..f9489b1fd1 100644 --- a/source4/kdc/kdc-glue.h +++ b/source4/kdc/kdc-glue.h @@ -50,19 +50,6 @@ enum kdc_process_ret { KDC_PROCESS_FAILED, KDC_PROCESS_PROXY}; -struct kdc_udp_call { - struct tsocket_address *src; - DATA_BLOB in; - DATA_BLOB out; -}; - -/* hold information about one kdc/kpasswd udp socket */ -struct kdc_udp_socket { - struct kdc_socket *kdc_socket; - struct tdgram_context *dgram; - struct tevent_queue *send_queue; -}; - struct kdc_tcp_call { struct kdc_tcp_connection *kdc_conn; DATA_BLOB in; @@ -116,8 +103,14 @@ NTSTATUS hdb_samba4_create_kdc(struct samba_kdc_base_context *base_ctx, krb5_context context, struct HDB **db); /* from proxy.c */ -void kdc_udp_proxy(struct kdc_server *kdc, struct kdc_udp_socket *sock, - struct kdc_udp_call *call, uint16_t port); +struct tevent_req *kdc_udp_proxy_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct kdc_server *kdc, + uint16_t port, + DATA_BLOB in); +NTSTATUS kdc_udp_proxy_recv(struct tevent_req *req, + TALLOC_CTX *mem_ctx, + DATA_BLOB *out); void kdc_tcp_proxy(struct kdc_server *kdc, struct kdc_tcp_connection *kdc_conn, struct kdc_tcp_call *call, uint16_t port); |