blob: 65f1f837fac7f58c943ad10e4586daa3d7253a80 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
# libsdp.conf - configuration file for libsdp
#
# $Id$
#
# Comments are starts with # and cause the entire line after it to be ignored.
# Any beginning whitespace is skipped. Any line that is empty is also skipped.
#
# There are 2 main types of statements supported by this configuration file:
# - "use" - which defines the address family to be used for the sockets that
# match the line
# - "log" - for setting logging related configuration. As the log settings
# takes immidiate effect we define these at the beggining of the file.
#
##############################################################################
# DEAFUALT SETTINGS:
# Please do not forget to comment if you want to change these.
# (the rest of this file explains the syntax and give examples)
#
# Get errors printed into the files /tmp/libsdp.log.<uid>/log
# or /var/log/<path> for root
log min-level 9 destination file libsdp.log
#
# By default we let all servers and client try SDP first.
# to exclude SDP add "use tcp" rules before these defaults.
use both server * *:*
use both client * *:*
#
#
##############################################################################
#
# LOG CONFIGURATION:
# ------------------
# The log directive allows the user to specify which and where debug and error
# messages get sent. The log statement format is:
# log [destination stderr|syslog|file <path>] [min-level <1-9>]
#
# destination - defines the destination of the log messages:
# stderr - messages will be forwarded to the stderr
# syslog - messages sent to the syslog service
# file <path> - messages will be written to the file /var/log/<path> for root.
# for regular user, if full path is requsted <path>.<uid>/log
# or /tmp/<path>.<uid>/log if no path is requested
# Due to security reasons, <path> must not be:
# 1. a soft link
# 2. owned by other user.
# 3. Other permissions except User permissions.
#
# min-level - defines the verbosity of the log:
# 9 - only errors are printed
# 8 - warnings
# 7 - connect and listen summary (useful for tracking SDP usage)
# 4 - positive match summary (useful for config file debug)
# 3 - negative match summary (useful for config file debug)
# 2 - function calls and return values
# 1 - debug messages
#
# Examples:
#
# Get SDP usage per connect and listen into stderr
# log min-level 7 destination stderr
#
# Send errors only into syslog
# log min-level 9 destination syslog
#
##############################################################################
#
# SOCKET ADDRESS FAMILY CONTROL:
# ------------------------------
# The socket control statements allows the user to specify when libsdp will
# replace AF_INET/SOCK_STREAM sockets with AF_SDP/SOCK_STREAM
# sockets. Each control statement specifies a matching rule that all its
# subexpressions must evaluate as true (logical and) to apply.
#
# The statements that control which type of sockets to open are made
# of the following:
# use <address-family> <role> <program name> <address|*>:<port range|*>
#
# <address-family> can be one of:
# "sdp" - for specifying when an SDP should be used
# "tcp" - for specifying when SDP socket should not be matched
# "both" - for specifying when both SDP and AF_INET sockets should be used.
#
# Note: that "both" semantics is different between "server" and "client" roles:
# For a "server" is means that the server will be listening on both sdp and tcp
# For a "client" the connect will prefer using sdp but will silently
# fall back to tcp if the sdp connection failed.
#
# <role> can be one of:
# "server" or "listen" - for defining the listening port address family
# "client" or "connect" - for defining the connected port address family
#
# <program-name|*> field:
# Defines the program name (not including the path) the rule applies to.
# Wildcards with same semantics as "ls" are supported (* and ?).
# So db2* would match on any program with a name starting with db2.
# t?cp would match on ttcp, etc.
# If not provided (default) the statement matches all programs.
#
# <address|*> means:
# Either the local address the server is bind to or the remote server
# address the client connects to. Syntax for address matching is:
# <IPv4 address>[/<prefix_length>]|*
# IPv4 address = [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ each sub number < 255
# prefix_length = [0-9]+ and with value <= 32. A prefix_length of 24
# matches the subnet mask 255.255.255.0 . A prefix_length of 32
# requires matching of the exact IP.
#
# <port range> is:
# start-port[-end-port] where port numbers are >0 and < 65536
#
# Rules are evaluated in order of definition. So the first match wins.
# If no match is made libsdp will default to "both".
#
# Examples:
#
# Use SDP by clients connecting to machines that belongs to subnet 192.168.1.*
# family role program address:port[-range]
# use sdp connect * 192.168.1.0/24:*
#
# Use SDP by ttcp when it connects to port 5001 of any machine
# family role program address:port[-range]
# use sdp listen ttcp *:5001
#
# Use TCP for any program with name starting with ttcp* serving ports 22 to 25
# family role program address:port[-range]
# use tcp server ttcp* *:22-25
#
# Listen on both TCP and SDP by any server that listen on port 8080
# family role program address:port[-range]
# use both server * *:8080
#
# Connect ssh through SDP and fallback to TCP to hosts on 11.4.8.* port 22
# family role program address:port[-range]
# use both connect * 11.4.8.0/24:22
#
# NOTE: If all "use" rules are commented SDP will take "simple SDP"
# mode and use SDP for all connections
#
##############################################################################
|