1 package org.ultramonkey.l7.controller;
3 import java.util.regex.*;
6 import org.apache.log4j.Logger;
7 import org.ultramonkey.l7.model.LogCategorySet;
15 * Copyright(c) NTT COMWARE 2008
20 public class GetServ {
25 private static final String SERVICE_FILENAME = "/etc/services";
39 public static String byName(String name, String proto) {
40 // --- debug log (in method) ---
41 Logger ioFileLogger = Logger.getLogger(LogCategorySet.GUI_IO_FILE);
42 if (ioFileLogger.isDebugEnabled()) {
44 .debug("11584 GetServ::byName(String name, String proto) in name=\""
45 + name + "\", proto=\"" + proto + "\"");
47 // --- debug log (in method) ---
49 if (name == null || proto == null) {
50 // --- debug log (out method) ---
51 if (ioFileLogger.isDebugEnabled()) {
53 .debug("11585 GetServ::byName(String name, String proto) out return=null");
55 // --- debug log (out method) ---
63 String regex = "^([-_a-zA-Z0-9]+)\\s+(\\d+)/([-_a-zA-Z0-9]+)([-_a-zA-Z0-9\\s]+)*$";
64 Pattern p = Pattern.compile(regex);
66 BufferedReader br = new BufferedReader(new InputStreamReader(
67 new FileInputStream(SERVICE_FILENAME)));
69 while ((line = br.readLine()) != null && port == null) {
70 line = line.replaceAll("#.*", "");
71 if (line.length() != 0) {
72 Matcher m = p.matcher(line.trim());
73 if (m.matches() && m.group(3).equals(proto)) {
74 if (m.group(1).equals(name)) {
76 } else if (m.group(4) != null) {
77 String[] aliases = m.group(4).split("\\s");
78 for (String alias : aliases) {
79 if (alias.equals(name)) {
90 // --- debug log (out method) ---
91 if (ioFileLogger.isDebugEnabled()) {
92 ioFileLogger.debug("11586 GetServ::byName(String name, String proto) out return=\"" + port + "\"");
94 // --- debug log (out method) ---
97 // --- debug log (out method) ---
98 if (ioFileLogger.isDebugEnabled()) {
99 ioFileLogger.debug("11587 GetServ::byName(String name, String proto) out return=\"" + name + "\"");
101 // --- debug log (out method) ---
104 } catch (IOException ioe) {
105 // --- debug log (out method) ---
106 if (ioFileLogger.isDebugEnabled()) {
107 ioFileLogger.debug("11588 GetServ::byName(String name, String proto) out return=null");
109 // --- debug log (out method) ---