/** * Child resolved name * * @v mux Name resolution multiplexer * @v sa Completed socket address */ static void resmux_child_resolv_done ( struct resolv_mux *mux, struct sockaddr *sa ) { DBGC ( mux, "RESOLV %p resolved \"%s\" to %s using method %s\n", mux, mux->name, sock_ntoa ( sa ), mux->resolver->name ); /* Pass resolution to parent */ resolv_done ( &mux->parent, sa ); }
/** * Mark DNS request as complete * * @v dns DNS request * @v rc Return status code */ static void dns_done ( struct dns_request *dns, int rc ) { /* Stop the retry timer */ stop_timer ( &dns->timer ); /* Close data transfer interface */ xfer_nullify ( &dns->socket ); xfer_close ( &dns->socket, rc ); /* Mark name resolution as complete */ resolv_done ( &dns->resolv, &dns->sa, rc ); }
static void numeric_step ( struct numeric_resolv *numeric ) { if ( numeric->rc == 0 ) resolv_done ( &numeric->resolv, &numeric->sa ); intf_shutdown ( &numeric->resolv, numeric->rc ); }