void BKE_frameserver_end(void)
{
	if (connsock != -1) {
		closesocket(connsock);
		connsock = -1;
	}
	closesocket(sock);
	shutdown_socket_system();
}
Esempio n. 2
0
int BKE_frameserver_start(void *context_v, struct Scene *scene, RenderData *UNUSED(rd), int rectx, int recty, ReportList *reports, bool UNUSED(preview), const char *UNUSED(suffix))
{
    struct sockaddr_in addr;
    int arg = 1;
    FrameserverContext *context = context_v;

    (void)scene; /* unused */

    if (!startup_socket_system()) {
        BKE_report(reports, RPT_ERROR, "Cannot startup socket system");
        return 0;
    }

    if ((context->sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
        shutdown_socket_system();
        BKE_report(reports, RPT_ERROR, "Cannot open socket");
        return 0;
    }

    setsockopt(context->sock, SOL_SOCKET, SO_REUSEADDR, (char *) &arg, sizeof(arg));

    addr.sin_family = AF_INET;
    addr.sin_port = htons(U.frameserverport);
    addr.sin_addr.s_addr = INADDR_ANY;

    if (bind(context->sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
        shutdown_socket_system();
        BKE_report(reports, RPT_ERROR, "Cannot bind to socket");
        return 0;
    }

    if (listen(context->sock, SOMAXCONN) < 0) {
        shutdown_socket_system();
        BKE_report(reports, RPT_ERROR, "Cannot establish listen backlog");
        return 0;
    }
    context->connsock = -1;

    context->render_width = rectx;
    context->render_height = recty;

    return 1;
}
Esempio n. 3
0
void BKE_frameserver_end(void *context_v)
{
    FrameserverContext *context = context_v;

    if (context->connsock != -1) {
        closesocket(context->connsock);
        context->connsock = -1;
    }
    closesocket(context->sock);
    shutdown_socket_system();
}