Lines Matching refs:ctx

114 CloseConnection(struct thread_context *ctx, int sockid, struct server_vars *sv)  in CloseConnection()  argument
116 mtcp_epoll_ctl(ctx->mctx, ctx->ep, MOS_EPOLL_CTL_DEL, sockid, NULL); in CloseConnection()
117 mtcp_close(ctx->mctx, sockid); in CloseConnection()
121 SendUntilAvailable(struct thread_context *ctx, int sockid, struct server_vars *sv) in SendUntilAvailable() argument
138 ret = mtcp_write(ctx->mctx, sockid, in SendUntilAvailable()
161 mtcp_epoll_ctl(ctx->mctx, ctx->ep, MOS_EPOLL_CTL_MOD, sockid, &ev); in SendUntilAvailable()
166 CloseConnection(ctx, sockid, sv); in SendUntilAvailable()
174 HandleReadEvent(struct thread_context *ctx, int sockid, struct server_vars *sv) in HandleReadEvent() argument
190 rd = mtcp_read(ctx->mctx, sockid, buf, HTTP_HEADER_LEN); in HandleReadEvent()
250 sent = mtcp_write(ctx->mctx, sockid, response, len); in HandleReadEvent()
254 CloseConnection(ctx, sockid, sv); in HandleReadEvent()
263 mtcp_epoll_ctl(ctx->mctx, ctx->ep, MOS_EPOLL_CTL_MOD, sockid, &ev); in HandleReadEvent()
265 SendUntilAvailable(ctx, sockid, sv); in HandleReadEvent()
271 AcceptConnection(struct thread_context *ctx, int listener) in AcceptConnection() argument
273 mctx_t mctx = ctx->mctx; in AcceptConnection()
286 sv = &ctx->svars[c]; in AcceptConnection()
291 mtcp_setsock_nonblock(ctx->mctx, c); in AcceptConnection()
292 mtcp_epoll_ctl(mctx, ctx->ep, MOS_EPOLL_CTL_ADD, c, &ev); in AcceptConnection()
306 CreateListeningSocket(struct thread_context *ctx) in CreateListeningSocket() argument
314 listener = mtcp_socket(ctx->mctx, AF_INET, SOCK_STREAM, 0); in CreateListeningSocket()
319 ret = mtcp_setsock_nonblock(ctx->mctx, listener); in CreateListeningSocket()
329 ret = mtcp_bind(ctx->mctx, listener, in CreateListeningSocket()
337 ret = mtcp_listen(ctx->mctx, listener, 4096); in CreateListeningSocket()
346 mtcp_epoll_ctl(ctx->mctx, ctx->ep, MOS_EPOLL_CTL_ADD, listener, &ev); in CreateListeningSocket()
435 struct thread_context *ctx; in InitServer() local
437 ctx = (struct thread_context *)calloc(1, sizeof(struct thread_context)); in InitServer()
438 if (!ctx) { in InitServer()
443 ctx->mctx = mctx; in InitServer()
446 ctx->ep = mtcp_epoll_create(mctx, MAX_EVENTS); in InitServer()
447 if (ctx->ep < 0) { in InitServer()
453 ctx->svars = (struct server_vars *) in InitServer()
455 if (!ctx->svars) { in InitServer()
460 ctx->listener = CreateListeningSocket(ctx); in InitServer()
461 if (ctx->listener < 0) { in InitServer()
466 *app_ctx = (void *)ctx; in InitServer()
474 struct thread_context *ctx = (*app_ctx); in RunServer() local
480 assert(ctx); in RunServer()
481 int ep = ctx->ep; in RunServer()
501 if (events[i].data.sock == ctx->listener) { in RunServer()
523 CloseConnection(ctx, events[i].data.sock, in RunServer()
524 &ctx->svars[events[i].data.sock]); in RunServer()
527 ret = HandleReadEvent(ctx, events[i].data.sock, in RunServer()
528 &ctx->svars[events[i].data.sock]); in RunServer()
532 CloseConnection(ctx, events[i].data.sock, in RunServer()
533 &ctx->svars[events[i].data.sock]); in RunServer()
537 CloseConnection(ctx, events[i].data.sock, in RunServer()
538 &ctx->svars[events[i].data.sock]); in RunServer()
543 struct server_vars *sv = &ctx->svars[events[i].data.sock]; in RunServer()
545 SendUntilAvailable(ctx, events[i].data.sock, sv); in RunServer()
559 ret = AcceptConnection(ctx, ctx->listener); in RunServer()