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.
WIZnetInterface/DNSClient/dnsname.h
- Committer:
- pratik_sheth_
- Date:
- 2019-01-23
- Revision:
- 9:ff1416913201
- Parent:
- 0:b72d22e10709
File content as of revision 9:ff1416913201:
// 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;
}
};