diff options
| author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-07-26 04:04:04 +0000 |
|---|---|---|
| committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-07-26 04:04:04 +0000 |
| commit | d914007507a6a4ad3489cca19652af403fef7074 (patch) | |
| tree | 71f83f3ce04c5c7852c0571d3f9fe0188c920784 | |
| parent | cd994f306a67ea7b9ee0ba810d985114e097dd77 (diff) | |
| download | luasocket-d914007507a6a4ad3489cca19652af403fef7074.tar.gz luasocket-d914007507a6a4ad3489cca19652af403fef7074.tar.bz2 luasocket-d914007507a6a4ad3489cca19652af403fef7074.zip | |
Almost ready for beta2.
| -rw-r--r-- | doc/index.html | 144 | ||||
| -rw-r--r-- | doc/socket.html | 4 | ||||
| -rw-r--r-- | doc/tcp.html | 27 |
3 files changed, 59 insertions, 116 deletions
diff --git a/doc/index.html b/doc/index.html index abba703..8eaa37a 100644 --- a/doc/index.html +++ b/doc/index.html | |||
| @@ -88,7 +88,7 @@ Author: <A href="http://www.cs.princeton.edu/~diego">Diego Nehab</a> | |||
| 88 | <h2 id=download>Download</h2> | 88 | <h2 id=download>Download</h2> |
| 89 | 89 | ||
| 90 | <p> | 90 | <p> |
| 91 | LuaSocket version 2.0 beta is now available for download! It is | 91 | LuaSocket version 2.0 beta2 is now available for download! It is |
| 92 | compatible with Lua 5.0 and has been tested on | 92 | compatible with Lua 5.0 and has been tested on |
| 93 | Windows XP, Linux, and Mac OS X. | 93 | Windows XP, Linux, and Mac OS X. |
| 94 | </p> | 94 | </p> |
| @@ -99,8 +99,8 @@ The library can be downloaded in source code from the following links: | |||
| 99 | 99 | ||
| 100 | <blockquote> | 100 | <blockquote> |
| 101 | <p> | 101 | <p> |
| 102 | <a href="luasocket-2.0-beta.tar.gz">luasocket-2.0-beta.tar.gz</a> <br> | 102 | <a href="luasocket-2.0-beta2.tar.gz">luasocket-2.0-beta2.tar.gz</a> <br> |
| 103 | <a href="luasocket-2.0-beta.zip">luasocket-2.0-beta.zip</a> | 103 | <a href="luasocket-2.0-beta2.zip">luasocket-2.0-beta2.zip</a> |
| 104 | </p> | 104 | </p> |
| 105 | </blockquote> | 105 | </blockquote> |
| 106 | 106 | ||
| @@ -116,7 +116,7 @@ LuaSocket a quick try: | |||
| 116 | 116 | ||
| 117 | <blockquote> | 117 | <blockquote> |
| 118 | <p> | 118 | <p> |
| 119 | <a href="luasocket-2.0-beta-win32.zip">luasocket-2.0-beta-win32.zip</a> | 119 | <a href="luasocket-2.0-beta2-win32.zip">luasocket-2.0-beta2-win32.zip</a> |
| 120 | </p> | 120 | </p> |
| 121 | </blockquote> | 121 | </blockquote> |
| 122 | 122 | ||
| @@ -156,104 +156,43 @@ Special thanks go to | |||
| 156 | David Burgess, who has helped push the library to a new level of quality and | 156 | David Burgess, who has helped push the library to a new level of quality and |
| 157 | from whom I have learned a lot of stuff that doesn't show up in RFCs. | 157 | from whom I have learned a lot of stuff that doesn't show up in RFCs. |
| 158 | Special thanks also to Carlos Cassino, who played a big part in the | 158 | Special thanks also to Carlos Cassino, who played a big part in the |
| 159 | extensible design seen in the C core of LuaSocket 2.0. | 159 | extensible design seen in the C core of LuaSocket 2.0. Recently, Mike Pall |
| 160 | has been helping a lot too! Thanks to you all! | ||
| 160 | </p> | 161 | </p> |
| 161 | 162 | ||
| 162 | <!-- whatsnew +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> | 163 | <!-- whatsnew +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
| 163 | 164 | ||
| 164 | <h2 id=new>What's New</h2> | 165 | <h2 id=new>What's New</h2> |
| 165 | 166 | ||
| 166 | |||
| 167 | <p> | ||
| 168 | <em>Everything</em> is new! Many changes for 2.0 happened in the C layer, | ||
| 169 | which has been almost completely rewritten. The code has been ported to | ||
| 170 | Lua 5.0 and greatly improved. There have also been some API changes | ||
| 171 | that made the interface simpler and more consistent. Here are some of | ||
| 172 | the changes that made it into version 2.0: | ||
| 173 | </p> | ||
| 174 | |||
| 175 | <ul> | ||
| 176 | <li> Major C code rewrite. Code is modular and extensible. Hopefully, other | ||
| 177 | developers will be motivated to provide code for SSL, local domain | ||
| 178 | sockets, file descriptors, pipes (on Unix) and named pipes etc; | ||
| 179 | |||
| 180 | <li> Everything that is exported by the library is exported inside | ||
| 181 | namespaces. These should be obtained with calls to the | ||
| 182 | <tt>require</tt> function; | ||
| 183 | |||
| 184 | <li> Functions such as | ||
| 185 | send/receive/timeout/close etc do not exist anymore as stand-alone | ||
| 186 | functions. They are now only available as methods of the appropriate | ||
| 187 | objects; | ||
| 188 | |||
| 189 | <li> All functions return a non-nil value as first return value if successful. | ||
| 190 | All functions return <b><tt>nil</tt></b> followed by error message | ||
| 191 | in case of error. This made the library much easier to use; | ||
| 192 | |||
| 193 | <li> Greatly reduced the number of times the C select is called | ||
| 194 | during data transfers, by calling only on failure. This might | ||
| 195 | improve a lot the maximum throughput; | ||
| 196 | |||
| 197 | <li> TCP has been changed to become more uniform. It's possible to first | ||
| 198 | create a TCP object, | ||
| 199 | then connect or bind if needed, and finally use I/O functions. | ||
| 200 | <tt>socket.connect</tt> and <tt>socket.bind</tt> functions are still | ||
| 201 | provided for simplicity; | ||
| 202 | |||
| 203 | <li> This allows for setting a timeout value before connecting; | ||
| 204 | |||
| 205 | <li> And also allows binding to a local address before connecting; | ||
| 206 | |||
| 207 | <li> New <tt>socket.dns.gethostname</tt> function and <tt>shutdown</tt> | ||
| 208 | method; | ||
| 209 | |||
| 210 | <li> Better error messages and parameter checking; | ||
| 211 | |||
| 212 | <li> Should be interrupt safe; | ||
| 213 | |||
| 214 | <li> UDP connected sockets can break association with peer by calling | ||
| 215 | <tt>setpeername</tt> with address '<tt>*</tt>'; | ||
| 216 | |||
| 217 | <li> Sets returned by <tt>socket.select</tt> are associative; | ||
| 218 | |||
| 219 | <li> Select checks if sockets have buffered data and returns immediately; | ||
| 220 | |||
| 221 | <li> <tt>socket.sleep</tt> and <tt>socket.gettime</tt> are now part of the | ||
| 222 | library and are supported. They used to be available only when | ||
| 223 | LUASOCKET_DEBUG was defined, but it turns out they might be useful for | ||
| 224 | applications; | ||
| 225 | |||
| 226 | <li> <tt>socket.try</tt> and <tt>socket.protect</tt> provide a simple | ||
| 227 | interface to exceptions that proved very in the implementation of | ||
| 228 | high-level modules; | ||
| 229 | |||
| 230 | <li> Socket options interface has been improved. TCP objects also | ||
| 231 | support socket options and many new options were added. | ||
| 232 | |||
| 233 | </ul> | ||
| 234 | |||
| 235 | <p> | 167 | <p> |
| 236 | Lots of changes in the Lua modules, too! | 168 | Changes in the 2.0-beta2 were mostly bug-fixes. |
| 237 | </p> | 169 | </p> |
| 238 | 170 | ||
| 239 | <ul> | 171 | <ul> |
| 240 | <li> Every module loads only the modules that it needs. There is no waste | 172 | <li> Fixed silly last minute bugs in HTTP/SMTP that prevented them from |
| 241 | of memory. LuaSocket core takes only 20k of memory; | 173 | running; |
| 242 | 174 | <li> <tt>usocket.c</tt>/<tt>wsocket.c</tt> look nicer thanks to Mike; | |
| 243 | <li> New MIME and LTN12 modules make all other modules much more powerful; | 175 | <li> UDP has a reasonable maximum datagram size; |
| 244 | 176 | <li> <tt>Receive</tt> accepts the prefix optional argument (good for | |
| 245 | <li> Support for multipart messages in the SMTP module; | 177 | non-blocking); |
| 246 | 178 | <li> <b><tt>Send</tt> doesn't support multiple arguments anymore</b>; | |
| 247 | <li> The old callback mechanism of FTP and HTTP has been replaced with LTN12 sources and sinks, with advantage; | 179 | <li> Instead, <tt>send</tt> allows the selection of the substring |
| 248 | 180 | to be sent (good for non-blocking); | |
| 249 | <li> Common implementation for low-level FTP and SMTP; | 181 | <li> Fixed bug that caused select return tables not to be associative |
| 250 | 182 | on windows; | |
| 251 | <li> FTP, HTTP, and SMTP are implemented in multiple levels in such a way | 183 | <li> Should compiles with g++; |
| 252 | that users will have no problems extending the functionality to satisfy | 184 | <li> New sample unix domain support; |
| 253 | personal needs; | 185 | <li> New sample LPD support; |
| 254 | 186 | <li> Comprehensive error messages; | |
| 255 | <li> SMTP knows how to perform LOGIN and PLAIN authentication. | 187 | <li> New <tt>getstats</tt> and <tt>setstats</tt> methods to help throttling; |
| 256 | 188 | <li> <tt>Listen</tt> defaults to 32 backlog; | |
| 189 | <li> SMTP/FTP/HTTP fail gracefully; | ||
| 190 | <li> <tt>accept</tt>/<tt>connect</tt>/<tt>select</tt> interrupt safe | ||
| 191 | <li> Fixed bug that didn't set accepted sockets as non-blocking | ||
| 192 | <li> <b>New timming functions <tt>sleep</tt> and <tt>gettime</tt> have | ||
| 193 | higher resolution and no wrap around problems</b>; | ||
| 194 | <li> Bug fixes in the manual; | ||
| 195 | <li> Fixed bug of missing cast in <tt>getfd</tt>. | ||
| 257 | </ul> | 196 | </ul> |
| 258 | 197 | ||
| 259 | <!-- incompatible +++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> | 198 | <!-- incompatible +++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
| @@ -262,25 +201,8 @@ personal needs; | |||
| 262 | 201 | ||
| 263 | <ul> | 202 | <ul> |
| 264 | 203 | ||
| 265 | <li> The introduction of namespaces affects all programs that use LuaSocket, | 204 | <li> New <tt>send</tt> inteface doesn't send multiple arguments anymore; |
| 266 | specially code that relies on global functions. These are no longer | 205 | <li> <tt>Time</tt> is replaced by <tt>gettime</tt> with advantages. |
| 267 | available. Note that even the support modules (<tt>http</tt>, <tt>smtp</tt> | ||
| 268 | etc) are independent now and should be "<tt>require</tt>"d; | ||
| 269 | |||
| 270 | <li> FTP, SMTP and HTTP are completely new; I am sure you will | ||
| 271 | agree the new stuff is better; | ||
| 272 | |||
| 273 | <li> WARNING: The new <tt>send</tt>, <tt><b>receive</b></tt>, | ||
| 274 | <tt>sendto</tt>, <tt>setpeername</tt> and <tt>setsockname</tt>, | ||
| 275 | return convention WILL break old code; | ||
| 276 | |||
| 277 | <li> To enable local binding before connect, the <tt>bind</tt> method | ||
| 278 | does not call <tt>listen</tt> anymore. It is the new <tt>listen</tt> | ||
| 279 | method that turns a TCP object into a server object; | ||
| 280 | |||
| 281 | <li> <tt>socket.time</tt> changed to <tt>socket.gettime</tt> for uniformity; | ||
| 282 | |||
| 283 | <li> Interface to options has changed. | ||
| 284 | 206 | ||
| 285 | </ul> | 207 | </ul> |
| 286 | 208 | ||
diff --git a/doc/socket.html b/doc/socket.html index 129b134..c7525eb 100644 --- a/doc/socket.html +++ b/doc/socket.html | |||
| @@ -332,10 +332,6 @@ universe. You should subtract the values returned by this function | |||
| 332 | to get meaningful values. | 332 | to get meaningful values. |
| 333 | </p> | 333 | </p> |
| 334 | 334 | ||
| 335 | <p class=return> | ||
| 336 | The function returns the time as a number. | ||
| 337 | </p> | ||
| 338 | |||
| 339 | <pre class=example> | 335 | <pre class=example> |
| 340 | t = socket.gettime() | 336 | t = socket.gettime() |
| 341 | -- do stuff | 337 | -- do stuff |
diff --git a/doc/tcp.html b/doc/tcp.html index 30e06f4..dfc2c29 100644 --- a/doc/tcp.html +++ b/doc/tcp.html | |||
| @@ -213,10 +213,12 @@ The method returns a string with local IP address and a number with | |||
| 213 | the port. In case of error, the method returns <b><tt>nil</tt></b>. | 213 | the port. In case of error, the method returns <b><tt>nil</tt></b>. |
| 214 | </p> | 214 | </p> |
| 215 | 215 | ||
| 216 | <!-- getsockname ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> | 216 | <!-- getstats +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
| 217 | 217 | ||
| 218 | <p class=name id=getstats> | 218 | <p class=name id=getstats> |
| 219 | master:<b>getstats()</b><br> | ||
| 219 | client:<b>getstats()</b><br> | 220 | client:<b>getstats()</b><br> |
| 221 | server:<b>getstats()</b><br> | ||
| 220 | </p> | 222 | </p> |
| 221 | 223 | ||
| 222 | <p class=description> | 224 | <p class=description> |
| @@ -414,6 +416,29 @@ The method returns 1 in case of success, or <b><tt>nil</tt></b> otherwise. | |||
| 414 | Note: The descriptions above come from the man pages. | 416 | Note: The descriptions above come from the man pages. |
| 415 | </p> | 417 | </p> |
| 416 | 418 | ||
| 419 | <!-- setstats +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> | ||
| 420 | |||
| 421 | <p class=name id=setstats> | ||
| 422 | master:<b>setstats(</b>received, sent, age<b>)</b><br> | ||
| 423 | client:<b>setstats(</b>received, sent, age<b>)</b><br> | ||
| 424 | server:<b>setstats(</b>received, sent, age<b>)</b><br> | ||
| 425 | </p> | ||
| 426 | |||
| 427 | <p class=description> | ||
| 428 | Resets accounting information on the socket, useful for throttling | ||
| 429 | of bandwidth. | ||
| 430 | </p> | ||
| 431 | |||
| 432 | <p class=parameters> | ||
| 433 | <tt>Received</tt> is a number with the new number of bytes received. | ||
| 434 | <tt>Sent</tt> is a number with the new number of bytes sent. | ||
| 435 | <tt>Age</tt> is the new age in seconds</tt> | ||
| 436 | </p> | ||
| 437 | |||
| 438 | <p class=return> | ||
| 439 | The method returns 1 in case of success and <tt><b>nil</b></tt> otherwise. | ||
| 440 | </p> | ||
| 441 | |||
| 417 | <!-- settimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> | 442 | <!-- settimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
| 418 | 443 | ||
| 419 | <p class=name id=settimeout> | 444 | <p class=name id=settimeout> |
