pro.nut 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767
  1. --
  2. -- Copyright (C) 2004-2005 by egnite Software GmbH. All rights reserved.
  3. --
  4. -- Redistribution and use in source and binary forms, with or without
  5. -- modification, are permitted provided that the following conditions
  6. -- are met:
  7. --
  8. -- 1. Redistributions of source code must retain the above copyright
  9. -- notice, this list of conditions and the following disclaimer.
  10. -- 2. Redistributions in binary form must reproduce the above copyright
  11. -- notice, this list of conditions and the following disclaimer in the
  12. -- documentation and/or other materials provided with the distribution.
  13. -- 3. Neither the name of the copyright holders nor the names of
  14. -- contributors may be used to endorse or promote products derived
  15. -- from this software without specific prior written permission.
  16. --
  17. -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  18. -- ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  19. -- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  20. -- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  21. -- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  22. -- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  23. -- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  24. -- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  25. -- AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  26. -- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
  27. -- THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  28. -- SUCH DAMAGE.
  29. --
  30. -- For additional information see http://www.ethernut.de/
  31. --
  32. -- Operating system functions
  33. --
  34. -- $Log$
  35. -- Revision 1.14 2009/02/06 15:52:14 haraldkipp
  36. -- Removed stack size defaults.
  37. --
  38. -- Revision 1.13 2009/01/16 17:03:50 haraldkipp
  39. -- Configurable discovery protocol version and port plus
  40. -- configurable service thread stack size. The new version 1.1
  41. -- allows host names up to 98 characters. Added some code
  42. -- to make sure, that nothing is overwritten with version 1.0
  43. -- protocol and too long host names. Protocol version 1.0
  44. -- is still the default.
  45. --
  46. -- Revision 1.12 2008/07/08 13:27:55 haraldkipp
  47. -- Several HTTP server options are now configurable.
  48. -- Keepalive is now disabled by default to maintain backward compatibility.
  49. --
  50. -- Revision 1.11 2008/05/16 03:39:31 thiagocorrea
  51. -- Revert httpd memory allocation calls to NutHeapAlloc for consistency and
  52. -- move DestroyRequestInfo to a shared file (reduces code size and remove duplicates
  53. -- from httpd.c and ssi.c)
  54. --
  55. -- Revision 1.10 2008/04/01 10:11:34 haraldkipp
  56. -- Added the new, enhanced httpd API library.
  57. -- Bugs #1839026 and #1839029 fixed.
  58. --
  59. -- Revision 1.9 2008/02/15 17:20:05 haraldkipp
  60. -- XML streaming parser added.
  61. --
  62. -- Revision 1.8 2006/09/07 09:06:17 haraldkipp
  63. -- Discovery service added.
  64. --
  65. -- Revision 1.7 2005/08/05 11:26:01 olereinhardt
  66. -- Added asp.c, ssi.c
  67. --
  68. -- Revision 1.6 2005/04/05 17:44:56 haraldkipp
  69. -- Made stack space configurable.
  70. --
  71. -- Revision 1.5 2005/02/05 20:41:13 haraldkipp
  72. -- Wins and FTP added.
  73. --
  74. -- Revision 1.4 2005/02/02 15:53:15 haraldkipp
  75. -- DHCP configuration added
  76. --
  77. -- Revision 1.3 2004/09/19 11:18:44 haraldkipp
  78. -- Syslog client added
  79. --
  80. -- Revision 1.2 2004/08/18 13:46:10 haraldkipp
  81. -- Fine with avr-gcc
  82. --
  83. -- Revision 1.1 2004/06/07 16:38:43 haraldkipp
  84. -- First release
  85. --
  86. --
  87. nutpro =
  88. {
  89. {
  90. name = "nutpro_discover",
  91. brief = "Discovery",
  92. description = "This service allows to scan a local network for Nut/OS nodes "..
  93. "and modify their network settings by running the Nut/OS discovery "..
  94. "tool on a desktop PC.\n\n"..
  95. "It is not available by default and must be activated by the "..
  96. "application.",
  97. requires = { "NET_UDP" },
  98. sources = { "discover.c" },
  99. options =
  100. {
  101. {
  102. macro = "DISCOVERY_VERSION",
  103. brief = "Protocol Version",
  104. description = "Make sure, that your discovery tool and any callback "..
  105. "implemented in your application supports the selected version.\n\n"..
  106. "Version 0x10 truncates the host name to 7 characters, while "..
  107. "version 0x11 allows host names up to 98 characters, which "..
  108. "however will reduce the custom area to a single byte.",
  109. type = "enumerated",
  110. choices = { "0x10", "0x11" },
  111. default = "0x10",
  112. file = "include/cfg/discover.h"
  113. },
  114. {
  115. macro = "NUT_THREAD_DISTSTACK",
  116. brief = "Service Thread Stack",
  117. description = "Number of bytes to be allocated for the stack of the discovery "..
  118. "service thread. May be enabled and set to fine tune RAM usage.",
  119. flavor = "booldata",
  120. file = "include/cfg/discover.h"
  121. },
  122. {
  123. macro = "DISCOVERY_PORT",
  124. brief = "Service Port",
  125. description = "UDP port used by the discovery service.\n\n"..
  126. "Used as a default. The application may choose a different value.",
  127. default = "9806",
  128. flavor = "integer",
  129. file = "include/cfg/discover.h"
  130. },
  131. }
  132. },
  133. {
  134. name = "nutpro_dhcpc",
  135. brief = "DHCP/BOOTP Client",
  136. requires = { "NET_UDP", "NUT_EVENT" },
  137. sources =
  138. {
  139. "dhcpc.c"
  140. },
  141. options =
  142. {
  143. {
  144. macro = "DHCP_SERVERPORT",
  145. brief = "Server Port",
  146. description = "UDP port of the DHCP server. Default is 67.",
  147. flavor = "booldata",
  148. file = "include/cfg/dhcp.h"
  149. },
  150. {
  151. macro = "DHCP_CLIENTPORT",
  152. brief = "Client Port",
  153. description = "UDP port of the DHCP client. Default is 68.",
  154. flavor = "booldata",
  155. file = "include/cfg/dhcp.h"
  156. },
  157. {
  158. macro = "DHCP_BROADCAST_FLAG",
  159. brief = "Broadcast Flag",
  160. description = "If enabled, the client will set the broadcast flag in all "..
  161. "outgoing messages. This is not required, because Nut/Net is "..
  162. "able to receive UPD datagrams without configuring the "..
  163. "interface.",
  164. flavor = "boolean",
  165. file = "include/cfg/dhcp.h"
  166. },
  167. {
  168. macro = "MIN_DHCP_MSGSIZE",
  169. brief = "Min. Message Size",
  170. description = "Used to maintain BOOTP compatibility of outgoing messages. "..
  171. "Default is 300 octets.",
  172. flavor = "booldata",
  173. file = "include/cfg/dhcp.h"
  174. },
  175. {
  176. macro = "MAX_DHCP_MSGSIZE",
  177. brief = "Max. Message Size",
  178. description = "RFC 2131 demands, that a DHCP client must be prepared to receive DHCP "..
  179. "messages with an options field length of at least 312 octets. This "..
  180. "implies that we must be able to accept messages of up to 576 octets (default)",
  181. flavor = "booldata",
  182. file = "include/cfg/dhcp.h"
  183. },
  184. {
  185. macro = "MAX_DHCP_BUFSIZE",
  186. brief = "UDP Buffer Size",
  187. description = "By default this value is set to 1728 and allows the client to concurrently "..
  188. "receive offers from up to 3 DHCP servers. Setting this value to zero will "..
  189. "save some heap space by disabling UDP buffering. This is fine for networks "..
  190. "with a single DHCP server.",
  191. flavor = "booldata",
  192. file = "include/cfg/dhcp.h"
  193. },
  194. {
  195. macro = "MIN_DHCP_WAIT",
  196. brief = "Min. Wait Time",
  197. description = "The client will wait this number of milliseconds (default is 4000) before "..
  198. "resending a request. The timeout is doubled on each retry up to the "..
  199. "number of milliseconds specified by MAX_DHCP_WAIT.",
  200. flavor = "booldata",
  201. file = "include/cfg/dhcp.h"
  202. },
  203. {
  204. macro = "MAX_DHCP_WAIT",
  205. brief = "Max. Wait Time",
  206. description = "With each retry the client will double the number of milliseconds to wait "..
  207. "for a response from the server. However, the maximum time can be limited "..
  208. "by this item, which defaults to 64000.",
  209. flavor = "booldata",
  210. file = "include/cfg/dhcp.h"
  211. },
  212. {
  213. macro = "MAX_DCHP_RETRIES",
  214. brief = "Max. Request Retries",
  215. description = "The client will give up after resending this number of requests without "..
  216. "receiving a response from the server. Default is 3.",
  217. flavor = "booldata",
  218. file = "include/cfg/dhcp.h"
  219. },
  220. {
  221. macro = "MAX_DCHP_RELEASE_RETRIES",
  222. brief = "Max. Release Retries",
  223. description = "RFC 2131 doesn't specify a server response to release messages from "..
  224. "the client. If the message gets lost, then the lease isn't released. "..
  225. "Setting a value greater than zero (default) will cause the client "..
  226. "to resend a release message for the given number of times or until "..
  227. "the server sends a response.",
  228. flavor = "booldata",
  229. file = "include/cfg/dhcp.h"
  230. },
  231. {
  232. macro = "DHCP_DEFAULT_LEASE",
  233. brief = "Default Lease",
  234. description = "If the server doesn't provide a maximum lease time, the client "..
  235. "uses the number of seconds given by this value. Default is 43200.",
  236. flavor = "booldata",
  237. file = "include/cfg/dhcp.h"
  238. },
  239. {
  240. macro = "NUT_THREAD_DHCPSTACK",
  241. brief = "Client Thread Stack",
  242. description = "Number of bytes to be allocated for the stack of the DHCP client thread.\n\n"..
  243. "For ARM CPUs GCC uses about 280 bytes for size optimized code.",
  244. flavor = "booldata",
  245. file = "include/cfg/dhcp.h"
  246. },
  247. }
  248. },
  249. {
  250. name = "nutpro_ssdp",
  251. brief = "SSDP",
  252. description = "Service discovery protocol.",
  253. requires = { "PRO_HTTPU" },
  254. provides = { "PRO_SSDP" },
  255. sources =
  256. {
  257. "ssdp.c",
  258. "ssdpc.c",
  259. "ssdpd.c"
  260. }
  261. },
  262. {
  263. name = "nutpro_upnp",
  264. brief = "UPnP",
  265. description = "Universal Plug and Play.",
  266. requires = { "PRO_SSDP" },
  267. provides = { "PRO_UPNP" },
  268. sources =
  269. {
  270. "upnp.c",
  271. "upnp_ctrl.c",
  272. "upnp_dev.c"
  273. }
  274. },
  275. {
  276. name = "nutpro_resolv",
  277. brief = "DNS Client API",
  278. requires = { "NET_UDP" },
  279. provides = { "PRO_DNS" },
  280. sources =
  281. {
  282. "confdns.c",
  283. "resolv.c"
  284. }
  285. },
  286. {
  287. name = "nutpro_uri",
  288. brief = "URI Functions",
  289. description = "Convenience functions to split URI into its components.",
  290. provides = { "PRO_URI" },
  291. sources = { "uri.c" }
  292. },
  293. {
  294. name = "nutpro_tcphost",
  295. brief = "TCP Host API",
  296. description = "TCP convenience functions.",
  297. requires = { "NET_TCP", "PRO_DNS" },
  298. provides = { "PRO_TCPHOST" },
  299. sources = { "tcphost.c" }
  300. },
  301. {
  302. name = "nutpro_ftpd",
  303. brief = "FTP Server API",
  304. description = "File transfer protocol server.",
  305. requires =
  306. {
  307. "NET_TCP",
  308. "NET_UDP",
  309. "CRT_STREAM_READ",
  310. "CRT_STREAM_WRITE",
  311. "NUT_FS_DIR",
  312. "NUT_FS_READ",
  313. "NUT_FS_WRITE"
  314. },
  315. sources = { "ftpd.c" }
  316. },
  317. {
  318. name = "nutpro_pop3",
  319. brief = "POP3 Client API",
  320. description = "Provides email retrieval via POP3.",
  321. requires = { "NET_TCP", "CRT_STREAM_READ" },
  322. sources =
  323. {
  324. "pop3c.c"
  325. },
  326. options =
  327. {
  328. {
  329. macro = "POP3_BUFSIZ",
  330. brief = "Size of the POP3 line buffer",
  331. type = "integer",
  332. default = "256",
  333. file = "include/cfg/pop3.h"
  334. }
  335. }
  336. },
  337. {
  338. name = "nutpro_smtp",
  339. brief = "SMTP Client API",
  340. description = "Provides email transfer via SMTP.",
  341. requires = { "NET_TCP", "CRT_STREAM_READ" },
  342. sources =
  343. {
  344. "smtpc.c"
  345. },
  346. options =
  347. {
  348. {
  349. macro = "MAX_MAIL_RCPTS",
  350. brief = "Max. Number of Recipients",
  351. description = "Maximum number of recipients for a single email envelope.",
  352. type = "integer",
  353. default = "4",
  354. file = "include/cfg/smtp.h"
  355. },
  356. {
  357. macro = "SMTP_BUFSIZ",
  358. brief = "Size of the SMTP Buffer",
  359. type = "integer",
  360. default = "256",
  361. file = "include/cfg/smtp.h"
  362. }
  363. }
  364. },
  365. {
  366. name = "nutpro_uhttp",
  367. brief = "uHTTP API",
  368. description = "Micro HTTP library.",
  369. requires = { "NET_TCP", "CRT_STREAM_READ", "NUT_FS", "NUT_FS_READ" },
  370. provides = { "PRO_UHTTP" },
  371. sources =
  372. {
  373. "uhttp/uhttpd.c",
  374. "uhttp/envinit.c",
  375. "uhttp/envreg.c",
  376. "uhttp/envvars.c",
  377. "uhttp/mediatypes.c",
  378. "uhttp/mtinit.c",
  379. "uhttp/mtreg.c",
  380. "uhttp/responses.c",
  381. "uhttp/utils.c",
  382. "uhttp/modules/mod_auth_basic.c",
  383. "uhttp/modules/mod_cgi_func.c",
  384. "uhttp/modules/mod_redir.c",
  385. "uhttp/modules/mod_ssi.c",
  386. "uhttp/os/nut/streamio.c",
  387. },
  388. options =
  389. {
  390. {
  391. macro = "HTTP_PLATFORM_STREAMS",
  392. brief = "Platform Streams",
  393. description = "By default, TCP sockets are mapped to stdio streams. "..
  394. "This allows to use stdio calls like fprintf for "..
  395. "HTTP communication. When this option is enabled, then "..
  396. "the platform-specific socket API is used instead, which "..
  397. "provides better performance. Disadvantages are, that "..
  398. "more memory is required and that applications must use "..
  399. "less portable stdio replacements like s_printf.",
  400. flavor = "boolean",
  401. file = "include/cfg/http.h"
  402. },
  403. {
  404. macro = "HTTP_MEDIATYPE_BMP",
  405. brief = "Default BMP Handler",
  406. description = "If enabled, files with extension .bmp will be handled by default.",
  407. flavor = "boolean",
  408. file = "include/cfg/http.h"
  409. },
  410. {
  411. macro = "HTTP_MEDIATYPE_CSS",
  412. brief = "Default CSS Handler",
  413. description = "If enabled, files with extension .css will be handled by default.",
  414. flavor = "boolean",
  415. file = "include/cfg/http.h"
  416. },
  417. {
  418. macro = "HTTP_MEDIATYPE_GIF",
  419. brief = "Default GIF Handler",
  420. description = "If enabled, files with extension .gif will be handled by default.",
  421. flavor = "boolean",
  422. file = "include/cfg/http.h"
  423. },
  424. {
  425. macro = "HTTP_MEDIATYPE_HTM",
  426. brief = "Default HTM Handler",
  427. description = "If enabled, files with extension .htm will be handled by default.",
  428. flavor = "boolean",
  429. file = "include/cfg/http.h"
  430. },
  431. {
  432. macro = "HTTP_MEDIATYPE_JAR",
  433. brief = "Default JAR Handler",
  434. description = "If enabled, files with extension .jar will be handled by default.",
  435. flavor = "boolean",
  436. file = "include/cfg/http.h"
  437. },
  438. {
  439. macro = "HTTP_MEDIATYPE_JS",
  440. brief = "Default JS Handler",
  441. description = "If enabled, files with extension .js will be handled by default.",
  442. flavor = "boolean",
  443. file = "include/cfg/http.h"
  444. },
  445. {
  446. macro = "HTTP_MEDIATYPE_JPG",
  447. brief = "Default JPG Handler",
  448. description = "If enabled, files with extension .jpg will be handled by default.",
  449. flavor = "boolean",
  450. file = "include/cfg/http.h"
  451. },
  452. {
  453. macro = "HTTP_MEDIATYPE_PDF",
  454. brief = "Default PDF Handler",
  455. description = "If enabled, files with extension .pdf will be handled by default.",
  456. flavor = "boolean",
  457. file = "include/cfg/http.h"
  458. },
  459. {
  460. macro = "HTTP_MEDIATYPE_SHTML",
  461. brief = "Default SHTML Handler",
  462. description = "If enabled, files with extension .shtml will be handled by default.",
  463. flavor = "boolean",
  464. file = "include/cfg/http.h"
  465. },
  466. {
  467. macro = "HTTP_MEDIATYPE_SVG",
  468. brief = "Default SVG Handler",
  469. description = "If enabled, files with extension .svg will be handled by default.",
  470. flavor = "boolean",
  471. file = "include/cfg/http.h"
  472. },
  473. {
  474. macro = "HTTP_MEDIATYPE_XML",
  475. brief = "Default XML Handler",
  476. description = "If enabled, files with extension .xml will be handled by default.",
  477. flavor = "boolean",
  478. file = "include/cfg/http.h"
  479. }
  480. }
  481. },
  482. {
  483. name = "nutpro_httpd",
  484. brief = "HTTP Server API",
  485. description = "Webserver helper routines. Provides simple authorization "..
  486. "and registration of C functions as CGI routines",
  487. requires = { "NET_TCP", "CRT_STREAM_READ", "NUT_FS", "NUT_FS_READ" },
  488. sources =
  489. {
  490. "auth.c",
  491. "cgi.c",
  492. "dencode.c",
  493. "discover.c",
  494. "httpd.c",
  495. "httpd_p.c",
  496. "httpopt.c",
  497. "asp.c",
  498. "ssi.c",
  499. "rfctime.c"
  500. },
  501. options =
  502. {
  503. {
  504. macro = "HTTP_MAJOR_VERSION",
  505. brief = "Major Version",
  506. description = "The major HTTP version number reported to the client.",
  507. type = "integer",
  508. default = "1",
  509. file = "include/cfg/http.h"
  510. },
  511. {
  512. macro = "HTTP_MINOR_VERSION",
  513. brief = "Minor Version",
  514. description = "The minor HTTP version number reported to the client.",
  515. type = "integer",
  516. default = "1",
  517. file = "include/cfg/http.h"
  518. },
  519. {
  520. macro = "HTTP_DEFAULT_ROOT",
  521. brief = "Default Root Directory",
  522. description = 'The default root directory used by the server to locate '..
  523. 'requested files. The value must be enclosed in double quotes. '..
  524. 'Applications typically override this by calling '..
  525. 'NutRegisterHttpRoot.\n\n',
  526. default = '"UROM:"',
  527. file = "include/cfg/http.h"
  528. },
  529. {
  530. macro = "HTTP_MAX_REQUEST_SIZE",
  531. brief = "Max. Request Line Size",
  532. description = "HTTP request beyond this length will be discarded.",
  533. type = "integer",
  534. default = "256",
  535. file = "include/cfg/http.h"
  536. },
  537. {
  538. macro = "HTTP_FILE_CHUNK_SIZE",
  539. brief = "Chunk Size",
  540. description = "The number of bytes to be used for the file read buffer. "..
  541. "Reducing this value will save RAM, but degrade performance.",
  542. type = "integer",
  543. default = "512",
  544. file = "include/cfg/http.h"
  545. },
  546. {
  547. macro = "HTTP_KEEP_ALIVE_REQ",
  548. brief = "Max. Requests per Connection",
  549. description = "The server will close a connection after the specified "..
  550. "number of requests. Zero by default, which completely disables "..
  551. "the HTTP keepalive function.\n\n"..
  552. "Enabling keepalive will significantly increase the performance. "..
  553. "However, browsers may not properly close keepalive connections. "..
  554. "Thus, it is required to enable socket receive timeouts.",
  555. type = "integer",
  556. default = "0",
  557. file = "include/cfg/http.h"
  558. },
  559. {
  560. macro = "HTTPD_EXCLUDE_DATE",
  561. brief = "Exclude Date Information",
  562. description = "By default, the server includes file date information "..
  563. "in the response header. This may not always make sense "..
  564. "and some memory can be saved by enabling this option.",
  565. flavor = "boolean",
  566. file = "include/cfg/http.h"
  567. }
  568. }
  569. },
  570. {
  571. name = "nutpro_httpu",
  572. brief = "HTTPU API",
  573. description = "HTTPU is an extension of HTTP, using UDP instead of TCP as the "..
  574. "data transport. It's used by the UPnP implementation.",
  575. requires = { "NET_UDP" },
  576. provides = { "PRO_HTTPU" },
  577. sources = { "httpu.c" },
  578. options =
  579. {
  580. {
  581. macro = "HTTPU_MAX_DATAGRAM_SIZE",
  582. brief = "Max. Datagram Size",
  583. description = "For each session a total number of 4 datagram buffers are "..
  584. "allocated from the heap.",
  585. type = "integer",
  586. default = "508",
  587. file = "include/cfg/http.h"
  588. },
  589. {
  590. macro = "HTTPU_MAX_HEADER_LINES",
  591. brief = "Max. Header Lines",
  592. description = "Maximum number of received header lines.",
  593. type = "integer",
  594. default = "16",
  595. file = "include/cfg/http.h"
  596. }
  597. }
  598. },
  599. {
  600. name = "nutpro_soap",
  601. brief = "SOAP Remote Call API",
  602. requires = { "PRO_UHTTP" },
  603. provides = { "PRO_SOAP" },
  604. sources = {
  605. "soapc.c",
  606. "soapd.c",
  607. "soap.c"
  608. },
  609. options =
  610. {
  611. {
  612. macro = "SOAP_MAX_TAG_SIZE",
  613. brief = "Max. Tag Size",
  614. type = "integer",
  615. default = "128",
  616. file = "include/cfg/http.h"
  617. },
  618. {
  619. macro = "SOAP_MAX_TAG_ATTRIBUTES",
  620. brief = "Max. Number of Attributes",
  621. type = "integer",
  622. default = "8",
  623. file = "include/cfg/http.h"
  624. }
  625. }
  626. },
  627. {
  628. name = "nutpro_snmp",
  629. brief = "SNMP",
  630. description = "Simple network management protocol.",
  631. sources =
  632. {
  633. "snmp.c",
  634. "snmp_api.c",
  635. "snmp_auth.c",
  636. "snmp_config.c",
  637. "snmp_mib.c",
  638. "snmp_pdu.c",
  639. "asn1.c"
  640. }
  641. },
  642. {
  643. name = "nutpro_snmp_udp",
  644. brief = "SNMP Agent",
  645. description = "SNMP agent module.",
  646. requires = { "NET_UDP" },
  647. sources =
  648. {
  649. "snmp_agent.c",
  650. "snmp_session.c"
  651. }
  652. },
  653. {
  654. name = "nutpro_sntp",
  655. brief = "SNTP Client API",
  656. description = "Simple network time protocol.",
  657. requires = { "NET_UDP" },
  658. provides = { "PRO_SNTP" },
  659. sources = { "sntp.c" },
  660. options =
  661. {
  662. {
  663. macro = "NUT_THREAD_SNTPSTACK",
  664. brief = "Client Thread Stack",
  665. description = "Number of bytes to be allocated for the stack of the SNTP client thread.",
  666. flavor = "booldata",
  667. file = "include/cfg/sntp.h"
  668. }
  669. }
  670. },
  671. {
  672. name = "nutpro_smtpc",
  673. brief = "SMTP Client API",
  674. description = "Simple mail transfer protocol. Not implemented.",
  675. requires =
  676. {
  677. "NOT_AVAILABLE",
  678. "NET_TCP",
  679. "CRT_STREAM_READ",
  680. "CRT_STREAM_WRITE"
  681. }
  682. },
  683. {
  684. name = "nutpro_syslog",
  685. brief = "Syslog Client API",
  686. description = "Logs system and debug information to a remote server.",
  687. requires = { "PRO_SNTP", "NET_UDP" },
  688. sources = { "syslog.c", "syslog_P.c" },
  689. options =
  690. {
  691. {
  692. macro = "SYSLOG_PERROR_ONLY",
  693. brief = "Disable Network",
  694. description = "If set, syslog will not support network transfers.\n\n"..
  695. "This option will significantly decrease memory usage. "..
  696. "The application should call openlog() with option "..
  697. "LOG_PERROR to redirect all syslog messages to stderr. "..
  698. "This requires that stderr had been opened.",
  699. flavor = "boolean",
  700. file = "include/cfg/syslog.h"
  701. },
  702. {
  703. macro = "SYSLOG_PORT",
  704. brief = "Default Port",
  705. description = "Default UDP port for sending syslog messages.\n\n"..
  706. "The application may override this value when calling "..
  707. "setlogserver().",
  708. default = "514",
  709. flavor = "integer",
  710. file = "include/cfg/syslog.h"
  711. },
  712. {
  713. macro = "SYSLOG_MAXBUF",
  714. brief = "Output buffer size",
  715. description = "This is a critical value. If set too low, then "..
  716. "syslog may crash with long messages.",
  717. default = 256,
  718. flavor = "integer",
  719. file = "include/cfg/syslog.h"
  720. },
  721. {
  722. macro = "SYSLOG_RFC5424",
  723. brief = "RFC5424 Headers",
  724. description = "Set this option to activate RFC5424 compatible message headers.\n\n"..
  725. "By default, the syslog client sends BSD-like messages, which are "..
  726. "not well defined.",
  727. flavor = "boolean",
  728. file = "include/cfg/syslog.h"
  729. },
  730. {
  731. macro = "SYSLOG_OMIT_TIMESTAMP",
  732. brief = "Disable Timestamp",
  733. description = "Set this option to exclude timestamps from syslog messages.",
  734. flavor = "boolean",
  735. file = "include/cfg/syslog.h"
  736. },
  737. {
  738. macro = "SYSLOG_OMIT_HOSTNAME",
  739. brief = "Disable Hostname",
  740. description = "Set this option to exclude the hostname from syslog messages.",
  741. flavor = "boolean",
  742. file = "include/cfg/syslog.h"
  743. },
  744. }
  745. },
  746. {
  747. name = "nutpro_wins",
  748. brief = "NetBIOS WINS Responder",
  749. description = "Netbios WINS (RFC 1002) Name Query Response.\n\n"..
  750. "Only query request client routine sending/positive name query response "..
  751. "receiving is implemented.\n\n"..
  752. "When the NetBIOS name query request UDP datagram is on the ethernet "..
  753. "network, asking 'Who is name?', NutWinsNameQuery answers with the "..
  754. "specified 'ipaddr' Ethernut IP address.",
  755. requires = { "NET_UDP" },
  756. sources = { "wins.c" }
  757. },
  758. {
  759. name = "nutpro_uxml",
  760. brief = "XML Stream Parser",
  761. description = "Quite limited parser. See API documentation.",
  762. sources = { "uxmlparse.c", "uxmlstream.c", "uxmltree.c" }
  763. }
  764. }