|
@@ -42,6 +42,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
42
|
42
|
#include <ipxe/tcpip.h>
|
43
|
43
|
#include <ipxe/settings.h>
|
44
|
44
|
#include <ipxe/features.h>
|
|
45
|
+#include <ipxe/job.h>
|
45
|
46
|
#include <ipxe/dhcp.h>
|
46
|
47
|
#include <ipxe/dhcpv6.h>
|
47
|
48
|
#include <ipxe/dns.h>
|
|
@@ -867,6 +868,22 @@ static void dns_xfer_close ( struct dns_request *dns, int rc ) {
|
867
|
868
|
dns_done ( dns, rc );
|
868
|
869
|
}
|
869
|
870
|
|
|
871
|
+/**
|
|
872
|
+ * Report job progress
|
|
873
|
+ *
|
|
874
|
+ * @v dns DNS request
|
|
875
|
+ * @v progress Progress report to fill in
|
|
876
|
+ * @ret ongoing_rc Ongoing job status code (if known)
|
|
877
|
+ */
|
|
878
|
+static int dns_progress ( struct dns_request *dns,
|
|
879
|
+ struct job_progress *progress ) {
|
|
880
|
+
|
|
881
|
+ /* Show current question as progress message */
|
|
882
|
+ dns_decode ( &dns->name, progress->message,
|
|
883
|
+ sizeof ( progress->message ) );
|
|
884
|
+ return 0;
|
|
885
|
+}
|
|
886
|
+
|
870
|
887
|
/** DNS socket interface operations */
|
871
|
888
|
static struct interface_operation dns_socket_operations[] = {
|
872
|
889
|
INTF_OP ( xfer_deliver, struct dns_request *, dns_xfer_deliver ),
|
|
@@ -879,6 +896,7 @@ static struct interface_descriptor dns_socket_desc =
|
879
|
896
|
|
880
|
897
|
/** DNS resolver interface operations */
|
881
|
898
|
static struct interface_operation dns_resolv_op[] = {
|
|
899
|
+ INTF_OP ( job_progress, struct dns_request *, dns_progress ),
|
882
|
900
|
INTF_OP ( intf_close, struct dns_request *, dns_done ),
|
883
|
901
|
};
|
884
|
902
|
|