1
/* Copyright (C) 2000-2004 Thomas Bopp, Thorsten Hampel, Ludger Merkens
3
* This program is free software; you can redistribute it and/or modify
4
* it under the terms of the GNU General Public License as published by
5
* the Free Software Foundation; either version 2 of the License, or
6
* (at your option) any later version.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
static object context;
40
if ( !objectp(tmp) ) {
41
werror("Failed to bind socket !\n");
44
master()->register_user((u=new(OBJ_JABBER, tmp, context)));
48
* Gets the program for the corresponding socket.
50
* @return The socket for this port.
51
* @author <a href="mailto:astra@upb.de">Thomas Bopp</a>)
53
program get_socket_program()
55
return (program)OBJ_JABBER;
58
bool port_required() { return false; }
62
int port_nr = _Server->query_config("jabber_port")+1;
66
string ip = _Server->query_config("ip");
67
if ( ! stringp(ip) || sizeof(ip)==0 ) ip = 0;
68
if ( !bind(port_nr, setup_port, ip) ) {
69
werror("Failed to bind jabber ssl port on "
70
+ (stringp(ip) ? ip+":" : "port ") + port_nr + " !\n");
73
mapping cert_map = ([ ]);
74
if ( catch ( cert_map = _Server->read_certificate() ) ) {
75
FATAL("Cannot read server certificate for JABBERS !");
78
certificates = ({ cert_map->cert });
79
random = cert_map->random;
82
context = SSL.context();
83
context->rsa = cert_map->rsa;
84
context->random = cert_map->random;
85
context->certificates = certificates;
87
MESSAGE("JABBER SSL Port registered on "
88
+ (stringp(ip) ? ip+":" : "port ") + port_nr);
92
string get_port_config()
94
return "jabbers_port";
97
string get_port_name()
104
destruct(this_object());
107
int get_port() { return _Server->query_config("jabbers_port"); }
108
string describe() { return "JabberSSL(#"+get_port()+")"; }