* should be interrupt-safe * notice the change in callback conventions * new mime module replacing old code module (faster, more functionality) * new socket options (many) * only allocate in case of success * optimize for success (only call select if fails) * add proxy support to http * add gethostname * local connect * connect with timeout * change code to mime * change stay to redirect * add shutdown * change send/recv to avoid using select * O location do "redirect" pode ser relativo ao servidor atual (não pode, mas os servidores fazem merda...) * Ajeitar para Lua 5.0 * Padronizar os retornos de funccao * Separar as classes em arquivos * Retorno de sendto em datagram sockets pode ser refused change mime.eol to output marker on detection of first candidate, instead of on the second. that way it works in one pass for strings that end with one candidate. colocar um userdata com gc metamethod pra chamar sock_close (WSAClose); sources ans sinks are always simple in http and ftp and smtp unify backbone of smtp and ftp expose encode/decode tables to provide extensibility for mime module use coroutines instead of fancy filters unify filter and send/receive callback. new sink/source/pump idea. get rid of aux_optlstring wrap sink and sources with a function that performs the replacement get rid of unpack in mime.lua check garbage collection in test*.lua pop3??? break chain into a simpler binary chain and a complex (recursive) one. add socket.TIMEOUT to be default timeout? manual add socket.connect and socket.bind to the manual say what a nil callback does for http check all occurences of it's - add shutdown - add gethostname the need of a content-length header in the post method... notice the change in callback conventions the callback.lua module and the new mime module. escape and unescape in url, not in code! add timeout and proxy to request table change stay to redirect socket.time and socket.sleep - connect with timeout local connect add thanks to 'carlos cassino' and 'david burgess' add new ip- options and reuseaddr option - add listen to manual bind method doesn't do listen anymore bind doesn't turn an object into a server object: listen does. tests checar todos os metodos checar todas as globais checar garbage collection check for interrupts wrp can't break lines in the middle of a line break. call select before accept, not after, dumbass! get rid of setnonblocking/setblocking in the bind function close has to block... fmt is not a good name change wrap() to accept a number and default to "character" move gethostname to dns table get rid of _cb in name of functions? trust character constants in mime.c? noooooo. smtp.lua needs stuff filter add comments into each C module. new option.c module to put all options (TCP and UDP share...)? testar os options! add _tostring methods! change all modules to use the new namespace scheme write some utilities that use the code.lua module and put them in etc, modify the README.etc file and makefile.dist (eol.lua is done) use gethostname it in SMTP make sure modules know if their dependencies are there. Read about 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH GSSAPI 250-DELIVERBY 250 HELP Change return of send and receive callbacks to allow for new functions. "" signals end of transmission. Pass total number of bytes in request table for HTTP. Callback has nothing to do with it. Make sure nobody can fuck up with the metatables... Create a passive mode option for the FTP (good for firewall). Modules should return their namespace table in the end of the chunk. Adjust dates in all files Test the library on every system possible Add service name translation. Ajeitar o protocolo da luaopen_socket()... sei lá qual é. - adicionar exemplos de expansão: pipe, local, named pipe - Fazer compilar com g++ - Thread-safe - proteger get*by*.* com um mutex GLOBAL! - proteger ou atomizar o conjunto (timedout, receive), (timedout, send) - inet_ntoa também é uma merda. - SSL - unix 92 bytes maximo no endereço, incluindo o zero - unix 9216 maximo de datagram size