session.h revision 137019
1137019Sdes/* $OpenBSD: session.h,v 1.23 2004/07/17 05:31:41 dtucker Exp $ */ 276259Sgreen 365668Skris/* 492555Sdes * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. 565668Skris * 665668Skris * Redistribution and use in source and binary forms, with or without 765668Skris * modification, are permitted provided that the following conditions 865668Skris * are met: 965668Skris * 1. Redistributions of source code must retain the above copyright 1065668Skris * notice, this list of conditions and the following disclaimer. 1165668Skris * 2. Redistributions in binary form must reproduce the above copyright 1265668Skris * notice, this list of conditions and the following disclaimer in the 1365668Skris * documentation and/or other materials provided with the distribution. 1465668Skris * 1565668Skris * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1665668Skris * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1765668Skris * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1865668Skris * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 1965668Skris * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2065668Skris * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2165668Skris * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2265668Skris * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2365668Skris * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2465668Skris * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2565668Skris */ 2660573Skris#ifndef SESSION_H 2760573Skris#define SESSION_H 2860573Skris 2998675Sdes#define TTYSZ 64 3098675Sdestypedef struct Session Session; 3198675Sdesstruct Session { 3298675Sdes int used; 3398675Sdes int self; 3498675Sdes struct passwd *pw; 3598675Sdes Authctxt *authctxt; 3698675Sdes pid_t pid; 3798675Sdes /* tty */ 3898675Sdes char *term; 3998675Sdes int ptyfd, ttyfd, ptymaster; 4099063Sdes u_int row, col, xpixel, ypixel; 4198675Sdes char tty[TTYSZ]; 4298675Sdes /* X11 */ 4399063Sdes u_int display_number; 4498675Sdes char *display; 4599063Sdes u_int screen; 4698675Sdes char *auth_display; 4798675Sdes char *auth_proto; 4898675Sdes char *auth_data; 4998675Sdes int single_connection; 5098675Sdes /* proto 2 */ 5198675Sdes int chanid; 5298675Sdes int is_subsystem; 53137019Sdes int num_env; 54137019Sdes struct { 55137019Sdes char *name; 56137019Sdes char *val; 57137019Sdes } *env; 5898675Sdes}; 5998675Sdes 6092555Sdesvoid do_authenticated(Authctxt *); 61126277Sdesvoid do_cleanup(Authctxt *); 6260573Skris 63106130Sdesint session_open(Authctxt *, int); 6492555Sdesint session_input_channel_req(Channel *, const char *); 6592555Sdesvoid session_close_by_pid(pid_t, int); 6692555Sdesvoid session_close_by_channel(int, void *); 6798675Sdesvoid session_destroy_all(void (*)(Session *)); 68126277Sdesvoid session_pty_cleanup2(Session *); 6960573Skris 7098675SdesSession *session_new(void); 7198675SdesSession *session_by_tty(char *); 7298675Sdesvoid session_close(Session *); 7398941Sdesvoid do_setusercontext(struct passwd *); 74124211Sdesvoid child_set_env(char ***envp, u_int *envsizep, const char *name, 75124211Sdes const char *value); 76124211Sdes 7760573Skris#endif 78