CernVM-FS  2.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
auto.cvmfs.cc
Go to the documentation of this file.
1 
8 #include <cstdio>
9 #include <string>
10 
11 using namespace std; // NOLINT
12 
13 static bool IsInRange(const char c, const char begin, const char end) {
14  return (c >= begin) && (c <= end);
15 }
16 
17 static bool IsAlphanum(const char c) {
18  return IsInRange(c, 'a', 'z') || IsInRange(c, 'A', 'Z') ||
19  IsInRange(c, '0', '9');
20 }
21 
22 
23 int main(int argc, char **argv) {
24  if (argc != 2)
25  return 1;
26 
27  string hostname = argv[1];
28 
29  // Sanitize hostname
30  if (hostname.empty())
31  return 1;
32  if (!IsAlphanum(hostname[0]))
33  return 1;
34  bool has_dot = false;
35  for (unsigned i = 1; i < hostname.length(); ++i) {
36  if (hostname[i] == '.') {
37  has_dot = true;
38  continue;
39  }
40  if (IsAlphanum(hostname[i]) ||
41  (hostname[i] == '-') ||
42  (hostname[i] == '_'))
43  {
44  continue;
45  }
46  return 1;
47  }
48  if (!has_dot)
49  return 1;
50  if (hostname[hostname.length()-1] == '.')
51  return 1;
52 
53  printf("-fstype=cvmfs :%s\n", hostname.c_str());
54  return 0;
55 }
int main()
Definition: helper_allow.cc:16
static bool IsAlphanum(const char c)
Definition: auto.cvmfs.cc:17
static bool IsInRange(const char c, const char begin, const char end)
Definition: auto.cvmfs.cc:13