X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Futil.c;h=21ef94c4f405ae0639f44d08d58784be0e08380c;hb=9c0f9c65093cfa53d45f9b68782321eb8063a032;hp=514f0d9a07f3de6cedf80a2cf652c5e4dfdeac61;hpb=5ebf655c85076f200955458673a8bbf0dd927407;p=catta diff --git a/avahi-core/util.c b/avahi-core/util.c index 514f0d9..21ef94c 100644 --- a/avahi-core/util.c +++ b/avahi-core/util.c @@ -1,18 +1,16 @@ -/* $Id$ */ - /*** This file is part of avahi. - + avahi is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + avahi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with avahi; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 @@ -27,21 +25,21 @@ #include #include #include +#include -#include - +#include #include "util.h" void avahi_hexdump(const void* p, size_t size) { const uint8_t *c = p; assert(p); - printf("Dumping %u bytes from %p:\n", size, p); - + printf("Dumping %lu bytes from %p:\n", (unsigned long) size, p); + while (size > 0) { unsigned i; - for (i = 0; i < 16; i++) { + for (i = 0; i < 16; i++) { if (i < size) printf("%02x ", c[i]); else @@ -54,40 +52,69 @@ void avahi_hexdump(const void* p, size_t size) { else printf(" "); } - + printf("\n"); c += 16; if (size <= 16) break; - + size -= 16; } } - -char *avahi_format_mac_address(const uint8_t* mac, size_t size) { - char *r, *t; +char *avahi_format_mac_address(char *r, size_t l, const uint8_t* mac, size_t size) { + char *t = r; unsigned i; static const char hex[] = "0123456789abcdef"; - t = r = g_new(char, size > 0 ? size*3 : 1); + assert(r); + assert(l > 0); + assert(mac); if (size <= 0) { *r = 0; return r; } - + for (i = 0; i < size; i++) { + if (l < 3) + break; + *(t++) = hex[*mac >> 4]; *(t++) = hex[*mac & 0xF]; *(t++) = ':'; + l -= 3; + mac++; } - *(--t) = 0; + if (t > r) + *(t-1) = 0; + else + *r = 0; + return r; } +char *avahi_strup(char *s) { + char *c; + assert(s); + + for (c = s; *c; c++) + *c = (char) toupper(*c); + + return s; +} + +char *avahi_strdown(char *s) { + char *c; + assert(s); + + for (c = s; *c; c++) + *c = (char) tolower(*c); + + return s; +}