OpenSDE Packages Database (without history before r20070)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.8 KiB

  1. # --- T2-COPYRIGHT-NOTE-BEGIN ---
  2. # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
  3. #
  4. # T2 SDE: package/.../dietlibc/ether_aton.patch
  5. # Copyright (C) 2006 The T2 SDE Project
  6. #
  7. # More information can be found in the files COPYING and README.
  8. #
  9. # This patch file is dual-licensed. It is available under the license the
  10. # patched project is licensed under, as long as it is an OpenSource license
  11. # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
  12. # of the GNU General Public License as published by the Free Software
  13. # Foundation; either version 2 of the License, or (at your option) any later
  14. # version.
  15. # --- T2-COPYRIGHT-NOTE-END ---
  16. Copy from glibc, needed for udhcpd.
  17. - Rene Rebe <rene@exactcode.de>
  18. --- /dev/null 2006-01-02 14:13:10.967999000 +0100
  19. +++ diet/libugly/ether_aton.c 2006-01-02 21:37:51.000000000 +0100
  20. @@ -0,0 +1,69 @@
  21. +/* Copyright (C) 1996,97,98,99,2002 Free Software Foundation, Inc.
  22. + This file is part of the GNU C Library.
  23. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
  24. +
  25. + The GNU C Library is free software; you can redistribute it and/or
  26. + modify it under the terms of the GNU Lesser General Public
  27. + License as published by the Free Software Foundation; either
  28. + version 2.1 of the License, or (at your option) any later version.
  29. +
  30. + The GNU C Library is distributed in the hope that it will be useful,
  31. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  32. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  33. + Lesser General Public License for more details.
  34. +
  35. + You should have received a copy of the GNU Lesser General Public
  36. + License along with the GNU C Library; if not, write to the Free
  37. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38. + 02111-1307 USA. */
  39. +
  40. +#include <ctype.h>
  41. +#include <stdlib.h>
  42. +#include <net/ethernet.h>
  43. +
  44. +struct ether_addr *
  45. +ether_aton_r (const char *asc, struct ether_addr *addr)
  46. +{
  47. + size_t cnt;
  48. +
  49. + for (cnt = 0; cnt < 6; ++cnt)
  50. + {
  51. + unsigned int number;
  52. + char ch;
  53. +
  54. + ch = tolower (*asc++);
  55. + if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
  56. + return NULL;
  57. + number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
  58. +
  59. + ch = tolower (*asc);
  60. + if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch)))
  61. + {
  62. + ++asc;
  63. + if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
  64. + return NULL;
  65. + number <<= 4;
  66. + number += isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
  67. +
  68. + ch = *asc;
  69. + if (cnt < 5 && ch != ':')
  70. + return NULL;
  71. + }
  72. +
  73. + /* Store result. */
  74. + addr->ether_addr_octet[cnt] = (unsigned char) number;
  75. +
  76. + /* Skip ':'. */
  77. + ++asc;
  78. + }
  79. +
  80. + return addr;
  81. +}
  82. +
  83. +struct ether_addr *
  84. +ether_aton (const char *asc)
  85. +{
  86. + static struct ether_addr result;
  87. +
  88. + return ether_aton_r (asc, &result);
  89. +}