re-combine arguments in python command.
authorJelmer Vernooij <jelmer@samba.org>
Sun, 10 May 2009 20:07:03 +0000 (22:07 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Sun, 10 May 2009 20:07:03 +0000 (22:07 +0200)
mods/python.c
src/admin-cmd.c

index fef90b176bc1df97767fab75267368724702f0bb..43db426758c0b3bf377e0fc0f78d604deb13fa1c 100644 (file)
@@ -116,6 +116,7 @@ static PyTypeObject AdminOutputType = {
 
 static void handle_python_admin(admin_handle h, const char * const *args, void *userdata)
 {
+       char *text;
        PyObject *old_stdout, *old_stderr;
        AdminOutputObject *admin_stdout;
 
@@ -124,6 +125,8 @@ static void handle_python_admin(admin_handle h, const char * const *args, void *
                return;
        }
 
+       text = g_strjoinv(" ", (char **)args+1);
+
        old_stdout = PySys_GetObject("stdout");
        old_stderr = PySys_GetObject("stderr");
        admin_stdout = PyObject_New(AdminOutputObject, &AdminOutputType);
@@ -131,7 +134,8 @@ static void handle_python_admin(admin_handle h, const char * const *args, void *
        admin_stdout->buffer = NULL;
        PySys_SetObject("stdout", (PyObject *)admin_stdout);
        PySys_SetObject("stderr", (PyObject *)admin_stdout);
-       PyRun_SimpleString(args[1]);
+       PyRun_SimpleString(text);
+       g_free(text);
        PySys_SetObject("stdout", old_stdout);
        PySys_SetObject("stderr", old_stderr);
        Py_DECREF(admin_stdout);
index 08e39fe8720e9145889258aa6cfc5af87e98fe94..5012416f9a8719e6ba1a20f4902f51b99cd9c2a1 100644 (file)
@@ -74,6 +74,7 @@ gboolean admin_socket_prompt(const char *config_dir)
 
                g_free(data);
 
+               /* A bit ugly, but it works.. */
                g_usleep(G_USEC_PER_SEC / 10);
 
                while (g_io_channel_read_line(ch, &raw, NULL, NULL, &error) == G_IO_STATUS_NORMAL)