aboutsummaryrefslogtreecommitdiff
path: root/src/dns/gnunet-dns-monitor.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-01-04 15:17:53 +0000
committerChristian Grothoff <christian@grothoff.org>2012-01-04 15:17:53 +0000
commitc217aa8750bebf75b4a4a0d020cc516e8efad7be (patch)
tree6147622e7fb3e893e9a4c3d4910a61d0c96f06d5 /src/dns/gnunet-dns-monitor.c
parentc8fe500945cd968e37f2e6c462689e0ada061bce (diff)
downloadgnunet-c217aa8750bebf75b4a4a0d020cc516e8efad7be.tar.gz
gnunet-c217aa8750bebf75b4a4a0d020cc516e8efad7be.zip
-dns parser works now well-enough
Diffstat (limited to 'src/dns/gnunet-dns-monitor.c')
-rw-r--r--src/dns/gnunet-dns-monitor.c49
1 files changed, 43 insertions, 6 deletions
diff --git a/src/dns/gnunet-dns-monitor.c b/src/dns/gnunet-dns-monitor.c
index c8fb646e5..96d2a4959 100644
--- a/src/dns/gnunet-dns-monitor.c
+++ b/src/dns/gnunet-dns-monitor.c
@@ -70,8 +70,6 @@ get_type (uint16_t type)
70 case GNUNET_DNSPARSER_TYPE_MX: return "MX"; 70 case GNUNET_DNSPARSER_TYPE_MX: return "MX";
71 case GNUNET_DNSPARSER_TYPE_TXT: return "TXT"; 71 case GNUNET_DNSPARSER_TYPE_TXT: return "TXT";
72 case GNUNET_DNSPARSER_TYPE_AAAA: return "AAAA"; 72 case GNUNET_DNSPARSER_TYPE_AAAA: return "AAAA";
73 case GNUNET_DNSPARSER_TYPE_IXFR: return "IXFR";
74 case GNUNET_DNSPARSER_TYPE_AXFR: return "AXFR";
75 } 73 }
76 GNUNET_snprintf (buf, sizeof (buf), "%u", (unsigned int) type); 74 GNUNET_snprintf (buf, sizeof (buf), "%u", (unsigned int) type);
77 return buf; 75 return buf;
@@ -134,16 +132,55 @@ display_record (const struct GNUNET_DNSPARSER_Record *record)
134 if (record->data_len != sizeof (struct in_addr)) 132 if (record->data_len != sizeof (struct in_addr))
135 format = "<invalid>"; 133 format = "<invalid>";
136 else 134 else
137 format = inet_ntop (AF_INET, record->data, buf, sizeof (buf)); 135 format = inet_ntop (AF_INET, record->data.raw, buf, sizeof (buf));
138 break; 136 break;
139 case GNUNET_DNSPARSER_TYPE_AAAA: 137 case GNUNET_DNSPARSER_TYPE_AAAA:
140 if (record->data_len != sizeof (struct in6_addr)) 138 if (record->data_len != sizeof (struct in6_addr))
141 format = "<invalid>"; 139 format = "<invalid>";
142 else 140 else
143 format = inet_ntop (AF_INET6, record->data, buf, sizeof (buf)); 141 format = inet_ntop (AF_INET6, record->data.raw, buf, sizeof (buf));
144 break; 142 break;
143 case GNUNET_DNSPARSER_TYPE_NS:
145 case GNUNET_DNSPARSER_TYPE_CNAME: 144 case GNUNET_DNSPARSER_TYPE_CNAME:
146 tmp = GNUNET_strdup ("FIXME"); 145 case GNUNET_DNSPARSER_TYPE_PTR:
146 format = record->data.hostname;
147 break;
148 case GNUNET_DNSPARSER_TYPE_SOA:
149 if (record->data.soa == NULL)
150 format = "<invalid>";
151 else
152 {
153 GNUNET_asprintf (&tmp,
154 "origin: %s, mail: %s, serial = %u, refresh = %u s, retry = %u s, expire = %u s, minimum = %u s",
155 record->data.soa->mname,
156 record->data.soa->rname,
157 (unsigned int) record->data.soa->serial,
158 (unsigned int) record->data.soa->refresh,
159 (unsigned int) record->data.soa->retry,
160 (unsigned int) record->data.soa->expire,
161 (unsigned int) record->data.soa->minimum_ttl);
162 format = tmp;
163 }
164 break;
165 case GNUNET_DNSPARSER_TYPE_MX:
166 if (record->data.mx == NULL)
167 format = "<invalid>";
168 else
169 {
170 GNUNET_asprintf (&tmp,
171 "%u: %s",
172 record->data.mx->preference,
173 record->data.mx->mxhost);
174 format = tmp;
175 }
176 break;
177 case GNUNET_DNSPARSER_TYPE_TXT:
178 GNUNET_asprintf (&tmp,
179 "%.*s",
180 (unsigned int) record->data_len,
181 record->data.raw);
182 format = tmp;
183 break;
147 default: 184 default:
148 format = "<payload>"; 185 format = "<payload>";
149 break; 186 break;
@@ -215,7 +252,7 @@ display_request (void *cls,
215 return; 252 return;
216 } 253 }
217 fprintf (stdout, 254 fprintf (stdout,
218 "%s with ID: %5u Flags: %s%s%s%s%s%s Return Code: %s Opcode: %s\n", 255 "%s with ID: %5u Flags: %s%s%s%s%s%s, Return Code: %s, Opcode: %s\n",
219 p->flags.query_or_response ? "Response" : "Query", 256 p->flags.query_or_response ? "Response" : "Query",
220 p->id, 257 p->id,
221 p->flags.recursion_desired ? "RD " : "", 258 p->flags.recursion_desired ? "RD " : "",