|
Server 0.0.1
HTTP/REST server implementation
|
00001 00023 #include "server.h" 00024 #include "logger.h" 00025 #include "stream.h" 00026 00027 void serverCloseConn(Server, unsigned int); 00028 00029 ssize_t 00030 serverWrite(Server this, unsigned int i) 00031 { 00032 int fd = (this->fds)[i].fd; 00033 ssize_t remaining; 00034 00035 if (NULL == (this->conns)[fd].worker) { 00036 loggerLog( 00037 this->logger, 00038 LOGGER_INFO, 00039 "initialization error: NULL worker"); 00040 return -1; 00041 } 00042 00043 remaining = streamWriterWrite( 00044 (this->conns)[fd].worker, 00045 (this->conns)[fd].stream); 00046 00047 switch(remaining) { 00048 case -1: 00049 serverCloseConn(this, i); 00050 break; 00051 00052 case 0: 00053 (this->fds)[i].events &= ~POLLOUT; 00054 break; 00055 00056 default: 00057 break; 00058 } 00059 00060 return remaining; 00061 } 00062 00063 // vim: set ts=4 sw=4: