home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / share / YaST2 / modules / Address.ycp < prev    next >
Text File  |  2006-11-29  |  2KB  |  88 lines

  1. /**
  2.  * File:    modules/Address.ycp
  3.  * Package:    yast2
  4.  * Summary:    Address manipulation routines
  5.  * Authors:    Michal Svec <msvec@suse.cz>
  6.  * Flags:    Stable
  7.  *
  8.  * $Id: Address.ycp 33224 2006-10-02 14:17:13Z jsrain $
  9.  *
  10.  * Address is a hostname (either FQ or simple, or IP address)
  11.  */
  12.  
  13. {
  14.  
  15. module "Address";
  16. textdomain "base";
  17.  
  18. import "Hostname";
  19. import "IP";
  20.  
  21. global string ValidChars = Hostname::ValidChars+IP::ValidChars;
  22. global string ValidChars4 = Hostname::ValidChars+IP::ValidChars4;
  23. global string ValidChars6 = Hostname::ValidChars+IP::ValidChars6;
  24. global string ValidCharsMAC = "0123456789abcdefABCDEF:";
  25.  
  26. /**
  27.  * Return a description of a valid address (ip4 or name)
  28.  * @return description
  29.  */
  30. global define string Valid4() ``{
  31.     return IP::Valid4() + "\n" + Hostname::ValidFQ();
  32. }
  33.  
  34. /**
  35.  * Check syntax of a network address (ip4 or name)
  36.  * @param address an address
  37.  * @return true if correct
  38.  */
  39. global define boolean Check4(string address) ``{
  40.     return IP::Check4(address) || Hostname::CheckFQ(address);
  41. }
  42.  
  43. /**
  44.  * Check syntax of a network address (ip6 or name)
  45.  * @param address an address
  46.  * @return true if correct
  47.  */
  48. global define boolean Check6(string address) ``{
  49.     return IP::Check6(address) || Hostname::CheckFQ(address);
  50. }
  51.  
  52. /**
  53.  * Check syntax of a network address (IP address or hostname)
  54.  * @param address an address
  55.  * @return true if correct
  56.  */
  57. global define boolean Check(string address) ``{
  58.     return Check4(address) || Check6(address);
  59. }
  60.  
  61. /**
  62.  * Describe a valid MAC address
  63.  * @return string description of a valid MAC address
  64.  */
  65. global define string ValidMAC() ``{
  66.     //describe valid MAC address
  67.     return _("A valid MAC address consists of six pairs of hexadecimal
  68. digits separated by colons.");
  69. }
  70.  
  71. /**
  72.  * Check syntax of MAC address
  73.  * @param address MAC address
  74.  * @return true if correct
  75.  */
  76. global define boolean CheckMAC(string address) ``{
  77.     if (address == nil || address == "")
  78.         return false;
  79.  
  80.     string regexp = "[0-9a-fA-F]{2,2}";
  81.      regexp = sformat ("(%1:){5,5}%1", regexp);
  82.  
  83.     return regexpmatch(address, regexp);
  84. }
  85.  
  86. /* EOF */
  87. }
  88.