4 This file is part of avahi.
6 avahi is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as
8 published by the Free Software Foundation; either version 2.1 of the
9 License, or (at your option) any later version.
11 avahi is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
14 Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with avahi; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
26 #include <sys/types.h>
32 static void hexdump(const void* p, size_t size) {
36 printf("Dumping %u bytes from %p:\n", size, p);
41 for (i = 0; i < 16; i++) {
43 printf("%02x ", c[i]);
48 for (i = 0; i < 16; i++) {
50 printf("%c", c[i] >= 32 && c[i] < 127 ? c[i] : '.');
67 int main(int argc, char *argv[]) {
74 TXTRecordCreate(&ref, 0, NULL);
76 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
78 TXTRecordSetValue(&ref, "foo", 7, "lennart");
79 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
81 TXTRecordSetValue(&ref, "waldo", 5, "rocks");
82 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
84 TXTRecordSetValue(&ref, "quux", 9, "the_house");
85 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
87 TXTRecordSetValue(&ref, "yeah", 0, NULL);
88 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
90 TXTRecordSetValue(&ref, "waldo", 6, "rocked");
91 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
93 TXTRecordRemoveValue(&ref, "foo");
94 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
96 TXTRecordRemoveValue(&ref, "waldo");
97 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
99 TXTRecordSetValue(&ref, "kawumm", 6, "bloerb");
100 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
102 TXTRecordSetValue(&ref, "one", 1, "1");
103 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
105 TXTRecordSetValue(&ref, "two", 1, "2");
106 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
108 TXTRecordSetValue(&ref, "three", 1, "3");
109 hexdump(TXTRecordGetBytesPtr(&ref), TXTRecordGetLength(&ref));
111 assert(TXTRecordContainsKey(TXTRecordGetLength(&ref), TXTRecordGetBytesPtr(&ref), "two"));
112 assert(!TXTRecordContainsKey(TXTRecordGetLength(&ref), TXTRecordGetBytesPtr(&ref), "four"));
114 r = TXTRecordGetValuePtr(TXTRecordGetLength(&ref), TXTRecordGetBytesPtr(&ref), "kawumm", &l);
118 assert(TXTRecordGetCount(TXTRecordGetLength(&ref), TXTRecordGetBytesPtr(&ref)) == 6);
120 TXTRecordGetItemAtIndex(TXTRecordGetLength(&ref), TXTRecordGetBytesPtr(&ref), 2, sizeof(k), k, &l, &p);
122 fprintf(stderr, "key=<%s>\n", k);
126 assert(TXTRecordGetItemAtIndex(TXTRecordGetLength(&ref), TXTRecordGetBytesPtr(&ref), 20, sizeof(k), k, &l, &p) == kDNSServiceErr_Invalid);
128 TXTRecordDeallocate(&ref);