summaryrefslogtreecommitdiff
path: root/source4/kdc/kdc-glue.h
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2011-02-09 12:17:23 +0100
committerStefan Metzmacher <metze@samba.org>2011-03-04 21:19:05 +0100
commit8002406c51cf1f9f6daebef7e03bfef77f56cf38 (patch)
tree90ddbb12c81a58a65b741d67935251fa43f7f98d /source4/kdc/kdc-glue.h
parente70b09e8f8f99b2d63047525f1d5e360582f7eaa (diff)
downloadsamba-8002406c51cf1f9f6daebef7e03bfef77f56cf38.tar.gz
samba-8002406c51cf1f9f6daebef7e03bfef77f56cf38.tar.bz2
samba-8002406c51cf1f9f6daebef7e03bfef77f56cf38.zip
s4:kdc: split the kdc_tcp_proxy() logic from the main kdc logic
By having kdc_tcp_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_socket, kdc_process_fn_t, kdc_tcp_call and kdc_tcp_socket private to kdc.c again. metze
Diffstat (limited to 'source4/kdc/kdc-glue.h')
-rw-r--r--source4/kdc/kdc-glue.h50
1 files changed, 8 insertions, 42 deletions
diff --git a/source4/kdc/kdc-glue.h b/source4/kdc/kdc-glue.h
index f9489b1fd1..b365cd75c6 100644
--- a/source4/kdc/kdc-glue.h
+++ b/source4/kdc/kdc-glue.h
@@ -50,46 +50,6 @@ enum kdc_process_ret {
KDC_PROCESS_FAILED,
KDC_PROCESS_PROXY};
-struct kdc_tcp_call {
- struct kdc_tcp_connection *kdc_conn;
- DATA_BLOB in;
- DATA_BLOB out;
- uint8_t out_hdr[4];
- struct iovec out_iov[2];
-};
-
-typedef enum kdc_process_ret (*kdc_process_fn_t)(struct kdc_server *kdc,
- TALLOC_CTX *mem_ctx,
- DATA_BLOB *input,
- DATA_BLOB *reply,
- struct tsocket_address *peer_addr,
- struct tsocket_address *my_addr,
- int datagram);
-
-
-/* hold information about one kdc socket */
-struct kdc_socket {
- struct kdc_server *kdc;
- struct tsocket_address *local_address;
- kdc_process_fn_t process;
-};
-
-/*
- state of an open tcp connection
-*/
-struct kdc_tcp_connection {
- /* stream connection we belong to */
- struct stream_connection *conn;
-
- /* the kdc_server the connection belongs to */
- struct kdc_socket *kdc_socket;
-
- struct tstream_context *tstream;
-
- struct tevent_queue *send_queue;
-};
-
-
enum kdc_process_ret kpasswdd_process(struct kdc_server *kdc,
TALLOC_CTX *mem_ctx,
DATA_BLOB *input,
@@ -112,7 +72,13 @@ 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);
+struct tevent_req *kdc_tcp_proxy_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct kdc_server *kdc,
+ uint16_t port,
+ DATA_BLOB in);
+NTSTATUS kdc_tcp_proxy_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ DATA_BLOB *out);
#endif