smb_krb5 80 source4/auth/kerberos/krb5_init_context.c static void smb_krb5_socket_recv(struct smb_krb5_socket *smb_krb5) smb_krb5 82 source4/auth/kerberos/krb5_init_context.c TALLOC_CTX *tmp_ctx = talloc_new(smb_krb5); smb_krb5 86 source4/auth/kerberos/krb5_init_context.c smb_krb5->status = socket_pending(smb_krb5->sock, &dsize); smb_krb5 87 source4/auth/kerberos/krb5_init_context.c if (!NT_STATUS_IS_OK(smb_krb5->status)) { smb_krb5 94 source4/auth/kerberos/krb5_init_context.c smb_krb5->status = NT_STATUS_NO_MEMORY; smb_krb5 99 source4/auth/kerberos/krb5_init_context.c smb_krb5->status = socket_recv(smb_krb5->sock, blob.data, blob.length, &nread); smb_krb5 100 source4/auth/kerberos/krb5_init_context.c if (!NT_STATUS_IS_OK(smb_krb5->status)) { smb_krb5 107 source4/auth/kerberos/krb5_init_context.c smb_krb5->status = NT_STATUS_UNEXPECTED_NETWORK_ERROR; smb_krb5 115 source4/auth/kerberos/krb5_init_context.c talloc_steal(smb_krb5, blob.data); smb_krb5 116 source4/auth/kerberos/krb5_init_context.c smb_krb5->reply = blob; smb_krb5 122 source4/auth/kerberos/krb5_init_context.c struct smb_krb5_socket *smb_krb5 = talloc_get_type(private_data, struct smb_krb5_socket); smb_krb5 123 source4/auth/kerberos/krb5_init_context.c talloc_steal(smb_krb5, data.data); smb_krb5 124 source4/auth/kerberos/krb5_init_context.c smb_krb5->reply = data; smb_krb5 125 source4/auth/kerberos/krb5_init_context.c smb_krb5->reply.length -= 4; smb_krb5 126 source4/auth/kerberos/krb5_init_context.c smb_krb5->reply.data += 4; smb_krb5 137 source4/auth/kerberos/krb5_init_context.c struct smb_krb5_socket *smb_krb5 = talloc_get_type(private_data, struct smb_krb5_socket); smb_krb5 139 source4/auth/kerberos/krb5_init_context.c smb_krb5->status = NT_STATUS_IO_TIMEOUT; smb_krb5 144 source4/auth/kerberos/krb5_init_context.c struct smb_krb5_socket *smb_krb5 = talloc_get_type(private_data, struct smb_krb5_socket); smb_krb5 145 source4/auth/kerberos/krb5_init_context.c smb_krb5->status = status; smb_krb5 151 source4/auth/kerberos/krb5_init_context.c static void smb_krb5_socket_send(struct smb_krb5_socket *smb_krb5) smb_krb5 157 source4/auth/kerberos/krb5_init_context.c len = smb_krb5->request.length; smb_krb5 158 source4/auth/kerberos/krb5_init_context.c status = socket_send(smb_krb5->sock, &smb_krb5->request, &len); smb_krb5 162 source4/auth/kerberos/krb5_init_context.c TEVENT_FD_READABLE(smb_krb5->fde); smb_krb5 164 source4/auth/kerberos/krb5_init_context.c TEVENT_FD_NOT_WRITEABLE(smb_krb5->fde); smb_krb5 175 source4/auth/kerberos/krb5_init_context.c struct smb_krb5_socket *smb_krb5 = talloc_get_type(private_data, struct smb_krb5_socket); smb_krb5 176 source4/auth/kerberos/krb5_init_context.c switch (smb_krb5->hi->proto) { smb_krb5 179 source4/auth/kerberos/krb5_init_context.c smb_krb5_socket_recv(smb_krb5); smb_krb5 183 source4/auth/kerberos/krb5_init_context.c smb_krb5_socket_send(smb_krb5); smb_krb5 190 source4/auth/kerberos/krb5_init_context.c packet_recv(smb_krb5->packet); smb_krb5 194 source4/auth/kerberos/krb5_init_context.c packet_queue_run(smb_krb5->packet); smb_krb5 218 source4/auth/kerberos/krb5_init_context.c struct smb_krb5_socket *smb_krb5; smb_krb5 230 source4/auth/kerberos/krb5_init_context.c smb_krb5 = talloc(NULL, struct smb_krb5_socket); smb_krb5 231 source4/auth/kerberos/krb5_init_context.c if (!smb_krb5) { smb_krb5 234 source4/auth/kerberos/krb5_init_context.c smb_krb5->hi = hi; smb_krb5 246 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 253 source4/auth/kerberos/krb5_init_context.c status = socket_create(name, SOCKET_TYPE_DGRAM, &smb_krb5->sock, 0); smb_krb5 256 source4/auth/kerberos/krb5_init_context.c status = socket_create(name, SOCKET_TYPE_STREAM, &smb_krb5->sock, 0); smb_krb5 259 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 263 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 267 source4/auth/kerberos/krb5_init_context.c talloc_steal(smb_krb5, smb_krb5->sock); smb_krb5 269 source4/auth/kerberos/krb5_init_context.c remote_addr = socket_address_from_sockaddr(smb_krb5, a->ai_addr, a->ai_addrlen); smb_krb5 271 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 275 source4/auth/kerberos/krb5_init_context.c status = socket_connect_ev(smb_krb5->sock, NULL, remote_addr, 0, ev); smb_krb5 277 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 287 source4/auth/kerberos/krb5_init_context.c smb_krb5->fde = tevent_add_fd(ev, smb_krb5->sock, smb_krb5 288 source4/auth/kerberos/krb5_init_context.c socket_get_fd(smb_krb5->sock), smb_krb5 290 source4/auth/kerberos/krb5_init_context.c smb_krb5_socket_handler, smb_krb5); smb_krb5 292 source4/auth/kerberos/krb5_init_context.c tevent_fd_set_close_fn(smb_krb5->fde, socket_tevent_fd_close_fn); smb_krb5 293 source4/auth/kerberos/krb5_init_context.c socket_set_flags(smb_krb5->sock, SOCKET_FLAG_NOCLOSE); smb_krb5 295 source4/auth/kerberos/krb5_init_context.c tevent_add_timer(ev, smb_krb5, smb_krb5 297 source4/auth/kerberos/krb5_init_context.c smb_krb5_request_timeout, smb_krb5); smb_krb5 299 source4/auth/kerberos/krb5_init_context.c smb_krb5->status = NT_STATUS_OK; smb_krb5 300 source4/auth/kerberos/krb5_init_context.c smb_krb5->reply = data_blob(NULL, 0); smb_krb5 304 source4/auth/kerberos/krb5_init_context.c TEVENT_FD_WRITEABLE(smb_krb5->fde); smb_krb5 305 source4/auth/kerberos/krb5_init_context.c smb_krb5->request = send_blob; smb_krb5 309 source4/auth/kerberos/krb5_init_context.c smb_krb5->packet = packet_init(smb_krb5); smb_krb5 310 source4/auth/kerberos/krb5_init_context.c if (smb_krb5->packet == NULL) { smb_krb5 311 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 314 source4/auth/kerberos/krb5_init_context.c packet_set_private(smb_krb5->packet, smb_krb5); smb_krb5 315 source4/auth/kerberos/krb5_init_context.c packet_set_socket(smb_krb5->packet, smb_krb5->sock); smb_krb5 316 source4/auth/kerberos/krb5_init_context.c packet_set_callback(smb_krb5->packet, smb_krb5_full_packet); smb_krb5 317 source4/auth/kerberos/krb5_init_context.c packet_set_full_request(smb_krb5->packet, packet_full_request_u32); smb_krb5 318 source4/auth/kerberos/krb5_init_context.c packet_set_error_handler(smb_krb5->packet, smb_krb5_error_handler); smb_krb5 319 source4/auth/kerberos/krb5_init_context.c packet_set_event_context(smb_krb5->packet, ev); smb_krb5 320 source4/auth/kerberos/krb5_init_context.c packet_set_fde(smb_krb5->packet, smb_krb5->fde); smb_krb5 322 source4/auth/kerberos/krb5_init_context.c smb_krb5->request = data_blob_talloc(smb_krb5, NULL, send_blob.length + 4); smb_krb5 323 source4/auth/kerberos/krb5_init_context.c RSIVAL(smb_krb5->request.data, 0, send_blob.length); smb_krb5 324 source4/auth/kerberos/krb5_init_context.c memcpy(smb_krb5->request.data+4, send_blob.data, send_blob.length); smb_krb5 325 source4/auth/kerberos/krb5_init_context.c packet_send(smb_krb5->packet, smb_krb5->request); smb_krb5 328 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 331 source4/auth/kerberos/krb5_init_context.c while ((NT_STATUS_IS_OK(smb_krb5->status)) && !smb_krb5->reply.length) { smb_krb5 333 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 337 source4/auth/kerberos/krb5_init_context.c if (NT_STATUS_EQUAL(smb_krb5->status, NT_STATUS_IO_TIMEOUT)) { smb_krb5 338 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 342 source4/auth/kerberos/krb5_init_context.c if (!NT_STATUS_IS_OK(smb_krb5->status)) { smb_krb5 343 source4/auth/kerberos/krb5_init_context.c DEBUG(2,("Error reading smb_krb5 reply packet: %s\n", nt_errstr(smb_krb5->status))); smb_krb5 344 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 348 source4/auth/kerberos/krb5_init_context.c ret = krb5_data_copy(recv_buf, smb_krb5->reply.data, smb_krb5->reply.length); smb_krb5 350 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5); smb_krb5 353 source4/auth/kerberos/krb5_init_context.c talloc_free(smb_krb5);