static void openQueues(HttpConn *conn) { HttpTx *tx; HttpQueue *q, *qhead; int i; tx = conn->tx; for (i = 0; i < HTTP_MAX_QUEUE; i++) { qhead = tx->queue[i]; for (q = qhead->nextQ; q != qhead; q = q->nextQ) { if (q->open && !(q->flags & (HTTP_QUEUE_OPEN_TRIED))) { if (q->pair == 0 || !(q->pair->flags & HTTP_QUEUE_OPEN_TRIED)) { openQueue(q, tx->chunkSize); if (q->open) { q->flags |= HTTP_QUEUE_OPEN_TRIED; if (q->stage->open(q) == 0) { q->flags |= HTTP_QUEUE_OPENED; } else { if (!conn->error) { httpError(conn, HTTP_CODE_INTERNAL_SERVER_ERROR, "Cannot open stage %s", q->stage->name); } } } } } } } }
static void openQueues(HttpConn *conn) { HttpTx *tx; HttpQueue *q, *qhead; int i; tx = conn->tx; for (i = 0; i < HTTP_MAX_QUEUE; i++) { qhead = tx->queue[i]; for (q = qhead->nextQ; q != qhead; q = q->nextQ) { if (q->open && !(q->flags & (HTTP_QUEUE_OPEN))) { if (q->pair == 0 || !(q->pair->flags & HTTP_QUEUE_OPEN)) { openQueue(q, tx->chunkSize); if (q->open && !tx->finalized) { q->flags |= HTTP_QUEUE_OPEN; q->stage->open(q); } } } } } }
int initServer(char * servidor,int numPort,int longMax){ if(daemonizar(servidor)==ERROR){ printf("Error al daemonizar\n"); return ERROR; } if((socketId = openSocket())<0){ printf("Error al crear el socket\n"); exit(ERROR); } if(assignSocket(socketId,numPort)<0){ printf("Error al asignar el puerto al socket\n"); exit(ERROR); } //abrira la cola de procesos if(openQueue(socketId,longMax) !=0){ printf("Error al abrir la cola\n"); exit(ERROR); } return OK; }