Advertisement
Guest User

Untitled

a guest
Jan 10th, 2017
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.35 KB | None | 0 0
  1. /*
  2. * [OPTIONAL] Non-Core Modules
  3. *
  4. * The following blocks are used to load all non-core modules, including 3rd-party modules.
  5. * Modules can be prevented from loading by commenting out the line, other modules can be added by
  6. * adding a module block. These modules will be loaded prior to Services connecting to your network.
  7. *
  8. * Note that some of these modules are labeled EXTRA, and must be enabled prior to compiling by
  9. * running the 'extras' script on Linux and UNIX.
  10. */
  11.  
  12. /*
  13. * help
  14. *
  15. * Provides the command generic/help.
  16. *
  17. * This is a generic help command that can be used with any client.
  18. */
  19. module { name = "help" }
  20.  
  21. /*
  22. * m_dns
  23. *
  24. * Adds support for the DNS protocol. By itself this module does nothing useful,
  25. * but other modules such as m_dnsbl and os_dns require this.
  26. */
  27. #module
  28. {
  29. name = "m_dns"
  30.  
  31. /*
  32. * The nameserver to use for resolving hostnames, must be an IP or a resolver configuration file.
  33. * The below should work fine on all unix like systems. Windows users will have to find their nameservers
  34. * from ipconfig /all and put the IP here.
  35. */
  36. nameserver = "/etc/resolv.conf"
  37. #nameserver = "127.0.0.1"
  38.  
  39. /*
  40. * How long to wait in seconds before a DNS query has timed out.
  41. */
  42. timeout = 5
  43.  
  44.  
  45. /* Only edit below if you are expecting to use os_dns or otherwise answer DNS queries. */
  46.  
  47. /*
  48. * The IP and port services use to listen for DNS queries.
  49. * Note that ports less than 1024 are privileged on UNIX/Linux systems, and
  50. * require Anope to be started as root. If you do this, it is recommended you
  51. * set options:user and options:group so Anope can change users after binding
  52. * to this port.
  53. */
  54. ip = "0.0.0.0"
  55. port = 53
  56.  
  57.  
  58. /*
  59. * SOA record information.
  60. */
  61.  
  62. /* E-mail address of the DNS administrator. */
  63. admin = "admin@example.com"
  64.  
  65. /* This should be the names of the public facing nameservers serving the records. */
  66. nameservers = "ns1.example.com ns2.example.com"
  67.  
  68. /* The time slave servers are allowed to cache. This should be reasonably low
  69. * if you want your records to be updated without much delay.
  70. */
  71. refresh = 3600
  72.  
  73. /* A notify block. There should probably be one per nameserver listed in 'nameservers'.
  74. */
  75. notify
  76. {
  77. ip = "192.0.2.0"
  78. port = 53
  79. }
  80. }
  81.  
  82. /*
  83. * m_dnsbl
  84. *
  85. * Allows configurable DNS blacklists to check connecting users against. If a user
  86. * is found on the blacklist they will be immediately banned. This is a crucial module
  87. * to prevent bot attacks.
  88. */
  89. #module
  90. {
  91. name = "m_dnsbl"
  92.  
  93. /*
  94. * If set, Services will check clients against the DNSBLs when services connect to its uplink.
  95. * This is not recommended, and on large networks will open a very large amount of DNS queries.
  96. * Whilst services are not drastically affected by this, your nameserver/DNSBL might care.
  97. */
  98. check_on_connect = no
  99.  
  100. /*
  101. * If set, Services will check clients when coming back from a netsplit. This can cause a large number
  102. * of DNS queries open at once. Whilst services are not drastically affected by this, your nameserver/DNSBL
  103. * might care.
  104. */
  105. check_on_netburst = no
  106.  
  107. /*
  108. * If set, OperServ will add clients found in the DNSBL to the akill list. Without it, OperServ simply sends
  109. * a timed G/K-line to the IRCd and forgets about it. Can be useful if your akill list is being fill up by bots.
  110. */
  111. add_to_akill = yes
  112.  
  113. blacklist
  114. {
  115. /* Name of the blacklist. */
  116. name = "rbl.efnetrbl.org"
  117.  
  118. /* How long to set the ban for. */
  119. time = 4h
  120.  
  121. /* Reason for akill.
  122. * %n is the nick of the user
  123. * %u is the ident/username of the user
  124. * %g is the realname of the user
  125. * %h is the hostname of the user
  126. * %i is the IP of the user
  127. * %r is the reply reason (configured below). Will be nothing if not configured.
  128. * %N is the network name set in networkinfo:networkname
  129. */
  130. reason = "You are listed in the efnet RBL, visit http://rbl.efnetrbl.org/?i=%i for info"
  131.  
  132. /* Replies to ban and their reason. If no relies are configured, all replies get banned. */
  133. reply
  134. {
  135. code = 1
  136. reason = "Open Proxy"
  137. }
  138.  
  139. #reply
  140. {
  141. code = 2
  142. reason = "spamtrap666"
  143. }
  144.  
  145. #reply
  146. {
  147. code = 3
  148. reason = "spamtrap50"
  149. }
  150.  
  151. reply
  152. {
  153. code = 4
  154. reason = "TOR"
  155.  
  156. /*
  157. * If set, users identified to services at the time the result comes back
  158. * will not be banned.
  159. */
  160. #allow_account = yes
  161. }
  162.  
  163. reply
  164. {
  165. code = 5
  166. reason = "Drones / Flooding"
  167. }
  168. }
  169.  
  170. #blacklist
  171. {
  172. name = "dnsbl.dronebl.org"
  173. time = 4h
  174. reason = "You have a host listed in the DroneBL. For more information, visit http://dronebl.org/lookup_branded?ip=%i&network=%N"
  175. }
  176.  
  177. /* Exempt localhost from DNSBL checks */
  178. exempt { ip = "127.0.0.1" }
  179. }
  180.  
  181. /*
  182. * m_helpchan
  183. *
  184. * Gives users who are op in the specified help channel usermode +h (helpop).
  185. */
  186. #module
  187. {
  188. name = "m_helpchan"
  189.  
  190. helpchannel = "#help"
  191. }
  192.  
  193. /*
  194. * m_httpd
  195. *
  196. * Allows services to serve web pages. By itself, this module does nothing useful.
  197. *
  198. * Note that using this will allow users to get the IP of your services.
  199. * To prevent this we recommend using a reverse proxy or a tunnel.
  200. */
  201. #module
  202. {
  203. name = "m_httpd"
  204.  
  205. httpd
  206. {
  207. /* Name of this service. */
  208. name = "httpd/main"
  209.  
  210. /* IP to listen on. */
  211. ip = "0.0.0.0"
  212.  
  213. /* Port to listen on. */
  214. port = 8080
  215.  
  216. /* Time before connections to this server are timed out. */
  217. timeout = 30
  218.  
  219. /* Listen using SSL. Requires an SSL module. */
  220. #ssl = yes
  221.  
  222. /* If you are using a reverse proxy that sends one of the
  223. * extforward_headers set below, set this to its IP.
  224. * This allows services to obtain the real IP of users by
  225. * reading the forwarded-for HTTP header.
  226. */
  227. #extforward_ip = "192.168.0.255"
  228.  
  229. /* The header to look for. These probably work as is. */
  230. extforward_header = "X-Forwarded-For Forwarded-For"
  231. }
  232. }
  233.  
  234. /*
  235. * m_ldap [EXTRA]
  236. *
  237. * This module allows other modules to use LDAP. By itself, this module does nothing useful.
  238. */
  239. #module
  240. {
  241. name = "m_ldap"
  242.  
  243. ldap
  244. {
  245. server = "ldap://127.0.0.1"
  246.  
  247. /*
  248. * Admin credentials used for performing searches and adding users.
  249. */
  250. admin_binddn = "cn=Manager,dc=anope,dc=org"
  251. admin_password = "secret"
  252. }
  253. }
  254.  
  255. /*
  256. * m_ldap_authentication [EXTRA]
  257. *
  258. * This module allows many commands such as IDENTIFY, RELEASE, RECOVER, GHOST, etc. use
  259. * LDAP to authenticate users. Requires m_ldap.
  260. */
  261. #module
  262. {
  263. name = "m_ldap_authentication"
  264.  
  265. /*
  266. * The distinguished name used for searching for users's accounts.
  267. */
  268. basedn = "ou=users,dc=anope,dc=org"
  269.  
  270. /*
  271. * The search filter used to look up users's accounts.
  272. * %account is replaced with the user's account.
  273. * %object_class is replaced with the object_class configured below.
  274. */
  275. search_filter = "(&(uid=%account)(objectClass=%object_class))"
  276.  
  277. /*
  278. * The object class used by LDAP to store user account information.
  279. * This is used for adding new users to LDAP if registration is allowed.
  280. */
  281. object_class = "anopeUser"
  282.  
  283. /*
  284. * The attribute value used for account names.
  285. */
  286. username_attribute = "uid"
  287.  
  288. /*
  289. * The attribute value used for email addresses.
  290. * This directive is optional.
  291. */
  292. email_attribute = "email"
  293.  
  294. /*
  295. * The attribute value used for passwords.
  296. * Used when registering new accounts in LDAP.
  297. */
  298. password_attribute = "userPassword"
  299.  
  300. /*
  301. * If set, the reason to give the users who try to register with nickserv,
  302. * including nick registration from grouping.
  303. *
  304. * If not set, then registration is not blocked.
  305. */
  306. #disable_register_reason = "To register on this network visit http://some.misconfigured.site/register"
  307.  
  308. /*
  309. * If set, the reason to give the users who try to "/msg NickServ SET EMAIL".
  310. * If not set, then email changing is not blocked.
  311. */
  312. #disable_email_reason = "To change your email address visit http://some.misconfigured.site"
  313. }
  314.  
  315. /*
  316. * m_ldap_oper [EXTRA]
  317. *
  318. * This module dynamically ties users to Anope opertypes when they identify
  319. * via LDAP group membership. Requires m_ldap.
  320. *
  321. * Note that this doesn't give the user privileges on the IRCd, only in Services.
  322. */
  323. #module
  324. {
  325. name = "m_ldap_oper"
  326.  
  327. /*
  328. * An optional binddn to use when searching for groups.
  329. * %a is replaced with the account name of the user.
  330. */
  331. #binddn = "cn=Manager,dc=anope,dc=org"
  332.  
  333. /*
  334. * An optional password to bind with.
  335. */
  336. #password = "secret"
  337.  
  338. /*
  339. * The base DN where the groups are.
  340. */
  341. basedn = "ou=groups,dc=anope,dc=org"
  342.  
  343. /*
  344. * The filter to use when searching for users.
  345. * %a is replaced with the account name of the user.
  346. */
  347. filter = "(member=uid=%a,ou=users,dc=anope,dc=org)"
  348.  
  349. /*
  350. * The attribute of the group that is the name of the opertype.
  351. * The cn attribute should match a known opertype in the config.
  352. */
  353. opertype_attribute = "cn"
  354. }
  355.  
  356. /*
  357. * m_mysql [EXTRA]
  358. *
  359. * This module allows other modules to use MySQL.
  360. */
  361. #module
  362. {
  363. name = "m_mysql"
  364.  
  365. mysql
  366. {
  367. /* The name of this service. */
  368. name = "mysql/main"
  369. database = "anope"
  370. server = "127.0.0.1"
  371. username = "anope"
  372. password = "mypassword"
  373. port = 3306
  374. }
  375. }
  376. /*
  377. * m_redis
  378. *
  379. * This module allows other modules to use Redis.
  380. */
  381. #module
  382. {
  383. name = "m_redis"
  384.  
  385. /* A redis database */
  386. redis
  387. {
  388. /* The name of this service */
  389. name = "redis/main"
  390.  
  391. /*
  392. * The redis database to use. New connections default to 0.
  393. */
  394. db = 0
  395.  
  396. ip = "127.0.0.1"
  397. port = 6379
  398. }
  399. }
  400.  
  401. /*
  402. * m_regex_pcre [EXTRA]
  403. *
  404. * Provides the regex engine regex/pcre, which uses the Perl Compatible Regular Expressions library.
  405. */
  406. #module { name = "m_regex_pcre" }
  407.  
  408. /*
  409. * m_regex_posix [EXTRA]
  410. *
  411. * Provides the regex engine regex/posix, which uses the POSIX compliant regular expressions.
  412. * This is likely the only regex module you will not need extra libraries for.
  413. */
  414. #module { name = "m_regex_posix" }
  415.  
  416. /*
  417. * m_regex_tre [EXTRA]
  418. *
  419. * Provides the regex engine regex/tre, which uses the TRE regex library.
  420. */
  421. #module { name = "m_regex_tre" }
  422.  
  423. /*
  424. * m_rewrite
  425. *
  426. * Allows rewriting commands sent to/from clients.
  427. */
  428. #module { name = "m_rewrite" }
  429. #command
  430. {
  431. service = "ChanServ"; name = "CLEAR"; command = "rewrite"
  432.  
  433. /* Enable m_rewrite. */
  434. rewrite = true
  435.  
  436. /* Source message to match. A $ can be used to match anything. */
  437. rewrite_source = "CLEAR $ USERS"
  438.  
  439. /*
  440. * Message to rewrite the source message to. A $ followed by a number, eg $0, gets
  441. * replaced by the number-th word from the source_message, starting from 0.
  442. */
  443. rewrite_target = "KICK $1 *"
  444.  
  445. /*
  446. * The command description. This only shows up in HELP's output.
  447. * Comment this option to prevent the command from showing in the
  448. * HELP command.
  449. */
  450. rewrite_description = "Clears all users from a channel"
  451. }
  452.  
  453. /*
  454. * m_proxyscan
  455. *
  456. * This module allows you to scan connecting clients for open proxies.
  457. * Note that using this will allow users to get the IP of your services.
  458. *
  459. * Currently the two supported proxy types are HTTP and SOCKS5.
  460. *
  461. * The proxy scanner works by attempting to connect to clients when they
  462. * connect to the network, and if they have a proxy running instruct it to connect
  463. * back to services. If services are able to connect through the proxy to itself
  464. * then it knows it is an insecure proxy, and will ban it.
  465. */
  466. #module
  467. {
  468. name = "m_proxyscan"
  469.  
  470. /*
  471. * The target IP services tells the proxy to connect back to. This must be a publicly
  472. * available IP that remote proxies can connect to.
  473. */
  474. #target_ip = "127.0.0.1"
  475.  
  476. /*
  477. * The port services tells the proxy to connect to.
  478. */
  479. target_port = 7226
  480.  
  481. /*
  482. * The listen IP services listen on for incoming connections from suspected proxies.
  483. * This probably will be the same as target_ip, but may not be if you are behind a firewall (NAT).
  484. */
  485. #listen_ip = "127.0.0.1"
  486.  
  487. /*
  488. * The port services should listen on for incoming connections from suspected proxies.
  489. * This most likely will be the same as target_port.
  490. */
  491. listen_port = 7226
  492.  
  493. /*
  494. * An optional notice sent to clients upon connect.
  495. */
  496. #connect_notice = "We will now scan your host for insecure proxies. If you do not consent to this scan please disconnect immediately."
  497.  
  498. /*
  499. * Who the notice should be sent from.
  500. */
  501. #connect_source = "OperServ"
  502.  
  503. /*
  504. * If set, OperServ will add infected clients to the akill list. Without it, OperServ simply sends
  505. * a timed G/K-line to the IRCd and forgets about it. Can be useful if your akill list is being filled up by bots.
  506. */
  507. add_to_akill = yes
  508.  
  509. /*
  510. * How long before connections should be timed out.
  511. */
  512. timeout = 5
  513.  
  514. proxyscan
  515. {
  516. /* The type of proxy to check for. A comma separated list is allowed. */
  517. type = "HTTP"
  518.  
  519. /* The ports to check. */
  520. port = "80,8080"
  521.  
  522. /* How long to set the ban for. */
  523. time = 4h
  524.  
  525. /*
  526. * The reason to ban the user for.
  527. * %h is replaced with the type of proxy found.
  528. * %i is replaced with the IP of proxy found.
  529. * %p is replaced with the port.
  530. */
  531. reason = "You have an open proxy running on your host (%t:%i:%p)"
  532. }
  533. }
  534.  
  535. /*
  536. * m_sasl
  537. *
  538. * Some IRCds allow "SASL" authentication to let users identify to Services
  539. * during the IRCd user registration process. If this module is loaded, Services will allow
  540. * authenticating users through this mechanism. Supported mechanisms are:
  541. * PLAIN, EXTERNAL.
  542. */
  543. #module { name = "m_sasl" }
  544.  
  545. /*
  546. * m_ssl_gnutls [EXTRA]
  547. *
  548. * This module provides SSL services to Anope using GnuTLS, for example to
  549. * connect to the uplink server(s) via SSL.
  550. *
  551. * You may only load either m_ssl_gnutls or m_ssl_openssl, bot not both.
  552. */
  553. #module
  554. {
  555. name = "m_ssl_gnutls"
  556.  
  557. /*
  558. * An optional certificate and key for m_ssl_gnutls to give to the uplink.
  559. *
  560. * You can generate your own certificate and key pair by using:
  561. *
  562. * certtool --generate-privkey --bits 2048 --outfile anope.key
  563. * certtool --generate-self-signed --load-privkey anope.key --outfile anope.crt
  564. *
  565. */
  566. cert = "data/anope.crt"
  567. key = "data/anope.key"
  568.  
  569. /*
  570. * Diffie-Hellman parameters to use when acting as a server. This is only
  571. * required for TLS servers that want to use ephemeral DH cipher suites.
  572. *
  573. * This is NOT required for Anope to connect to the uplink server(s) via SSL.
  574. *
  575. * You can generate DH parameters by using:
  576. *
  577. * certtool --generate-dh-params --bits 2048 --outfile dhparams.pem
  578. *
  579. */
  580. # dhparams = "data/dhparams.pem"
  581. }
  582.  
  583. /*
  584. * m_ssl_openssl [EXTRA]
  585. *
  586. * This module provides SSL services to Anope using OpenSSL, for example to
  587. * connect to the uplink server(s) via SSL.
  588. *
  589. * You may only load either m_ssl_openssl or m_ssl_gnutls, bot not both.
  590. *
  591. */
  592. #module
  593. {
  594. name = "m_ssl_openssl"
  595.  
  596. /*
  597. * An optional certificate and key for m_ssl_openssl to give to the uplink.
  598. *
  599. * You can generate your own certificate and key pair by using:
  600. *
  601. * openssl genrsa -out anope.key 2048
  602. * openssl req -new -x509 -key anope.key -out anope.crt -days 1095
  603. */
  604. cert = "data/anope.crt"
  605. key = "data/anope.key"
  606.  
  607. /*
  608. * As of 2014 SSL 3.0 is considered insecure, but it might be enabled
  609. * on some systems by default for compatibility reasons.
  610. * You can use the following option to enable or disable it explicitly.
  611. * Leaving this option not set defaults to the default system behavior.
  612. */
  613. #sslv3 = no
  614. }
  615.  
  616. /*
  617. * m_sql_authentication [EXTRA]
  618. *
  619. * This module allows authenticating users against an external SQL database using a custom
  620. * query.
  621. */
  622. #module
  623. {
  624. name = "m_sql_authentication"
  625.  
  626. /* SQL engine to use. Should be configured elsewhere with m_mysql, m_sqlite, etc. */
  627. engine = "mysql/main"
  628.  
  629. /* Query to execute to authenticate. A non empty result from this query is considered a success,
  630. * and the user will be authenticated.
  631. *
  632. * @a@ is replaced with the user's account name
  633. * @p@ is replaced with the user's password
  634. * @n@ is replaced with the user's nickname
  635. * @i@ is replaced with the user's IP
  636. *
  637. * Note that @n@ and @i@ may not always exist in the case of a user identifying outside of the normal
  638. * nickserv/identify command, such as through the web panel.
  639. *
  640. * Furthermore, if a field named email is returned from this query the user's email is
  641. * set to its value.
  642. *
  643. *
  644. * We've included some example queries for some popular website/forum systems.
  645. *
  646. * Drupal 6: "SELECT `mail` AS `email` FROM `users` WHERE `name` = @a@ AND `pass` = MD5(@p@) AND `status` = 1"
  647. * e107 cms: "SELECT `user_email` AS `email` FROM `e107_user` WHERE `user_loginname` = @a@ AND `user_password` = MD5(@p@)"
  648. * SMF Forum: "SELECT `email_address` AS `email` FROM `smf_members` WHERE `member_name` = @a@ AND `passwd` = SHA1(CONCAT(LOWER(@a@), @p@))"
  649. * vBulletin: "SELECT `email` FROM `user` WHERE `username` = @a@ AND `password` = MD5(CONCAT(MD5(@p@), `salt`))"
  650. * IP.Board: "SELECT `email` FROM `ibf_members` WHERE `name` = @a@ AND `members_pass_hash` = MD5(CONCAT(MD5(`members_pass_salt`), MD5(@p@)))"
  651. */
  652. query = "SELECT `email_addr` AS `email` FROM `my_users` WHERE `username` = @a@ AND `password` = MD5(CONCAT('salt', @p@))"
  653.  
  654. /*
  655. * If set, the reason to give the users who try to "/msg NickServ REGISTER".
  656. * If not set, then registration is not blocked.
  657. */
  658. #disable_reason = "To register on this network visit http://some.misconfigured.site/register"
  659.  
  660. /*
  661. * If set, the reason to give the users who try to "/msg NickServ SET EMAIL".
  662. * If not set, then email changing is not blocked.
  663. */
  664. #disable_email_reason = "To change your email address visit http://some.misconfigured.site"
  665. }
  666.  
  667. /*
  668. * m_sql_log [EXTRA]
  669. *
  670. * This module adds an additional target option to log{} blocks
  671. * that allows logging Service's logs to SQL. To log to SQL, add
  672. * the SQL service name to log:targets prefixed by sql_log:. For
  673. * example:
  674. *
  675. * log
  676. * {
  677. * targets = "services.log sql_log:mysql/main"
  678. * ...
  679. * }
  680. *
  681. * By default this module logs to the table `logs`, and will create
  682. * it if it doesn't exist. This module does not create any indexes (keys)
  683. * on the table and it is recommended you add them yourself as necessary.
  684. */
  685. #module { name = "m_sql_log" }
  686.  
  687. /*
  688. * m_sql_oper [EXTRA]
  689. *
  690. * This module allows granting users services operator privileges and possibly IRC Operator
  691. * privileges based on an external SQL database using a custom query.
  692. */
  693. #module
  694. {
  695. name = "m_sql_oper"
  696.  
  697. /* SQL engine to use. Should be configured elsewhere with m_mysql, m_sqlite, etc. */
  698. engine = "mysql/main"
  699.  
  700. /* Query to execute to determine if a user should have operator privileges.
  701. * A field named opertype must be returned in order to link the user to their oper type.
  702. * The oper types must be configured earlier in services.conf.
  703. *
  704. * If a field named modes is returned from this query then those modes are set on the user.
  705. * Without this, only a simple +o is sent.
  706. *
  707. * @a@ is replaced with the user's account name
  708. * @i@ is replaced with the user's IP
  709. */
  710. query = "SELECT `opertype` FROM `my_users` WHERE `user_name` = @a@"
  711. }
  712.  
  713. /*
  714. * m_sqlite [EXTRA]
  715. *
  716. * This module allows other modules to use SQLite.
  717. */
  718. #module
  719. {
  720. name = "m_sqlite"
  721.  
  722. /* A SQLite database */
  723. sqlite
  724. {
  725. /* The name of this service. */
  726. name = "sqlite/main"
  727.  
  728. /* The database name, it will be created if it does not exist. */
  729. database = "anope.db"
  730. }
  731. }
  732.  
  733. /*
  734. * webcpanel
  735. *
  736. * This module creates a web configuration panel that allows users and operators to perform any task
  737. * as they could over IRC. If you are using the default configuration you should be able to access
  738. * this panel by visiting http://127.0.0.1:8080 in your web browser from the machine Anope is running on.
  739. *
  740. * This module requires m_httpd.
  741. */
  742. #module
  743. {
  744. name = "webcpanel"
  745.  
  746. /* Web server to use. */
  747. server = "httpd/main";
  748.  
  749. /* Template to use. */
  750. template = "default";
  751.  
  752. /* Page title. */
  753. title = "Anope IRC Services";
  754. }
  755.  
  756. /*
  757. * m_xmlrpc
  758. *
  759. * Allows remote applications (websites) to execute queries in real time to retrieve data from Anope.
  760. * By itself this module does nothing, but allows other modules (m_xmlrpc_main) to receive and send XMLRPC queries.
  761. */
  762. #module
  763. {
  764. name = "m_xmlrpc"
  765.  
  766. /* Web service to use. Requires m_httpd. */
  767. server = "httpd/main"
  768. }
  769.  
  770. /*
  771. * m_xmlrpc_main
  772. *
  773. * Adds the main XMLRPC core functions.
  774. * Requires m_xmlrpc.
  775. */
  776. #module { name = "m_xmlrpc_main" }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement