Diff between 2c5bb3ec41a4d60dea941e120ebdf6afbf799aac and 971be76c6295eddaf30ddb812a75a379440a29d2

Changed Files

File Additions Deletions Status
tools/obex-server-tool.c +8 -0 modified

Full Patch

diff --git a/tools/obex-server-tool.c b/tools/obex-server-tool.c
index d7ffe50..728e2ad 100644
--- a/tools/obex-server-tool.c
+++ b/tools/obex-server-tool.c
@@ -45,6 +45,7 @@ static GSList *clients = NULL;
 static gboolean option_packet = FALSE;
 static gboolean option_bluetooth = FALSE;
 static int option_channel = -1;
+static char *option_root = NULL;
 
 static void sig_term(int sig)
 {
@@ -63,6 +64,8 @@ static GOptionEntry options[] = {
 			&option_packet, "Packet based transport" },
 	{ "stream", 's', G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE,
 			&option_packet, "Stream based transport" },
+	{ "root", 'r', 0, G_OPTION_ARG_STRING,
+			&option_root, "Root dir", "/..." },
 	{ NULL },
 };
 
@@ -411,6 +414,11 @@ int main(int argc, char *argv[])
 		exit(EXIT_FAILURE);
 	}
 
+	if (option_root && chdir(option_root) > 0) {
+		perror("chdir:");
+		exit(EXIT_FAILURE);
+	}
+
 	if (option_bluetooth)
 		server_id = bluetooth_listen();
 	else