79aa94d40ea8ab8b353a381675ab494e25cd5128
[guacamole.git] / web / guacamole-common / src / main / java / net / sourceforge / guacamole / net / tunnel / Connect.java
1 package net.sourceforge.guacamole.net.tunnel;
2
3 /*
4  *  Guacamole - Clientless Remote Desktop
5  *  Copyright (C) 2010  Michael Jumper
6  *
7  *  This program is free software: you can redistribute it and/or modify
8  *  it under the terms of the GNU Affero General Public License as published by
9  *  the Free Software Foundation, either version 3 of the License, or
10  *  (at your option) any later version.
11  *
12  *  This program is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *  GNU Affero General Public License for more details.
16  *
17  *  You should have received a copy of the GNU Affero General Public License
18  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 import net.sourceforge.guacamole.GuacamoleException;
22
23 import javax.servlet.http.HttpServletRequest;
24 import javax.servlet.http.HttpServletResponse;
25 import net.sourceforge.guacamole.net.GuacamoleServlet;
26
27 import net.sourceforge.guacamole.net.GuacamoleSession;
28
29 public class Connect extends GuacamoleServlet {
30
31     @Override
32     protected boolean shouldCreateSession() {
33         return true;
34     }
35
36     @Override
37     protected void handleRequest(GuacamoleSession session, HttpServletRequest request, HttpServletResponse response) throws GuacamoleException {
38
39         // Disconnect if already connected
40         if (session.isConnected())
41             session.disconnect();
42
43         // Obtain new connection
44         session.connect();
45
46         // Send data
47         try {
48             char[] connect = session.getConnectMessage().toCharArray();
49             session.getClient().write(connect, 0, connect.length);
50             session.getClient().authorize();
51         }
52         catch (GuacamoleException e) {
53             throw new GuacamoleException("Error sending data to server: " + e.getMessage(), e);
54         }
55
56     }
57
58 }
59