diff --git a/obexd/client/mns.c b/obexd/client/mns.c
index 3b2ae10..702cf03 100644
--- a/obexd/client/mns.c
+++ b/obexd/client/mns.c
return count;
}
-static struct obex_service_driver mns = {
+static const struct obex_service_driver mns = {
.name = "Message Notification server",
.service = OBEX_MNS,
.target = MNS_TARGET,
diff --git a/obexd/plugins/bluetooth.c b/obexd/plugins/bluetooth.c
index d232d3f..bcf6e19 100644
--- a/obexd/plugins/bluetooth.c
+++ b/obexd/plugins/bluetooth.c
struct bluetooth_profile {
struct obex_server *server;
- struct obex_service_driver *driver;
+ const struct obex_service_driver *driver;
char *uuid;
char *path;
};
const GSList *l;
for (l = server->drivers; l; l = l->next) {
- struct obex_service_driver *driver = l->data;
+ const struct obex_service_driver *driver = l->data;
struct bluetooth_profile *profile;
const char *uuid;
diff --git a/obexd/plugins/ftp.c b/obexd/plugins/ftp.c
index 4b04bab..874fe2b 100644
--- a/obexd/plugins/ftp.c
+++ b/obexd/plugins/ftp.c
manager_emit_transfer_completed(ftp->transfer);
}
-static struct obex_service_driver ftp = {
+static const struct obex_service_driver ftp = {
.name = "File Transfer server",
.service = OBEX_FTP,
.target = FTP_TARGET,
diff --git a/obexd/plugins/irmc.c b/obexd/plugins/irmc.c
index e85cf70..cab97b6 100644
--- a/obexd/plugins/irmc.c
+++ b/obexd/plugins/irmc.c
.read = irmc_read,
};
-static struct obex_service_driver irmc = {
+static const struct obex_service_driver irmc = {
.name = "IRMC Sync server",
.service = OBEX_IRMC,
.target = IRMC_TARGET,
diff --git a/obexd/plugins/mas.c b/obexd/plugins/mas.c
index f0eaf6d..10b972d 100644
--- a/obexd/plugins/mas.c
+++ b/obexd/plugins/mas.c
return mas;
}
-static struct obex_service_driver mas = {
+static const struct obex_service_driver mas = {
.name = "Message Access server",
.service = OBEX_MAS,
.target = MAS_TARGET,
diff --git a/obexd/plugins/opp.c b/obexd/plugins/opp.c
index 8601613..777f5f8 100644
--- a/obexd/plugins/opp.c
+++ b/obexd/plugins/opp.c
manager_emit_transfer_completed(user_data);
}
-static struct obex_service_driver driver = {
+static const struct obex_service_driver driver = {
.name = "Object Push server",
.service = OBEX_OPP,
.connect = opp_connect,
diff --git a/obexd/plugins/pbap.c b/obexd/plugins/pbap.c
index b363c67..4175f9d 100644
--- a/obexd/plugins/pbap.c
+++ b/obexd/plugins/pbap.c
return -EBADR;
}
-static struct obex_service_driver pbap = {
+static const struct obex_service_driver pbap = {
.name = "Phonebook Access server",
.service = OBEX_PBAP,
.target = PBAP_TARGET,
diff --git a/obexd/plugins/pcsuite.c b/obexd/plugins/pcsuite.c
index d4a0394..752074c 100644
--- a/obexd/plugins/pcsuite.c
+++ b/obexd/plugins/pcsuite.c
g_free(pcsuite);
}
-static struct obex_service_driver pcsuite = {
+static const struct obex_service_driver pcsuite = {
.name = "Nokia OBEX PC Suite Services",
.service = OBEX_PCSUITE,
.channel = PCSUITE_CHANNEL,
diff --git a/obexd/plugins/syncevolution.c b/obexd/plugins/syncevolution.c
index f0387b9..ae3dc48 100644
--- a/obexd/plugins/syncevolution.c
+++ b/obexd/plugins/syncevolution.c
.write = synce_write,
};
-static struct obex_service_driver synce = {
+static const struct obex_service_driver synce = {
.name = "OBEX server for SyncML, using SyncEvolution",
.service = OBEX_SYNCEVOLUTION,
.channel = SYNCEVOLUTION_CHANNEL,
diff --git a/obexd/src/obex-priv.h b/obexd/src/obex-priv.h
index 9941446..d2c62a5 100644
--- a/obexd/src/obex-priv.h
+++ b/obexd/src/obex-priv.h
void *object;
gboolean aborted;
int err;
- struct obex_service_driver *service;
+ const struct obex_service_driver *service;
void *service_data;
struct obex_server *server;
gboolean checked;
diff --git a/obexd/src/server.c b/obexd/src/server.c
index a8fc450..eef1492 100644
--- a/obexd/src/server.c
+++ b/obexd/src/server.c
}
for (l = drivers; l; l = l->next) {
- struct obex_service_driver *driver = l->data;
+ const struct obex_service_driver *driver = l->data;
init_server(driver->service, transports);
}
diff --git a/obexd/src/service.c b/obexd/src/service.c
index 0f4e420..332d619 100644
--- a/obexd/src/service.c
+++ b/obexd/src/service.c
static GSList *drivers = NULL;
-struct obex_service_driver *obex_service_driver_find(GSList *drivers,
+const struct obex_service_driver *obex_service_driver_find(GSList *drivers,
const uint8_t *target, unsigned int target_size,
const uint8_t *who, unsigned int who_size)
{
GSList *l;
for (l = drivers; l; l = l->next) {
- struct obex_service_driver *driver = l->data;
+ const struct obex_service_driver *driver = l->data;
/* who is optional, so only check for it if not NULL */
if (who != NULL && memncmp0(who, who_size, driver->who,
return drivers;
for (l = drivers; l && services; l = l->next) {
- struct obex_service_driver *driver = l->data;
+ const struct obex_service_driver *driver = l->data;
if (driver->service & services) {
- list = g_slist_append(list, driver);
+ list = g_slist_append(list, (gpointer)driver);
services &= ~driver->service;
}
}
return list;
}
-static struct obex_service_driver *find_driver(uint16_t service)
+static const struct obex_service_driver *find_driver(uint16_t service)
{
GSList *l;
for (l = drivers; l; l = l->next) {
- struct obex_service_driver *driver = l->data;
+ const struct obex_service_driver *driver = l->data;
if (driver->service == service)
return driver;
return NULL;
}
-int obex_service_driver_register(struct obex_service_driver *driver)
+int obex_service_driver_register(const struct obex_service_driver *driver)
{
if (!driver) {
error("Invalid driver");
/* Drivers that support who has priority */
if (driver->who)
- drivers = g_slist_prepend(drivers, driver);
+ drivers = g_slist_prepend(drivers, (gpointer)driver);
else
- drivers = g_slist_append(drivers, driver);
+ drivers = g_slist_append(drivers, (gpointer)driver);
return 0;
}
-void obex_service_driver_unregister(struct obex_service_driver *driver)
+void obex_service_driver_unregister(const struct obex_service_driver *driver)
{
if (!g_slist_find(drivers, driver)) {
error("Unable to unregister: No such driver %p", driver);
diff --git a/obexd/src/service.h b/obexd/src/service.h
index e3aee3b..8d9f705 100644
--- a/obexd/src/service.h
+++ b/obexd/src/service.h
void (*reset) (struct obex_session *os, void *user_data);
};
-int obex_service_driver_register(struct obex_service_driver *driver);
-void obex_service_driver_unregister(struct obex_service_driver *driver);
+int obex_service_driver_register(const struct obex_service_driver *driver);
+void obex_service_driver_unregister(const struct obex_service_driver *driver);
GSList *obex_service_driver_list(uint16_t services);
-struct obex_service_driver *obex_service_driver_find(GSList *drivers,
+const struct obex_service_driver *obex_service_driver_find(GSList *drivers,
const uint8_t *target, unsigned int target_size,
const uint8_t *who, unsigned int who_size);