You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
355 lines
13 KiB
355 lines
13 KiB
diff -Nru gateway-1.4.1.orig/gw/bb_udp.c gateway-1.4.1/gw/bb_udp.c
|
|
--- gateway-1.4.1.orig/gw/bb_udp.c 2005-02-11 17:35:48.000000000 +0200
|
|
+++ gateway-1.4.1/gw/bb_udp.c 2006-11-16 00:28:56.346802750 +0200
|
|
@@ -78,7 +78,7 @@
|
|
#include "gwlib/gwlib.h"
|
|
#include "msg.h"
|
|
#include "bearerbox.h"
|
|
-
|
|
+#include "custports.h"
|
|
/* passed from bearerbox core */
|
|
|
|
extern volatile sig_atomic_t bb_status;
|
|
@@ -352,13 +352,13 @@
|
|
while (gwlist_len(ifs) > 0) {
|
|
iface = gwlist_extract_first(ifs);
|
|
info(0, "Adding interface %s", octstr_get_cstr(iface));
|
|
- add_service(9200, octstr_get_cstr(iface)); /* wsp */
|
|
- add_service(9201, octstr_get_cstr(iface)); /* wsp/wtp */
|
|
+ add_service(port_wsp, octstr_get_cstr(iface)); /* wsp */
|
|
+ add_service(port_wtp, octstr_get_cstr(iface)); /* wsp/wtp */
|
|
|
|
#ifdef HAVE_WTLS_OPENSSL
|
|
if (allow_wtls) {
|
|
- add_service(9202, octstr_get_cstr(iface)); /* wsp/wtls */
|
|
- add_service(9203, octstr_get_cstr(iface)); /* wsp/wtp/wtls */
|
|
+ add_service(port_wsps, octstr_get_cstr(iface)); /* wsp/wtls */
|
|
+ add_service(port_wtps, octstr_get_cstr(iface)); /* wsp/wtp/wtls */
|
|
}
|
|
#else
|
|
if (allow_wtls)
|
|
diff -Nru gateway-1.4.1.orig/gw/bearerbox.c gateway-1.4.1/gw/bearerbox.c
|
|
--- gateway-1.4.1.orig/gw/bearerbox.c 2006-05-09 08:44:31.000000000 +0300
|
|
+++ gateway-1.4.1/gw/bearerbox.c 2006-11-16 00:28:56.346802750 +0200
|
|
@@ -77,6 +77,7 @@
|
|
#include "bearerbox.h"
|
|
#include "shared.h"
|
|
#include "dlr.h"
|
|
+#include "custports.h"
|
|
|
|
/* global variables; included to other modules as needed */
|
|
|
|
@@ -280,7 +281,6 @@
|
|
{
|
|
static int started = 0;
|
|
if (started) return 0;
|
|
-
|
|
udp_start(cfg);
|
|
|
|
start_wap(cfg);
|
|
@@ -353,6 +353,7 @@
|
|
int ssl_enabled = 0;
|
|
#endif /* HAVE_LIBSSL */
|
|
|
|
+ ReadCustomPorts(cfg);
|
|
/* defaults: use localtime and markers for access-log */
|
|
lf = m = 1;
|
|
|
|
diff -Nru gateway-1.4.1.orig/gw/custports.c gateway-1.4.1/gw/custports.c
|
|
--- gateway-1.4.1.orig/gw/custports.c 1970-01-01 02:00:00.000000000 +0200
|
|
+++ gateway-1.4.1/gw/custports.c 2006-11-16 00:28:56.346802750 +0200
|
|
@@ -0,0 +1,88 @@
|
|
+/* ====================================================================
|
|
+ * The Kannel Software License, Version 1.0
|
|
+ *
|
|
+ * Copyright (c) 2001-2004 Kannel Group
|
|
+ * Copyright (c) 1998-2001 WapIT Ltd.
|
|
+ * All rights reserved.
|
|
+ *
|
|
+ * Redistribution and use in source and binary forms, with or without
|
|
+ * modification, are permitted provided that the following conditions
|
|
+ * are met:
|
|
+ *
|
|
+ * 1. Redistributions of source code must retain the above copyright
|
|
+ * notice, this list of conditions and the following disclaimer.
|
|
+ *
|
|
+ * 2. Redistributions in binary form must reproduce the above copyright
|
|
+ * notice, this list of conditions and the following disclaimer in
|
|
+ * the documentation and/or other materials provided with the
|
|
+ * distribution.
|
|
+ *
|
|
+ * 3. The end-user documentation included with the redistribution,
|
|
+ * if any, must include the following acknowledgment:
|
|
+ * "This product includes software developed by the
|
|
+ * Kannel Group (http://www.kannel.org/)."
|
|
+ * Alternately, this acknowledgment may appear in the software itself,
|
|
+ * if and wherever such third-party acknowledgments normally appear.
|
|
+ *
|
|
+ * 4. The names "Kannel" and "Kannel Group" must not be used to
|
|
+ * endorse or promote products derived from this software without
|
|
+ * prior written permission. For written permission, please
|
|
+ * contact org@kannel.org.
|
|
+ *
|
|
+ * 5. Products derived from this software may not be called "Kannel",
|
|
+ * nor may "Kannel" appear in their name, without prior written
|
|
+ * permission of the Kannel Group.
|
|
+ *
|
|
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
|
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
+ * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS
|
|
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
|
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
|
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
+ * ====================================================================
|
|
+ *
|
|
+ * This software consists of voluntary contributions made by many
|
|
+ * individuals on behalf of the Kannel Group. For more information on
|
|
+ * the Kannel Group, please see <http://www.kannel.org/>.
|
|
+ *
|
|
+ * Portions of this software are based upon software originally written at
|
|
+ * WapIT Ltd., Helsinki, Finland for the Kannel project.
|
|
+ */
|
|
+
|
|
+/*
|
|
+ * gw/custports.c
|
|
+ *
|
|
+ * Implementation of reading custom UDP ports used by wapbox
|
|
+ *
|
|
+ * Lubor Kolar <kolar@porcus.cz>, 14.03.2006
|
|
+ */
|
|
+
|
|
+#include <custports.h>
|
|
+
|
|
+long port_wsp = 9200; // connectionless default
|
|
+long port_wtp = 9201; // connection-oriented default
|
|
+long port_wsps = 9202; // connectionless secure default
|
|
+long port_wtps = 9203; // connection-oriented secure
|
|
+
|
|
+
|
|
+void ReadCustomPorts(Cfg *config)
|
|
+{
|
|
+ CfgGroup *grp;
|
|
+ grp = cfg_get_single_group(config, octstr_imm("wapbox"));
|
|
+ if(grp == NULL)
|
|
+ return;
|
|
+
|
|
+ if(cfg_get_integer(&port_wsp, grp, octstr_imm("wsp-port")) != -1)
|
|
+ info(0, "Using custom WSP port %ld", port_wsp);
|
|
+ if(cfg_get_integer(&port_wtp, grp, octstr_imm("wtp-port")) != -1)
|
|
+ info(0, "Using custom WSP/WTP port %ld", port_wtp);
|
|
+ if(cfg_get_integer(&port_wsps, grp, octstr_imm("wsps-port")) != -1)
|
|
+ info(0, "Using custom WSP/WTLS port %ld", port_wsps);
|
|
+ if(cfg_get_integer(&port_wtps, grp, octstr_imm("wtps-port")) != -1)
|
|
+ info(0, "Using custom WSP/WTP/WTLS port %ld", port_wtps);
|
|
+}
|
|
diff -Nru gateway-1.4.1.orig/gw/custports.h gateway-1.4.1/gw/custports.h
|
|
--- gateway-1.4.1.orig/gw/custports.h 1970-01-01 02:00:00.000000000 +0200
|
|
+++ gateway-1.4.1/gw/custports.h 2006-11-16 00:28:56.346802750 +0200
|
|
@@ -0,0 +1,77 @@
|
|
+/* ====================================================================
|
|
+ * The Kannel Software License, Version 1.0
|
|
+ *
|
|
+ * Copyright (c) 2001-2004 Kannel Group
|
|
+ * Copyright (c) 1998-2001 WapIT Ltd.
|
|
+ * All rights reserved.
|
|
+ *
|
|
+ * Redistribution and use in source and binary forms, with or without
|
|
+ * modification, are permitted provided that the following conditions
|
|
+ * are met:
|
|
+ *
|
|
+ * 1. Redistributions of source code must retain the above copyright
|
|
+ * notice, this list of conditions and the following disclaimer.
|
|
+ *
|
|
+ * 2. Redistributions in binary form must reproduce the above copyright
|
|
+ * notice, this list of conditions and the following disclaimer in
|
|
+ * the documentation and/or other materials provided with the
|
|
+ * distribution.
|
|
+ *
|
|
+ * 3. The end-user documentation included with the redistribution,
|
|
+ * if any, must include the following acknowledgment:
|
|
+ * "This product includes software developed by the
|
|
+ * Kannel Group (http://www.kannel.org/)."
|
|
+ * Alternately, this acknowledgment may appear in the software itself,
|
|
+ * if and wherever such third-party acknowledgments normally appear.
|
|
+ *
|
|
+ * 4. The names "Kannel" and "Kannel Group" must not be used to
|
|
+ * endorse or promote products derived from this software without
|
|
+ * prior written permission. For written permission, please
|
|
+ * contact org@kannel.org.
|
|
+ *
|
|
+ * 5. Products derived from this software may not be called "Kannel",
|
|
+ * nor may "Kannel" appear in their name, without prior written
|
|
+ * permission of the Kannel Group.
|
|
+ *
|
|
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
|
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
+ * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS
|
|
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
|
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
|
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
+ * ====================================================================
|
|
+ *
|
|
+ * This software consists of voluntary contributions made by many
|
|
+ * individuals on behalf of the Kannel Group. For more information on
|
|
+ * the Kannel Group, please see <http://www.kannel.org/>.
|
|
+ *
|
|
+ * Portions of this software are based upon software originally written at
|
|
+ * WapIT Ltd., Helsinki, Finland for the Kannel project.
|
|
+ */
|
|
+
|
|
+/*
|
|
+ * gw/custports.h
|
|
+ *
|
|
+ * Implementation of wapbox custom UDP ports)
|
|
+ *
|
|
+ * Lubor Kolar <kolar@porcus.cz>, 14.03.2006
|
|
+ */
|
|
+
|
|
+#ifndef CUSTPORTS_H
|
|
+#define CUSTPORTS_H
|
|
+
|
|
+#include "gwlib/gwlib.h"
|
|
+
|
|
+extern long port_wsp; // connectionless
|
|
+extern long port_wtp; // connection-oriented
|
|
+extern long port_wsps; // connectionless secure
|
|
+extern long port_wtps; // connection-oriented secure
|
|
+
|
|
+void ReadCustomPorts(Cfg *config);
|
|
+#endif /* CUSTPORTS_H */
|
|
+
|
|
diff -Nru gateway-1.4.1.orig/gw/wapbox.c gateway-1.4.1/gw/wapbox.c
|
|
--- gateway-1.4.1.orig/gw/wapbox.c 2006-03-28 15:00:19.000000000 +0300
|
|
+++ gateway-1.4.1/gw/wapbox.c 2006-11-16 00:28:56.350803000 +0200
|
|
@@ -84,17 +84,11 @@
|
|
#include "gwlib/pki.h"
|
|
#endif
|
|
#include "radius/radius_acct.h"
|
|
+#include "custports.h"
|
|
|
|
static void config_reload(int reload);
|
|
static long logfilelevel=-1;
|
|
|
|
-enum {
|
|
- CONNECTIONLESS_PORT = 9200,
|
|
- CONNECTION_ORIENTED_PORT = 9201,
|
|
- WTLS_CONNECTIONLESS_PORT = 9202,
|
|
- WTLS_CONNECTION_ORIENTED_PORT = 9203
|
|
-};
|
|
-
|
|
enum { DEFAULT_TIMER_FREQ = 1};
|
|
|
|
static Octstr *bearerbox_host;
|
|
@@ -131,6 +125,8 @@
|
|
|
|
cfg_dump(cfg);
|
|
|
|
+ ReadCustomPorts(cfg);
|
|
+
|
|
/*
|
|
* Extract info from the core group.
|
|
*/
|
|
@@ -772,9 +768,9 @@
|
|
* XXXX here should be suspend/resume, add RSN
|
|
*/
|
|
} else if (msg_type(msg) == wdp_datagram) {
|
|
- switch (msg->wdp_datagram.destination_port) {
|
|
- case CONNECTIONLESS_PORT:
|
|
- case CONNECTION_ORIENTED_PORT:
|
|
+ if(msg->wdp_datagram.destination_port == port_wsp
|
|
+ || msg->wdp_datagram.destination_port == port_wtp)
|
|
+ {
|
|
dgram = wap_event_create(T_DUnitdata_Ind);
|
|
dgram->u.T_DUnitdata_Ind.addr_tuple = wap_addr_tuple_create(
|
|
msg->wdp_datagram.source_address,
|
|
@@ -785,19 +781,22 @@
|
|
msg->wdp_datagram.user_data = NULL;
|
|
|
|
wap_dispatch_datagram(dgram);
|
|
- break;
|
|
- case WTLS_CONNECTIONLESS_PORT:
|
|
- case WTLS_CONNECTION_ORIENTED_PORT:
|
|
+ }
|
|
+ else
|
|
+ if(msg->wdp_datagram.destination_port == port_wsps
|
|
+ || msg->wdp_datagram.destination_port == port_wtps)
|
|
+ {
|
|
#if (HAVE_WTLS_OPENSSL)
|
|
dgram = wtls_unpack_wdp_datagram(msg);
|
|
if (dgram != NULL)
|
|
wtls_dispatch_event(dgram);
|
|
#endif
|
|
- break;
|
|
- default:
|
|
+ }
|
|
+ else
|
|
+ {
|
|
panic(0,"Bad packet received! This shouldn't happen!");
|
|
break;
|
|
- }
|
|
+ }
|
|
} else {
|
|
warning(0, "Received other message than wdp/admin, ignoring!");
|
|
}
|
|
diff -Nru gateway-1.4.1.orig/gw/wap_push_ppg.c gateway-1.4.1/gw/wap_push_ppg.c
|
|
--- gateway-1.4.1.orig/gw/wap_push_ppg.c 2005-10-06 15:48:26.000000000 +0300
|
|
+++ gateway-1.4.1/gw/wap_push_ppg.c 2006-11-16 00:28:56.350803000 +0200
|
|
@@ -88,6 +88,7 @@
|
|
#include "wap_push_pap_compiler.h"
|
|
#include "wap_push_pap_mime.h"
|
|
#include "wap_push_ppg_pushuser.h"
|
|
+#include "custports.h"
|
|
|
|
enum {
|
|
TIME_EXPIRED = 0,
|
|
@@ -1768,10 +1769,10 @@
|
|
|
|
if (!cless_accepted) {
|
|
cliport = CONNECTED_CLIPORT;
|
|
- servport = CONNECTED_SERVPORT;
|
|
+ servport = port_wtp;
|
|
} else {
|
|
cliport = CONNECTIONLESS_PUSH_CLIPORT;
|
|
- servport = CONNECTIONLESS_SERVPORT;
|
|
+ servport = port_wsp;
|
|
}
|
|
|
|
address_type = (**e).u.Push_Message.address_type;
|
|
diff -Nru gateway-1.4.1.orig/gw/wap_push_ppg.h gateway-1.4.1/gw/wap_push_ppg.h
|
|
--- gateway-1.4.1.orig/gw/wap_push_ppg.h 2005-02-11 17:35:48.000000000 +0200
|
|
+++ gateway-1.4.1/gw/wap_push_ppg.h 2006-11-16 00:28:56.350803000 +0200
|
|
@@ -167,9 +167,7 @@
|
|
*/
|
|
enum {
|
|
CONNECTIONLESS_PUSH_CLIPORT = 2948,
|
|
- CONNECTIONLESS_SERVPORT = 9200,
|
|
CONNECTED_CLIPORT = 9209,
|
|
- CONNECTED_SERVPORT = 9201
|
|
};
|
|
|
|
struct PPGSessionMachine {
|
|
diff -Nru gateway-1.4.1.orig/gwlib/cfg.def gateway-1.4.1/gwlib/cfg.def
|
|
--- gateway-1.4.1.orig/gwlib/cfg.def 2006-08-28 15:06:13.000000000 +0300
|
|
+++ gateway-1.4.1/gwlib/cfg.def 2006-11-16 00:30:55.042220750 +0200
|
|
@@ -153,6 +153,10 @@
|
|
OCTSTR(concatenation)
|
|
OCTSTR(max-messages)
|
|
OCTSTR(wml-strict)
|
|
+ OCTSTR(wsp-port)
|
|
+ OCTSTR(wtp-port)
|
|
+ OCTSTR(wsps-port)
|
|
+ OCTSTR(wtps-port)
|
|
)
|
|
|
|
|