Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
9f3403f
ews: add room list entry and room type structures
grammmike Oct 21, 2025
a1d40a7
ews: implement GetRoomLists and GetRooms handlers
grammmike Oct 21, 2025
37db70a
ews: register GetRoomLists and GetRooms handlers
grammmike Oct 21, 2025
da2c5f5
ews: add UserConfigurationDictionaryObjectTypesType enum
gromandreas Oct 28, 2025
ce585b8
ews: capitalize FolderId of tTargetFolderIdType
gromandreas Oct 29, 2025
d8b7712
ews: implement tUserConfigurationName according to docs
gromandreas Oct 29, 2025
f9dd725
ews: structs for CategoryList in UserConfiguration
gromandreas Oct 29, 2025
9e04c85
ews: replace spaces with tabs in structures.hpp
gromandreas Oct 30, 2025
1693841
ews: extend mGetUserConfigurationResponseMessage
gromandreas Oct 30, 2025
1cd076d
ews: enable missing PR_ROAMING_* props
gromandreas Oct 30, 2025
499083f
ews: implement CategoryList in UserConfiguration request
gromandreas Oct 30, 2025
9a171ed
http: new implementation of mod_rewrite
jengelh Oct 29, 2025
227e1c3
Merge branch 'ews-categorylist'
jengelh Oct 30, 2025
7ab7c57
build: dissolve lib/rpc directory and move files
jengelh Oct 26, 2025
d2a2d37
lib: move HMACMD5_CTX to exch/http/ntlmssp.cpp
jengelh Oct 26, 2025
c0df094
http: convert ARCFOUR_STATE functions to member functions
jengelh Oct 26, 2025
9e5a113
build: rename gxh and gxp component libraries to have more natural names
jengelh Oct 26, 2025
eb85655
exch: trim some unnecessary static_cast<>s
jengelh Oct 31, 2025
2cc2991
http: trim unnecessary directory_list::base type alias
jengelh Oct 31, 2025
a15d027
lib: ditch use of streambuf for json_from_str
jengelh Oct 31, 2025
40aea04
lib: rename json_from_str to str_to_json
jengelh Oct 31, 2025
98a9162
Merge branch 'ews_getrooms'
jengelh Oct 31, 2025
042839b
oxvcard: move address array assertions to file scope
grammmike Oct 21, 2025
da15f22
oxvcard: skip empty scalar properties
grammmike Oct 20, 2025
beb355d
oxvcard: factor out code for person line emission
grammmike Oct 20, 2025
e6a4332
oxvcard: factor out code for string array emission
jengelh Oct 31, 2025
71d7815
oxvcard: factor out code for address line emission
grammmike Oct 21, 2025
87d194a
oxvcard: add bounds check after encode64
grammmike Oct 21, 2025
b1c2ffb
oxvcard: add bounds check for propids array access
grammmike Oct 21, 2025
0c0985c
lib: add missing reset of errno when iconvtext() performs a no-op
grammmichi Oct 31, 2025
3294fd9
mapi_lib: normalize newline handling in html_write_string()
grammmichi Oct 31, 2025
f7f514a
mapi_lib: fix RTF \uc fallback handling for Unicode output
grammmichi Oct 31, 2025
1e77826
mapi_lib: use std::min+static_cast in place of std::min<T>
jengelh Nov 1, 2025
ad84c9f
ews: include PR_CONTAINER_CLASS in tFolderResponseShape
amaccuish Nov 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 39 additions & 39 deletions Makefile.am

Large diffs are not rendered by default.

15 changes: 11 additions & 4 deletions doc/mod_rewrite.4gx
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,25 @@ which is searched for in \fIconfig_file_path\fP. The usual location is
Each line in this file consists of 3 columns separated by whitespace:
.IP \(bu 4
A POSIX Basic Regular Expression (cf. regcomp(3)) for matching the original URI.
For safety, this should always be anchored with the beginning-of-line
metacharacter (^; circumflex).
.IP \(bu 4
The fixed sequence "=>".
.IP \(bu 4
Replacement string. Captures can be spliced using \fB\\1\fP, \fB\\2\fP, .. up
to a maximum of \fB\\9\fP. The sequence \fB\\0\fP splices the entire string
(equivalent of Perl's \fB$&\fP).
Replacement string. Captures can be spliced using \fB\\1\fP, \fB\\2\fP, etc.
The sequence \fB\\0\fP splices the entire string
(equivalent of Perl's \fB$&\fP). If a particular pattern has successfully
matched, no other rewrite rules are processed.
.PP
If the file has no lines, no paths will be rewritten.
If the file is absent however, a set of default entries will be used.
.SH Default rules
.nf
\\(/Microsoft-Server-ActiveSync\\) => \\1/grommunio-sync/index.php
^/Microsoft-Server-ActiveSync\\(/\\|$\\) => /sync/index.php
.fi
.SH Examples
.nf
^/\\([a-z+]\\)/\\([a-z]+\\).txt$ => /\\2/\\1.txt
.fi
.SH Files
.IP \(bu 4
Expand Down
2 changes: 1 addition & 1 deletion exch/authmgr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ static bool verify_token(std::string token, std::string &ex_user)

/* Grab username */
Json::Value root;
if (!json_from_str(base64_decode(std::move(payload)), root))
if (!str_to_json(base64_decode(std::move(payload)), root))
return false;
payload.clear();
ex_user = root["email"].asString();
Expand Down
8 changes: 8 additions & 0 deletions exch/ews/enums.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,8 @@ struct Enum {
STR(BusinessPhone);
STR(BusinessPhone2);
STR(Busy);
STR(Byte);
STR(ByteArray);
STR(CalendarAssistant);
STR(Callback);
STR(CarPhone);
Expand All @@ -138,6 +140,7 @@ struct Enum {
STR(Custom);
STR(CustomMailTip);
STR(CreatedEvent);
STR(DateTime);
STR(Day);
STR(December);
STR(Decline);
Expand Down Expand Up @@ -201,6 +204,8 @@ struct Enum {
STR(InProgress);
STR(Integer);
STR(IntegerArray);
STR(Integer32);
STR(Integer64);
STR(InternetHeaders);
STR(InvalidRecipient);
STR(IPPhone);
Expand Down Expand Up @@ -334,6 +339,8 @@ struct Enum {
STR(Tuesday);
STR(UnifiedMessaging);
STR(UnifiedMessagingConfiguration);
STR(UnsignedInteger32);
STR(UnsignedInteger64);
STR(Unknown);
STR(User);
STR(WaitingOnOthers);
Expand Down Expand Up @@ -465,6 +472,7 @@ struct Enum {
using SuggestionQuality = StrEnum<Excellent, Good, Fair, Poor>; ///< Types.xsd:6423
using SyncFolderItemsScopeType = StrEnum<NormalItems, NormalAndAssociatedItems>; ///< Types.xsd:6256
using UserConfigurationPropertyType = StrEnum<Id, Dictionary, XmlData, BinaryData, All>; ///< Types.xsd:7256
using UserConfigurationDictionaryObjectTypesType = StrEnum<DateTime, Boolean, Byte, String, Integer32, UnsignedInteger32, Integer64, UnsignedInteger64, StringArray, ByteArray>; ///<Types.xsd: 7212
using TaskStatusType = StrEnum<NotStarted, InProgress, Completed, WaitingOnOthers, Deferred>; ///< Types.xsd:4072
};

Expand Down
2 changes: 2 additions & 0 deletions exch/ews/ews.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,8 @@ const std::unordered_map<std::string, EWSPlugin::Handler> EWSPlugin::requestMap
{"GetInboxRules", process<Structures::mGetInboxRulesRequest>},
{"GetItem", process<Structures::mGetItemRequest>},
{"GetMailTips", process<Structures::mGetMailTipsRequest>},
{"GetRoomLists", process<Structures::mGetRoomListsRequest>},
{"GetRooms", process<Structures::mGetRoomsRequest>},
{"GetServiceConfiguration", process<Structures::mGetServiceConfigurationRequest>},
{"GetStreamingEvents", process<Structures::mGetStreamingEventsRequest>},
{"GetUserAvailabilityRequest", process<Structures::mGetUserAvailabilityRequest>},
Expand Down
Loading