diff --git a/obexd/src/main.c b/obexd/src/main.c
index c7be4ad..d8da5bd 100644
--- a/obexd/src/main.c
+++ b/obexd/src/main.c
#define OPP_CHANNEL 9
#define FTP_CHANNEL 10
#define PBAP_CHANNEL 15
+#define PCSUITE_CHANNEL 24
#define DEFAULT_ROOT_PATH "/tmp"
static gboolean option_opp = FALSE;
static gboolean option_ftp = FALSE;
static gboolean option_pbap = FALSE;
+static gboolean option_pcsuite = FALSE;
static GOptionEntry options[] = {
{ "nodaemon", 'n', G_OPTION_FLAG_REVERSE,
"Enable File Transfer server" },
{ "pbap", 'p', 0, G_OPTION_ARG_NONE, &option_pbap,
"Enable Phonebook Access server" },
+ { "pcsuite", 's', 0, G_OPTION_ARG_NONE, &option_pcsuite,
+ "Enable PC Suite Services server" },
{ NULL },
};
PBAP_CHANNEL, TRUE, FALSE, NULL);
}
+ if (option_pcsuite == TRUE) {
+ services |= OBEX_PCSUITE;
+ bluetooth_init(OBEX_PCSUITE, "Nokia OBEX PC Suite Services",
+ option_root, PCSUITE_CHANNEL, TRUE,
+ option_autoaccept, option_capability);
+ }
+
if (option_devnode)
devnode_setup();
diff --git a/obexd/src/manager.c b/obexd/src/manager.c
index adcadb3..96bb098 100644
--- a/obexd/src/manager.c
+++ b/obexd/src/manager.c
</attribute> \
</record>";
+const static gchar *pcsuite_record =
+"<?xml version=\"1.0\" encoding=\"UTF-8\" ?> \
+<record> \
+ <attribute id=\"0x0001\"> \
+ <sequence> \
+ <uuid value=\"00005005-0000-1000-8000-0002ee000001\"/> \
+ </sequence> \
+ </attribute> \
+ \
+ <attribute id=\"0x0004\"> \
+ <sequence> \
+ <sequence> \
+ <uuid value=\"0x0100\"/> \
+ </sequence> \
+ <sequence> \
+ <uuid value=\"0x0003\"/> \
+ <uint8 value=\"%u\" name=\"channel\"/> \
+ </sequence> \
+ <sequence> \
+ <uuid value=\"0x0008\"/> \
+ </sequence> \
+ </sequence> \
+ </attribute> \
+ \
+ <attribute id=\"0x0005\"> \
+ <sequence> \
+ <uuid value=\"0x1002\"/> \
+ </sequence> \
+ </attribute> \
+ \
+ <attribute id=\"0x0009\"> \
+ <sequence> \
+ <sequence> \
+ <uuid value=\"00005005-0000-1000-8000-0002ee000001\"/> \
+ <uint16 value=\"0x0100\" name=\"version\"/> \
+ </sequence> \
+ </sequence> \
+ </attribute> \
+ \
+ <attribute id=\"0x0100\"> \
+ <text value=\"%s\" name=\"name\"/> \
+ </attribute> \
+</record>";
#define TRANSFER_INTERFACE OPENOBEX_SERVICE ".Transfer"
#define SESSION_INTERFACE OPENOBEX_SERVICE ".Session"
case OBEX_PBAP:
xml = g_markup_printf_escaped(pbap_record, channel, name);
break;
+ case OBEX_PCSUITE:
+ xml = g_markup_printf_escaped(pcsuite_record, channel, name);
+ break;
default:
xml = NULL;
break;
diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index 7197c94..2c1b41c 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
continue;
if (memcmp(hd.bs, FTP_TARGET, TARGET_SIZE) == 0 &&
- os->server->services & OBEX_FTP) {
+ os->server->services &
+ (OBEX_FTP | OBEX_PCSUITE)) {
os->target = FTP_TARGET;
os->cmds = &ftp;
break;
diff --git a/obexd/src/obex.h b/obexd/src/obex.h
index 56a5f37..a1b41bb 100644
--- a/obexd/src/obex.h
+++ b/obexd/src/obex.h
#define OBEX_FTP (1 << 2)
#define OBEX_BIP (1 << 3)
#define OBEX_PBAP (1 << 4)
+#define OBEX_PCSUITE (1 << 5)
#define OBJECT_SIZE_UNKNOWN -1
#define OBJECT_SIZE_DELETE -2