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);