+ } else if (strcmp (name, "D-agent-fd") == 0 && value) {
+ char d_agent[1025];
+ int fd = atoi(value);
+ int size;
+
+ if (AGENT_GIVEN(D_data_agent)) {
+ error_byebye ("more than one of -D or -D-agent-fd");
+ }
+
+ size = full_read(fd, d_agent, 1024);
+ d_agent[size] = '\0';
+ if (size > 0 && d_agent[size-1] == '\n')
+ d_agent[size-1] = '\0';
+ if (ndmagent_from_str (&D_data_agent, d_agent)) {
+ error_byebye ("bad -D-agent-fd argument");
+ }