~n-muench/ubuntu/precise/open-vm-tools/open-vm-tools.raring-precise.backport

« back to all changes in this revision

Viewing changes to services/plugins/unity/unityPluginEntry.cpp

  • Committer: Package Import Robot
  • Author(s): Nate Muench
  • Date: 2012-01-23 16:09:45 UTC
  • mfrom: (1.4.6) (2.4.26 sid)
  • Revision ID: package-import@ubuntu.com-20120123160945-b6s0r1vkcovucpf3
Tags: 2011.12.20-562307-0ubuntu1
* Merge latest upstream git tag. Fixes building on Precise
  (LP: #898289, LP: #905612)

* Items merged from Debian unstable:
  - debian/control:
    + open-vm-tools recommends open-vm-dkms. (LP: #598933)
    + open-vm-tools now suggests open-vm-toolbox. (LP: #604998)
  (From 2011.08.21-471295-1 release)
  - Updating maintainer and uploaders fields.
  - Removing vcs fields.
  - Removing references to Daniel's old email address.
  - Updating years in copyright file.
  - Updating to standards version 3.9.2.
  - Updating to debhelper version 8.
  - Switching to source format 3.0 (quilt).
  - Removing manual chrpath setting.
  - Removing exclusion from plugins from debhelper shlibs.
  - Rediffing kvers.patch.
  (From 2011.09.23-491607-1 release)
  - Marking binary architecture-dependend packages as linux and kfreebsd
  only.
  - Removing liburiparser-dev from build-depends as upstream dropped
  unity support.
  - Building with libproc-dev on amd64 again.
  - Dropping disabling of dnet support.
  (From 2011.09.23-491607-2 release)
  - Adding doxygen to build-depends for api documentation.
  - Adding libcunit1-dev to build-depends for test suites.
  - Minimizing rules file.
  - Adding open-vm-tools-dev package, containing only the api
    documentation for now.
  (From 2011.09.23-491607-3 release)
  - Sorting overrides in rules alphabetically.
  - Compacting copyright file.
  - Adding udev rule to set timeout for vmware scsi devices
  (From 2011.12.20-562307-1 release)
  - Adding patch to correct typo in upstreams dkms configuration

* Remaining Changes:
  - Remove Stable part of version numbering.
  - debian folder:
    + Re-added open-vm-dkms.postinst & open-vm-dkms.prerm.
      * Allows dkms modules to compile upon installation.
  - debian/control:
    + Re-add open-vm-source and make into a transitional package
      for open-vm-toolbox.
    + Return dependancies that were moved to open-vm-tools back to
      open-vm-toolbox.
  - debian/rules and debian/open-vm-toolbox.lintian-overrides:
    + Make vmware-user-suid-wrapper suid-root
  - debian/rules:
    + Added CFLAGS field with -Wno-deprecated-declarations
      * Will suppress issues with glib 2.31 or later.
    + Add line to copy vmware-xdg-detect-de into place.
    + Install vmware-user.desktop through toolbox package.
  - debian/open-vm-tools.init:
    + Re-add 'modprobe [-r] vmblock'.
    + Add 'modprobe [-r] vmxnet'.
      * Incase it's not loaded during boot.
    + Remove and re-add pcnet32 module
      * Will be done before (remove) and after (readd) vmxnet module
        is added.
      * If vmxnet doesn't exist (aka modules fail to build), pcnet32 can be
        still used for network connectivity.
      * Workaround until a better fix can be done.
  - Re-add gnome-session to debian/local/xautostart.conf
  - Manpages removed (from debian/manpages):
    + vmmemctl.9
    + vmxnet3.9
    + Remove references to manpages that have been removed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*********************************************************
2
 
 * Copyright (C) 2009 VMware, Inc. All rights reserved.
3
 
 *
4
 
 * This program is free software; you can redistribute it and/or modify it
5
 
 * under the terms of the GNU Lesser General Public License as published
6
 
 * by the Free Software Foundation version 2.1 and no later version.
7
 
 *
8
 
 * This program is distributed in the hope that it will be useful, but
9
 
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
10
 
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
11
 
 * License for more details.
12
 
 *
13
 
 * You should have received a copy of the GNU Lesser General Public License
14
 
 * along with this program; if not, write to the Free Software Foundation, Inc.,
15
 
 * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
16
 
 *
17
 
 *********************************************************/
18
 
 
19
 
/*
20
 
 * unityPluginEntry.cpp --
21
 
 *
22
 
 *    Implements the unity plugin for the tools services. Registers for the Unity
23
 
 *    RPC's and sets the Unity capabilities.
24
 
 *
25
 
 *    XXX Rewrite all of this to match CUI models and be, like, readable.
26
 
 */
27
 
 
28
 
#define G_LOG_DOMAIN "unity"
29
 
 
30
 
#include "unityPlugin.h"
31
 
 
32
 
#ifndef WIN32
33
 
#   include "unityPluginPosix.h"
34
 
#endif
35
 
 
36
 
extern "C" {
37
 
   #include "util.h"
38
 
   // guestrpc.h defines the RPCIn_Callback which is needed in rpcin.h which is in turn
39
 
   // included by unity.h - so guestrpc.h must precede unity.h
40
 
   #include "vmware/tools/guestrpc.h"
41
 
   #include "unity.h"
42
 
   #include "vmware/tools/plugin.h"
43
 
   #include "vmware/tools/utils.h"
44
 
 
45
 
   TOOLS_MODULE_EXPORT ToolsPluginData *ToolsOnLoad(ToolsAppCtx *ctx);
46
 
};
47
 
 
48
 
using namespace vmware::tools;
49
 
 
50
 
 
51
 
/*
52
 
 *-----------------------------------------------------------------------------
53
 
 *
54
 
 * ToolsOnLoad --
55
 
 *
56
 
 *      Plugin entry point.  Returns the registration data.
57
 
 *
58
 
 * Results:
59
 
 *      Registration data.
60
 
 *
61
 
 * Side effects:
62
 
 *      XXX.
63
 
 *
64
 
 *-----------------------------------------------------------------------------
65
 
 */
66
 
 
67
 
TOOLS_MODULE_EXPORT ToolsPluginData *
68
 
ToolsOnLoad(ToolsAppCtx *ctx)           // IN: The app context.
69
 
{
70
 
   static ToolsPluginData regData = {
71
 
      "unity",
72
 
      NULL,
73
 
      NULL
74
 
   };
75
 
 
76
 
   if (ctx->rpc != NULL) {
77
 
      ToolsPlugin *pluginInstance = NULL;
78
 
 
79
 
#if WIN32
80
 
      pluginInstance = new UnityPluginWin32(ctx);
81
 
#else // Linux
82
 
      pluginInstance = new UnityPluginPosix(ctx);
83
 
#endif
84
 
 
85
 
      if (!pluginInstance) {
86
 
         // There's nothing we can do if we can't construct the plugin instance
87
 
         return NULL;
88
 
      }
89
 
 
90
 
      if (!pluginInstance->Initialize()) {
91
 
         g_warning("%s: Unity Plugin failed to initialize.\n", __FUNCTION__);
92
 
         delete pluginInstance;
93
 
         return NULL;
94
 
      }
95
 
      regData._private = pluginInstance;
96
 
 
97
 
      std::vector<RpcChannelCallback> rpcs = pluginInstance->GetRpcCallbackList();
98
 
      std::vector<ToolsPluginSignalCb> sigs =
99
 
         pluginInstance->GetSignalRegistrations(&regData);
100
 
 
101
 
      ToolsAppReg regs[] = {
102
 
         { TOOLS_APP_GUESTRPC, VMTools_WrapArray(&rpcs[0], sizeof rpcs[0], rpcs.size()) },
103
 
         { TOOLS_APP_SIGNALS, VMTools_WrapArray(&sigs[0], sizeof sigs[0], sigs.size()) },
104
 
      };
105
 
 
106
 
      regData.regs = VMTools_WrapArray(regs, sizeof *regs, ARRAYSIZE(regs));
107
 
 
108
 
      return &regData;
109
 
   }
110
 
 
111
 
   return NULL;
112
 
}