diff --git a/ChangeLog b/ChangeLog index 4a7282a5d..22fb0a7c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-10-29 Mickael Remond + + * doc/guide.tex: XEP-0065 proxy documentation (thanks to Evgeniy + Khramtsov). + 2006-10-28 Mickael Remond * src/ejabberd.cfg.example: Changed the anonymous example a bit to work diff --git a/doc/guide.html b/doc/guide.html index 01e0d6f14..10615b68c 100644 --- a/doc/guide.html +++ b/doc/guide.html @@ -143,49 +143,50 @@ SPAN{width:20%; float:right; text-align:left; margin-left:auto;}
  • 5.10  mod_offline
  • 5.11  mod_privacy
  • 5.12  mod_private -
  • 5.13  mod_pubsub -
  • 5.14  mod_register -
  • 5.15  mod_roster -
  • 5.16  mod_service_log -
  • 5.17  mod_shared_roster -
  • 5.18  mod_stats -
  • 5.19  mod_time -
  • 5.20  mod_vcard -
  • 5.21  mod_vcard_ldap -
  • 5.22  mod_version +
  • 5.13  mod_proxy65 +
  • 5.14  mod_pubsub +
  • 5.15  mod_register +
  • 5.16  mod_roster +
  • 5.17  mod_service_log +
  • 5.18  mod_shared_roster +
  • 5.19  mod_stats +
  • 5.20  mod_time +
  • 5.21  mod_vcard +
  • 5.22  mod_vcard_ldap +
  • 5.23  mod_version -
  • 6  Creating an Initial Administrator -
  • 7  Online Configuration and Monitoring +
  • 6  Creating an Initial Administrator +
  • 7  Online Configuration and Monitoring -
  • 8  Firewall Settings -
  • 9  SRV Records -
  • 10  Clustering +
  • 8  Firewall Settings +
  • 9  SRV Records +
  • 10  Clustering -
  • A  Internationalization and Localization -
  • B  Release Notes +
  • A  Internationalization and Localization +
  • B  Release Notes -
  • C  Acknowledgements -
  • D  Copyright Information +
  • C  Acknowledgements +
  • D  Copyright Information @@ -1674,6 +1675,11 @@ Last connection date and time: Use mod_last_odbc instead of   No +mod_proxy65 +SOCKS5 Bytestreams (JEP-0065) +  +No + mod_pubsub Publish-Subscribe (JEP-0060)   @@ -2343,9 +2349,74 @@ Options: the processing discipline for Private XML Storage (jabber:iq:private) IQ queries (see section 5.2.1). + + +

    5.13  mod_proxy65

    + + + +This module implements SOCKS5 Bytestreams (JEP-0065). +It allows ejabberd to act as a file transfer proxy between two +XMPP clients.
    +
    +Options: +
    +host
    This option defines the hostname of the service. +If this option is not set, the prefix `proxy.' is added to ejabberd +hostname. +
    name
    Defines Service Discovery name of the service. +Default is "SOCKS5 Bytestreams". +
    ip
    This option specifies which network interface +to listen for. Default is an IP address of the service's DNS name, or, +if fails, {127,0,0,1}. +
    port
    This option defines port to listen for +incoming connections. Default is 7777. +
    auth_type
    SOCKS5 authentication type. +Possible values are anonymous and plain. Default is +anonymous. +
    access
    Defines ACL for file transfer initiators. +Default is all. +
    max_connections
    Maximum number of +active connections per file transfer initiator. No limit by default. +
    shaper
    This option defines shaper for +the file transfer peers. Shaper with the maximum bandwidth will be selected. +Default is none. +
    +Examples: +
    • +The simpliest configuration of the module: +
      +  {modules,
      +   [
      +    ...
      +    {mod_proxy65, []},
      +    ...
      +  ]}.
      +
    • More complicated configuration. +
      +  {acl, proxy_users, {server, "example.org"}}.
      +  {access, proxy65_access, [{allow, proxy_users}, {deny, all}]}.
      +  ...
      +  {acl, admin, {user, "admin", "example.org"}}.
      +  {shaper, normal, {maxrate, 10240}}. %% 10 Kbytes/sec
      +  {access, proxy65_shaper, [{none, admin}, {normal, all}]}.
      +  ...
      +  {modules,
      +   [
      +    ...
      +    {mod_proxy65, [{host, "proxy1.example.org"},
      +                   {name, "File Transfer Proxy"},
      +                   {ip, {200,150,100,1}},
      +                   {port, 7778},
      +                   {max_connections, 5},
      +                   {access, proxy65_access},
      +                   {shaper, proxy65_shaper}]},
      +    ...
      +  ]}.
      +
    -

    5.13  mod_pubsub

    +

    5.14  mod_pubsub

    @@ -2397,7 +2468,7 @@ Example: -

    5.14  mod_register

    +

    5.15  mod_register

    @@ -2453,7 +2524,7 @@ Next example prohibits the registration of too short account names: -

    5.15  mod_roster

    +

    5.16  mod_roster

    @@ -2467,7 +2538,7 @@ the processing discipline for Roster Management (jabber:iq:roster) IQ q -

    5.16  mod_service_log

    +

    5.17  mod_service_log

    @@ -2507,7 +2578,7 @@ To log all end user packets to the Bandersnatch service running on -

    5.17  mod_shared_roster

    +

    5.18  mod_shared_roster

    @@ -2634,7 +2705,7 @@ Take the case of a computer club that wants all its members seeing each -

    5.18  mod_stats

    +

    5.19  mod_stats

    @@ -2676,7 +2747,7 @@ You can request the number of online users on the current virtual host -

    5.19  mod_time

    +

    5.20  mod_time

    @@ -2691,7 +2762,7 @@ the processing discipline for Entity Time (jabber:iq:time) IQ queries -

    5.20  mod_vcard

    +

    5.21  mod_vcard

    @@ -2756,7 +2827,7 @@ In this first situation, search results are limited to twenty items, -

    5.21  mod_vcard_ldap

    +

    5.22  mod_vcard_ldap

    @@ -2951,7 +3022,7 @@ searching his info in LDAP.
    -

    5.22  mod_version

    +

    5.23  mod_version

    @@ -2966,7 +3037,7 @@ the processing discipline for Software Version (jabber:iq:version) IQ q -

    6  Creating an Initial Administrator

    +

    6  Creating an Initial Administrator

    Before the web interface can be entered to perform administration tasks, an @@ -2981,7 +3052,7 @@ Register an account on your ejabberd deployment. An account can be section 7.2):
     % ejabberdctl node@host register admin example.org password
    -
  • Using In-Band Registration (see section 5.14): you can +
  • Using In-Band Registration (see section 5.15): you can use a Jabber client to register an account.
  • Edit the configuration file to promote the account created in the previous @@ -2998,12 +3069,12 @@ Register an account on your ejabberd deployment. An account can be -

    7  Online Configuration and Monitoring

    +

    7  Online Configuration and Monitoring

    -

    7.1  Web Interface

    +

    7.1  Web Interface

    @@ -3077,7 +3148,7 @@ You can serve the web interface on the same port as the -

    7.2  ejabberdctl

    +

    7.2  ejabberdctl

    @@ -3123,7 +3194,7 @@ Additional information: -

    8  Firewall Settings

    +

    8  Firewall Settings

    @@ -3152,7 +3223,7 @@ You need to take the following TCP ports in mind when configuring your firewall:

    -

    9  SRV Records

    +

    9  SRV Records

    @@ -3164,13 +3235,13 @@ General information: -

    10  Clustering

    +

    10  Clustering

    -

    10.1  How it Works

    +

    10.1  How it Works

    @@ -3191,7 +3262,7 @@ router, -

    10.1.1  Router

    +

    10.1.1  Router

    @@ -3203,7 +3274,7 @@ appropriate process. If not, it is sent to the s2s manager.

    -

    10.1.2  Local Router

    +

    10.1.2  Local Router

    @@ -3214,7 +3285,7 @@ on its content.

    -

    10.1.3  Session Manager

    +

    10.1.3  Session Manager

    @@ -3225,7 +3296,7 @@ storage, or bounced back.

    -

    10.1.4  s2s Manager

    +

    10.1.4  s2s Manager

    @@ -3237,7 +3308,7 @@ serving this connection, otherwise a new connection is opened.

    -

    10.2  Clustering Setup

    +

    10.2  Clustering Setup

    @@ -3310,7 +3381,7 @@ domain.
    -

    A  Internationalization and Localization

    +

    A  Internationalization and Localization

    @@ -3353,13 +3424,13 @@ figure 3 with figure 
    -

    B  Release Notes

    +

    B  Release Notes

    -

    B.1  ejabberd 0.9

    +

    B.1  ejabberd 0.9

            Release notes
    @@ -3453,7 +3524,7 @@ Bugfixes
     
    -

    B.2  ejabberd 0.9.1

    +

    B.2  ejabberd 0.9.1

            Release notes
    @@ -3521,7 +3592,7 @@ Bugfixes
     
    -

    B.3  ejabberd 0.9.8

    +

    B.3  ejabberd 0.9.8

            Release notes
    @@ -3626,7 +3697,7 @@ END
     
    -

    B.4  ejabberd 1.0.0

    +

    B.4  ejabberd 1.0.0

            Release Notes
    @@ -3752,7 +3823,7 @@ END
     
    -

    B.5  ejabberd 1.1.0

    +

    B.5  ejabberd 1.1.0

         Release Notes
    @@ -3873,7 +3944,7 @@ END
     
    -

    B.6  ejabberd 1.1.1

    +

    B.6  ejabberd 1.1.1

         Release Notes
    @@ -3998,7 +4069,7 @@ END
     
    -

    B.7  ejabberd 1.1.2

    +

    B.7  ejabberd 1.1.2

         Release Notes
    @@ -4123,7 +4194,7 @@ END
     
    -

    C  Acknowledgements

    +

    C  Acknowledgements

    Thanks to all people who contributed to this guide: @@ -4140,7 +4211,7 @@ Alexey Shchepin (xmpp:aleksey@jabber.ru -

    D  Copyright Information

    +

    D  Copyright Information

    Ejabberd Installation and Operation Guide.
    diff --git a/doc/guide.tex b/doc/guide.tex index 3635e5b59..dad233560 100644 --- a/doc/guide.tex +++ b/doc/guide.tex @@ -58,6 +58,7 @@ \newcommand{\modofflineodbc}{\module{mod\_offline\_odbc}} \newcommand{\modprivacy}{\module{mod\_privacy}} \newcommand{\modprivate}{\module{mod\_private}} +\newcommand{\modproxy}{\module{mod\_proxy65}} \newcommand{\modpubsub}{\module{mod\_pubsub}} \newcommand{\modregister}{\module{mod\_register}} \newcommand{\modroster}{\module{mod\_roster}} @@ -1476,6 +1477,7 @@ database for the following data: \hline \modofflineodbc{} & Offline message storage & supported database (*) & No \\ \hline \modprivacy{} & Blocking Communication & & Yes \\ \hline \modprivate{} & Private XML Storage (\jepref{0049}) & & No \\ + \hline \modproxy{} & SOCKS5 Bytestreams (\jepref{0065}) & & No\\ \hline \modpubsub{} & Publish-Subscribe (\jepref{0060}) & & No \\ \hline \modregister{} & In-Band Registration (\jepref{0077}) & & No \\ \hline \modroster{} & Roster management & & Yes (**) \\ @@ -2092,6 +2094,73 @@ Options: \iqdiscitem{Private XML Storage (\ns{jabber:iq:private})} \end{description} +\subsection{\aname{modproxy}{\modproxy{}}} +\label{sec:modproxy} +\ind{modules!\modversion{}}\ind{protocols!JEP-0065: SOCKS5 Bytestreams} + +This module implements SOCKS5 Bytestreams (\jepref{0065}). +It allows \ejabberd{} to act as a file transfer proxy between two +XMPP clients. + +Options: +\begin{description} +\titem{host}\ind{options!host}This option defines the hostname of the service. +If this option is not set, the prefix `\jid{proxy.}' is added to \ejabberd{} +hostname. +\titem{name}\ind{options!name}Defines Service Discovery name of the service. +Default is \term{"SOCKS5 Bytestreams"}. +\titem{ip}\ind{options!ip}This option specifies which network interface +to listen for. Default is an IP address of the service's DNS name, or, +if fails, \verb|{127,0,0,1}|. +\titem{port}\ind{options!port}This option defines port to listen for +incoming connections. Default is~7777. +\titem{auth\_type}\ind{options!auth\_type}SOCKS5 authentication type. +Possible values are \term{anonymous} and \term{plain}. Default is +\term{anonymous}. +\titem{access}\ind{options!access}Defines ACL for file transfer initiators. +Default is \term{all}. +\titem{max\_connections}\ind{options!max\_connections}Maximum number of +active connections per file transfer initiator. No limit by default. +\titem{shaper}\ind{options!shaper}This option defines shaper for +the file transfer peers. Shaper with the maximum bandwidth will be selected. +Default is \term{none}. +\end{description} + +Examples: +\begin{itemize} +\item The simpliest configuration of the module: + \begin{verbatim} + {modules, + [ + ... + {mod_proxy65, []}, + ... + ]}. +\end{verbatim} +\item More complicated configuration. + \begin{verbatim} + {acl, proxy_users, {server, "example.org"}}. + {access, proxy65_access, [{allow, proxy_users}, {deny, all}]}. + ... + {acl, admin, {user, "admin", "example.org"}}. + {shaper, normal, {maxrate, 10240}}. %% 10 Kbytes/sec + {access, proxy65_shaper, [{none, admin}, {normal, all}]}. + ... + {modules, + [ + ... + {mod_proxy65, [{host, "proxy1.example.org"}, + {name, "File Transfer Proxy"}, + {ip, {200,150,100,1}}, + {port, 7778}, + {max_connections, 5}, + {access, proxy65_access}, + {shaper, proxy65_shaper}]}, + ... + ]}. +\end{verbatim} +\end{itemize} + \subsection{\aname{modpubsub}{\modpubsub{}}} \label{sec:modpubsub} \ind{modules!\modpubsub{}}\ind{protocols!JEP-0060: Publish-Subscribe}