12 |
--------------------------------------------------------------------------------
/doc/doxygen/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
OpenChange API Documentation
4 |
5 |
6 |
7 |
Redirecting you to the OpenChange API documentation
8 | overview.
9 |
10 |
11 |
--------------------------------------------------------------------------------
/mapiproxy/libmapistore.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@prefix@
2 | exec_prefix=@exec_prefix@
3 | libdir=@libdir@
4 | includedir=@includedir@
5 | datarootdir=@prefix@/share
6 | datadir=@datadir@
7 |
8 | Name: MAPISTORE
9 | Description: MAPI Storage Abstraction Layer library
10 | Version: @PACKAGE_VERSION@
11 | Libs: -L${libdir} -lmapistore
12 | Libs.private: @LIBS@
13 | Cflags: -I${includedir}
14 | Requires: talloc tdb libmapi
15 |
--------------------------------------------------------------------------------
/libmapi.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@prefix@
2 | exec_prefix=@exec_prefix@
3 | libdir=@libdir@
4 | includedir=@includedir@
5 | datarootdir=@prefix@/share
6 | datadir=@datadir@
7 |
8 | Name: MAPI
9 | Description: MAPI Protocol Implementation
10 | Version: @PACKAGE_VERSION@
11 | Libs: -L${libdir} -lmapi
12 | Libs.private: @LIBS@
13 | Cflags: -I${includedir}
14 | Requires: talloc dcerpc ndr tevent
15 | Requires.private: samba-hostconfig ldb
16 |
--------------------------------------------------------------------------------
/libmapiadmin.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@prefix@
2 | exec_prefix=@exec_prefix@
3 | libdir=@libdir@
4 | includedir=@includedir@
5 | datarootdir=@prefix@/share
6 | datadir=@datadir@
7 |
8 | Name: MAPI admin library
9 | Description: Library supporting MAPI administration actions
10 | Version: @PACKAGE_VERSION@
11 | Libs: -L${libdir} -lmapiadmin
12 | Libs.private: @LIBS@
13 | Cflags: -I${includedir}
14 | Requires: libmapi dcerpc_samr
15 |
16 |
--------------------------------------------------------------------------------
/script/installoc.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # install OpenChange miscellaneous files
3 |
4 | SRCDIR="$1"
5 | JSDIR="$2"
6 | SETUPDIR="$3"
7 |
8 | cd $SRCDIR || exit 1
9 |
10 | echo "Installing OpenChange js libs.."
11 | cp libmapi/setup/scripting/libjs/*.js $JSDIR || exit 1
12 | echo "Done.."
13 |
14 | echo "Installing OpenChange setup templates.."
15 | cp libmapi/setup/*.ldif $SETUPDIR || exit 1
16 | echo "All Ok"
17 |
18 | exit 0
19 |
--------------------------------------------------------------------------------
/libmapi++/tests/exception_test.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 |
5 | static void dotest() throw(libmapipp::mapi_exception)
6 | {
7 | throw libmapipp::mapi_exception(MAPI_E_SUCCESS, "mapi_exception test");
8 | }
9 |
10 | int main()
11 | {
12 | try {
13 | dotest();
14 | }
15 | catch (libmapipp::mapi_exception e) {
16 | std::cout << e.what() << std::endl;
17 | }
18 |
19 | return 0;
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/mapiproxy/libmapiserver.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@prefix@
2 | exec_prefix=@exec_prefix@
3 | libdir=@libdir@
4 | includedir=@includedir@
5 | datarootdir=@prefix@/share
6 | datadir=@datadir@
7 | modulesdir=@modulesdir@/dcerpc_mapiproxy_server
8 |
9 | Name: MAPISERVER
10 | Description: Server side MAPI library
11 | Version: @PACKAGE_VERSION@
12 | Libs: -L${libdir} -lmapiserver
13 | Libs.private: @LIBS@
14 | Cflags: -I${includedir}
15 | Requires: talloc
16 |
--------------------------------------------------------------------------------
/mapiproxy/services/utils/genpass.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 |
3 | import os
4 | import sys
5 | import hashlib
6 | from base64 import urlsafe_b64encode as encode
7 |
8 | def main():
9 | if len(sys.argv) != 2:
10 | print '%s password' % (sys.argv[0])
11 |
12 | salt = os.urandom(4)
13 | h = hashlib.sha1(sys.argv[0])
14 | h.update(salt)
15 | print "{SSHA}" + encode(h.digest() + salt)
16 | sys.exit()
17 |
18 | if __name__ == "__main__":
19 | main()
20 |
--------------------------------------------------------------------------------
/utils/mapitrace/lib/MAPI/Regression.pm:
--------------------------------------------------------------------------------
1 | #############################################
2 | # EcDoRpc package for mapitrace tool
3 | # Copyright Julien Kerihuel 2007
4 | #
5 | #
6 | # released under the GNU GPL v3 or later
7 | #
8 | package MAPI::Regression;
9 |
10 | require Exporter;
11 | @ISA = qw(Exporter);
12 | @EXPORT = qw();
13 | use vars qw($AUTOLOAD $VERSION);
14 | $VERSION = '0.01';
15 |
16 | use strict;
17 |
18 | 1;
19 |
--------------------------------------------------------------------------------
/IDL_LICENSE.txt:
--------------------------------------------------------------------------------
1 | The IDL files in this directory are made available by the OpenChange Team
2 | under the following license:
3 |
4 | Permission to use, copy, modify, and distribute these interface
5 | definitions for any purpose is hereby granted without fee.
6 |
7 | This work is distributed in the hope that it will be useful, but
8 | WITHOUT ANY WARRANTY; without even the implied warranty of
9 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 |
--------------------------------------------------------------------------------
/mapiproxy/services/ocsmanager/ocsmanager-apache.conf:
--------------------------------------------------------------------------------
1 |
2 | ProxyRequests Off
3 | SetEnv proxy-nokeepalive 1
4 | ProxyPreserveHost On
5 |
6 | ProxyPass /autodiscover http://127.0.0.1:5000/autodiscover retry=0
7 | ProxyPass /ews http://127.0.0.1:5000/ews retry=0
8 | ProxyPass /_debug http://127.0.0.1:5000/_debug retry=0
9 |
10 |
11 | Order allow,deny
12 | Allow from all
13 |
14 |
15 |
--------------------------------------------------------------------------------
/mapiproxy/libmapiproxy.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@prefix@
2 | exec_prefix=@exec_prefix@
3 | libdir=@libdir@
4 | includedir=@includedir@
5 | datarootdir=@prefix@/share
6 | datadir=@datadir@
7 | modulesdir=@modulesdir@/dcerpc_mapiproxy
8 |
9 | Name: MAPIPROXY
10 | Description: MAPI Proxy and Server Module Library
11 | Version: @PACKAGE_VERSION@
12 | Libs: -L${libdir} -lmapiproxy
13 | Libs.private: @LIBS@
14 | Cflags: -I${includedir}
15 | Requires: talloc dcerpc ndr ldb
16 | Requires.private: samba-hostconfig
17 |
--------------------------------------------------------------------------------
/pyopenchange/tests/properties.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 |
3 | import sys
4 |
5 | sys.path.append("python")
6 |
7 | from openchange import mapi
8 | import time
9 |
10 | SPropValue = mapi.SPropValue()
11 | SPropValue.add(mapi.PidTagSubject, "This is a test")
12 | SPropValue.add(mapi.PidTagImportance, 4096)
13 | SPropValue.add(mapi.PidTagMessageToMe, True)
14 | SPropValue.add(mapi.PidTagMessageCcMe, False)
15 | SPropValue.add(mapi.PidTagStartDate, time.time())
16 |
17 | SPropValue.dump("Python: ")
18 |
19 |
--------------------------------------------------------------------------------
/mapiproxy/services/web/rpcproxy/setup.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 |
3 | from distutils.core import setup
4 |
5 | setup(name="rpcproxy",
6 | version="1.0",
7 | description="A RPC-over-HTTP implementation for Samba, using wsgi",
8 | author="Julien Kerihuel, Wolfgang Sourdeau",
9 | author_email="j.kerihuel@openchange.org, wsourdeau@inverse.ca",
10 | url="http://www.openchange.org/",
11 | scripts=["rpcproxy.wsgi"],
12 | packages=["rpcproxy"],
13 | requires=["openchange"]
14 | )
15 |
--------------------------------------------------------------------------------
/utils/mapitest/modules/mapitest.doxy:
--------------------------------------------------------------------------------
1 | /**
2 | \mainpage %mapitest documentation
3 |
4 | %mapitest acts as stand-alone torture test of a range of MAPI function
5 | calls. It is intended to validate the implementation of various
6 | functions, and to ensure that existing functionality does not suffer
7 | regression between releases.
8 |
9 | As a general principle, %mapitest calls should leave the system in the
10 | same state at the end as at the start - it is meant to clean up after
11 | itself.
12 |
13 | */
14 |
15 |
--------------------------------------------------------------------------------
/qt/lib/messagesmodel.h:
--------------------------------------------------------------------------------
1 | #ifndef MESSAGESMODEL_H
2 | #define MESSAGESMODEL_H
3 |
4 | class QStandardItem;
5 | #include
6 |
7 | namespace libmapipp
8 | {
9 | class folder;
10 | class session;
11 | }
12 |
13 |
14 | class MessagesModel : public QStandardItemModel
15 | {
16 | Q_OBJECT
17 |
18 | public:
19 | MessagesModel( libmapipp::folder *folder );
20 |
21 | QStandardItemModel *buildModel();
22 |
23 | private:
24 | libmapipp::folder *m_mapi_folder;
25 | };
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/mapiproxy/services/ocsmanager/ocsmanager/websetup.py:
--------------------------------------------------------------------------------
1 | """Setup the ocsmanager application"""
2 | import logging
3 |
4 | import pylons.test
5 |
6 | from ocsmanager.config.environment import load_environment
7 |
8 | log = logging.getLogger(__name__)
9 |
10 | def setup_app(command, conf, vars):
11 | """Place any commands to setup ocsmanager here"""
12 | # Don't reload the app if it was loaded under the testing environment
13 | if not pylons.test.pylonsapp:
14 | load_environment(conf.global_conf, conf.local_conf)
15 |
--------------------------------------------------------------------------------
/packaging/rhel/ocsmanager-ini-path-fix.diff:
--------------------------------------------------------------------------------
1 | Index: mapiproxy/services/ocsmanager/ocsmanager.ini
2 | ===================================================================
3 | --- mapiproxy/services/ocsmanager/ocsmanager.ini (revision 4075)
4 | +++ mapiproxy/services/ocsmanager/ocsmanager.ini (working copy)
5 | @@ -14,8 +14,8 @@
6 | # auth = file
7 | #auth = ldap
8 | auth = single
9 | -mapistore_root = /var/lib/samba/private
10 | -mapistore_data = /var/lib/samba/private/mapistore
11 | +mapistore_root = /var/lib/samba4/private
12 | +mapistore_data = /var/lib/samba4/private/mapistore
13 | debug = no
14 |
15 | [auth:file]
16 |
--------------------------------------------------------------------------------
/mapiproxy/services/ocsmanager/test.ini:
--------------------------------------------------------------------------------
1 | #
2 | # ocsmanager - Pylons testing environment configuration
3 | #
4 | # The %(here)s variable will be replaced with the parent directory of this file
5 | #
6 | [DEFAULT]
7 | debug = true
8 | # Uncomment and replace with the address which should receive any error reports
9 | #email_to = you@yourdomain.com
10 | smtp_server = localhost
11 | error_email_from = paste@localhost
12 |
13 | [server:main]
14 | use = egg:Paste#http
15 | host = 127.0.0.1
16 | port = 5000
17 |
18 | [app:main]
19 | use = config:development.ini
20 |
21 | # Add additional test specific configuration options as necessary.
22 |
--------------------------------------------------------------------------------
/mapiproxy/services/ocsmanager/ocsmanager/lib/utils.py:
--------------------------------------------------------------------------------
1 | """The applications Utils function"""
2 |
3 | from lxml import etree
4 |
5 | def validateDocXML(payload):
6 | """Perform common preliminary XML checks on payload and return
7 | lxml object on success with error status set to False."""
8 |
9 | try:
10 | xmlData = etree.XML(payload)
11 | except etree.XMLSyntaxError:
12 | return (True, 'Invalid document')
13 |
14 | if xmlData.tag is None: return (True, 'Invalid root element')
15 | if xmlData.tag != 'ocsmanager': return (True, 'Invalid root element %s' % xmlData.tag)
16 |
17 | return (False, xmlData)
18 |
--------------------------------------------------------------------------------
/qt/lib/foldermodel.h:
--------------------------------------------------------------------------------
1 | #ifndef FOLDERMODEL_H
2 | #define FOLDERMODEL_H
3 |
4 | class QStandardItem;
5 | class QStandardItemModel;
6 |
7 | namespace libmapipp
8 | {
9 | class folder;
10 | class session;
11 | }
12 |
13 | class FolderModel : public QStandardItemModel
14 | {
15 | Q_OBJECT
16 |
17 | public:
18 | FolderModel( libmapipp::session *mapi_session );
19 |
20 | QStandardItemModel* buildModel();
21 |
22 | private:
23 | libmapipp::session *m_mapi_session;
24 | QStandardItemModel *m_folderModel;
25 |
26 | void add_folder_to_tree(libmapipp::folder& up_folder, QStandardItem *parentItem);
27 | };
28 |
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/mapiproxy/services/ocsmanager/ocsmanager/lib/base.py:
--------------------------------------------------------------------------------
1 | """The base Controller API
2 |
3 | Provides the BaseController class for subclassing.
4 | """
5 | from pylons.controllers import WSGIController
6 | from pylons.templating import render_mako as render
7 |
8 | class BaseController(WSGIController):
9 |
10 | def __call__(self, environ, start_response):
11 | """Invoke the Controller"""
12 | # WSGIController.__call__ dispatches to the Controller method
13 | # the request is routed to. This routing information is
14 | # available in environ['pylons.routes_dict']
15 | return WSGIController.__call__(self, environ, start_response)
16 |
--------------------------------------------------------------------------------
/mapiproxy/services/web/rpcproxy/rpcproxy.conf:
--------------------------------------------------------------------------------
1 | ## The extremely high timeout is required by outlook
2 | KeepAliveTimeout 120
3 |
4 | WSGILazyInitialization On
5 | WSGIPythonPath /usr/lib/openchange/web/rpcproxy
6 |
7 |
8 | SetEnv RPCPROXY_LOGLEVEL INFO
9 | SetEnv NTLMAUTHHANDLER_WORKDIR /var/cache/ntlmauthhandler
10 | SetEnv SAMBA_HOST 127.0.0.1
11 | WSGIPassAuthorization On
12 | WSGIProcessGroup %{GLOBAL}
13 |
14 |
15 | WSGIScriptAlias /rpc/rpcproxy.dll /usr/lib/openchange/web/rpcproxy/rpcproxy.wsgi
16 | WSGIScriptAlias /rpcwithcert/rpcproxy.dll /usr/lib/openchange/web/rpcproxy/rpcproxy.wsgi
17 |
18 |
--------------------------------------------------------------------------------
/mapiproxy/services/ocsmanager/ocsmanager/lib/app_globals.py:
--------------------------------------------------------------------------------
1 | """The application's Globals object"""
2 |
3 | from beaker.cache import CacheManager
4 | from beaker.util import parse_cache_config_options
5 |
6 | class Globals(object):
7 |
8 | """Globals acts as a container for objects available throughout the
9 | life of the application
10 |
11 | """
12 |
13 | def __init__(self, config):
14 | """One instance of Globals is created during application
15 | initialization and is available during requests via the
16 | 'app_globals' variable
17 |
18 | """
19 | self.cache = CacheManager(**parse_cache_config_options(config))
20 |
--------------------------------------------------------------------------------
/mapiproxy/services/ocsmanager/docs/index.txt:
--------------------------------------------------------------------------------
1 | ocsmanager
2 | ++++++++++
3 |
4 | This is the main index page of your documentation. It should be written in
5 | `reStructuredText format `_.
6 |
7 | You can generate your documentation in HTML format by running this command::
8 |
9 | setup.py pudge
10 |
11 | For this to work you will need to download and install `buildutils`_,
12 | `pudge`_, and `pygments`_. The ``pudge`` command is disabled by
13 | default; to ativate it in your project, run::
14 |
15 | setup.py addcommand -p buildutils.pudge_command
16 |
17 | .. _buildutils: http://pypi.python.org/pypi/buildutils
18 | .. _pudge: http://pudge.lesscode.org/
19 | .. _pygments: http://pygments.org/
20 |
--------------------------------------------------------------------------------
/mapiproxy/services/ocsmanager/setup.cfg:
--------------------------------------------------------------------------------
1 | [egg_info]
2 | tag_build = dev
3 | tag_svn_revision = true
4 |
5 | [easy_install]
6 | find_links = http://www.pylonshq.com/download/
7 |
8 | [nosetests]
9 | with-pylons = test.ini
10 |
11 | [compile_catalog]
12 | domain = ocsmanager
13 | directory = ocsmanager/i18n
14 | statistics = true
15 |
16 | [extract_messages]
17 | add_comments = TRANSLATORS:
18 | output_file = ocsmanager/i18n/ocsmanager.pot
19 | width = 80
20 |
21 | [init_catalog]
22 | domain = ocsmanager
23 | input_file = ocsmanager/i18n/ocsmanager.pot
24 | output_dir = ocsmanager/i18n
25 |
26 | [update_catalog]
27 | domain = ocsmanager
28 | input_file = ocsmanager/i18n/ocsmanager.pot
29 | output_dir = ocsmanager/i18n
30 | previous = true
31 |
32 |
--------------------------------------------------------------------------------
/script/installman.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | MANDIR=$1
4 | shift 1
5 | MANPAGES=$*
6 |
7 | for I in $MANPAGES
8 | do
9 | SECTION=`echo $I | grep -o '.$'`
10 | DIR="$MANDIR/man$SECTION"
11 | if [ ! -d "$DIR" ]
12 | then
13 | mkdir -p "$DIR"
14 | fi
15 |
16 | BASE=`basename $I`
17 |
18 | echo "Installing manpage \"$BASE\" in $DIR"
19 | cp $I $DIR
20 | done
21 |
22 | cat << EOF
23 | ======================================================================
24 | The man pages have been installed. You may uninstall them using the command
25 | the command "make uninstallman" or make "uninstall" to uninstall binaries,
26 | man pages and shell scripts.
27 | ======================================================================
28 | EOF
29 |
30 | exit 0
31 |
--------------------------------------------------------------------------------
/doc/examples/Makefile:
--------------------------------------------------------------------------------
1 | all: fetchappointment \
2 | fetchmail \
3 | mapi_sample1 \
4 | multiple_notif \
5 | fetch_addressbook
6 |
7 | clean:
8 | rm -f fetch_addressbook fetchappointment fetchmail mapi_sample1 multiple_notif
9 |
10 | fetchappointment:
11 | gcc fetchappointment.c -o fetchappointment `pkg-config libmapi --cflags --libs`
12 |
13 | fetchmail:
14 | gcc fetchmail.c -o fetchmail `pkg-config libmapi --cflags --libs`
15 |
16 | mapi_sample1:
17 | gcc mapi_sample1.c -o mapi_sample1 `pkg-config libmapi --cflags --libs`
18 |
19 | multiple_notif:
20 | gcc multiple_notif.c -o multiple_notif `pkg-config libmapi --cflags --libs` -lpthread -lpopt
21 |
22 | fetch_addressbook: fetch_addressbook.c
23 | gcc fetch_addressbook.c -o fetch_addressbook `pkg-config libmapi --cflags --libs`
24 |
--------------------------------------------------------------------------------
/script/uninstallman.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # 4 July 96 Dan.Shearer@UniSA.edu.au
3 | # Updated for Samba4 by Jelmer Vernooij
4 |
5 | MANDIR=$1
6 | shift 1
7 | MANPAGES=$*
8 |
9 | for I in $MANPAGES
10 | do
11 | SECTION=`echo $I | grep -o '.$'`
12 | MAN=`echo $I | grep -o '[a-zA-Z_]*\.[0-9]'`
13 | FNAME=$MANDIR/man$SECTION/$MAN
14 | if test -f $FNAME; then
15 | echo Deleting $FNAME
16 | rm -f $FNAME
17 | test -f $FNAME && echo Cannot remove $FNAME... does $USER have privileges?
18 | fi
19 | done
20 |
21 | cat << EOF
22 | ======================================================================
23 | The man pages have been uninstalled. You may install them again using
24 | the command "make installman" or make "install" to install binaries,
25 | man pages and shell scripts.
26 | ======================================================================
27 | EOF
28 | exit 0
29 |
--------------------------------------------------------------------------------
/libexchange2ical/libical2exchange.c:
--------------------------------------------------------------------------------
1 | /*
2 | Common conversion routines for exchange2ical
3 |
4 | OpenChange Project
5 |
6 | Copyright (C) Julien Kerihuel 2008
7 |
8 | This program is free software; you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation; either version 3 of the License, or
11 | (at your option) any later version.
12 |
13 | This program is distributed in the hope that it will be useful,
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | GNU General Public License for more details.
17 |
18 | You should have received a copy of the GNU General Public License
19 | along with this program. If not, see .
20 | */
21 |
22 | #include "libexchange2ical/libexchange2ical.h"
23 |
--------------------------------------------------------------------------------
/libmapi++/clibmapi.h:
--------------------------------------------------------------------------------
1 | /*
2 | libmapi C++ Wrapper
3 |
4 | Copyright (C) Alan Alvarez 2008.
5 |
6 | This program is free software; you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation; either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see .
18 | */
19 |
20 | #ifndef __CLIBMAPI_H
21 | #define __CLIBMAPI_H
22 |
23 | extern "C" {
24 | #include
25 | }
26 |
27 | #endif /* ! __CLIBMAPI_H */
28 |
--------------------------------------------------------------------------------
/doc/doxygen/footer.html:
--------------------------------------------------------------------------------
1 |