Removed native components (now in own repositories)
[guacamole.git] / web / guacamole-common / src / main / java / net / sourceforge / guacamole / net / tunnel / Inbound.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 java.io.Reader;
24 import java.io.IOException;
25 import javax.servlet.http.HttpServletRequest;
26 import javax.servlet.http.HttpServletResponse;
27 import net.sourceforge.guacamole.net.GuacamoleServlet;
28
29 import net.sourceforge.guacamole.net.GuacamoleSession;
30
31 public class Inbound extends GuacamoleServlet {
32
33     @Override
34     protected void handleRequest(GuacamoleSession session, HttpServletRequest request, HttpServletResponse response) throws GuacamoleException {
35         
36         session.getClient().waitForAuthorization();
37
38         // Send data
39         try {
40
41             Reader input = request.getReader();
42             char[] buffer = new char[8192];
43
44             int length;
45             while ((length = input.read(buffer, 0, buffer.length)) != -1)
46                 session.getClient().write(buffer, 0, length);
47
48         }
49         catch (IOException e) {
50             throw new GuacamoleException("I/O Error sending data to server: " + e.getMessage(), e);
51         }
52         catch (GuacamoleException e) {
53             throw new GuacamoleException("Error sending data to server: " + e.getMessage(), e);
54         }
55
56     }
57
58 }
59