Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: WIZnetInterface/DNSClient/dnsname.h
- Revision:
- 0:b72d22e10709
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WIZnetInterface/DNSClient/dnsname.h Thu May 08 03:57:58 2014 +0000
@@ -0,0 +1,52 @@
+// dnsname.h 2013/8/27
+#pragma once
+//#include <string>
+#include "pico_string.h"
+class dnsname {
+public:
+ uint8_t *buf;
+ pico_string str;
+ dnsname(uint8_t *s) {
+ buf = s;
+ }
+ int decode(int pos) {
+ while(1) {
+ int len = buf[pos++];
+ if (len == 0x00) {
+ break;
+ }
+ if ((len&0xc0) == 0xc0) { //compress
+ int offset = (len&0x3f)<<8|buf[pos];
+ decode(offset);
+ return pos+1;
+ }
+ if (!str.empty()) {
+ str.append(".");
+ }
+ str.append((const char*)(buf+pos), len);
+ pos += len;
+ }
+ return pos;
+ }
+
+ int encode(int pos, char* s) {
+ while(*s) {
+ char *f = strchr(s, '.');
+ if (f == NULL) {
+ int len = strlen(s);
+ buf[pos++] = len;
+ memcpy(buf+pos, s, len);
+ pos += len;
+ break;
+ }
+ int len = f - s;
+ buf[pos++] = len;
+ memcpy(buf+pos, s, len);
+ s = f+1;
+ pos += len;
+ }
+ buf[pos++] = 0x00;
+ return pos;
+ }
+};
+