summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2011-09-16 14:28:22 +0200
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2012-02-10 09:35:22 +0100
commit269297401c5b63f3f462a66b2e7652e726ad605a (patch)
treecc679b70dd9a3c2c9c23c4932429a192f2d00775
parentd627f060307c3d6c7d0cabb6f4d66c10f87da214 (diff)
downloadcmumble-269297401c5b63f3f462a66b2e7652e726ad605a.tar.gz
cmumble-269297401c5b63f3f462a66b2e7652e726ad605a.tar.bz2
cmumble-269297401c5b63f3f462a66b2e7652e726ad605a.zip
Derive message type from position in .proto file
This involves changing the .proto file, to actually reflect the type in the protocol.
-rw-r--r--src/Makefile.am4
-rw-r--r--src/gen_message_list.sed16
-rw-r--r--src/messages.txt26
-rw-r--r--src/mumble.proto31
4 files changed, 29 insertions, 48 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 567b3f9..18979d0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -18,12 +18,12 @@ AM_CFLAGS = $(GCC_CFLAGS)
BUILT_SOURCES = $(nodist_cmumble_SOURCES) $(nodist_noinst_HEADERS)
MAINTAINERCLEANFILES = mumble.pb-c.c mumble.pb-c.h
CLEANFILES = message_list.h
-EXTRA_DIST = mumble.proto messages.txt gen_message_list.sed
+EXTRA_DIST = mumble.proto gen_message_list.sed
# Ship files generated by protoc-c in releases,
# so that protoc-c (which pulls in the c++ protobuf) is not needed.
EXTRA_DIST += mumble.pb-c.c mumble.pb-c.h
-message_list.h: $(srcdir)/messages.txt $(srcdir)/gen_message_list.sed
+message_list.h: $(srcdir)/mumble.proto $(srcdir)/gen_message_list.sed
$(AM_V_GEN) LC_ALL= LC_COLLATE=C $(SED) -f $(srcdir)/gen_message_list.sed $< > $@
mumble.pb-c.c mumble.pb-c.h: $(srcdir)/mumble.proto
diff --git a/src/gen_message_list.sed b/src/gen_message_list.sed
index f927df4..17b2c16 100644
--- a/src/gen_message_list.sed
+++ b/src/gen_message_list.sed
@@ -6,6 +6,16 @@ i\
#define MUMBLE_MSGS \\
}
+$ {
+a\
+\
+#endif /* _MESSAGES_H_ */
+}
+
+# Isolate message name from .proto file
+/^message/!d
+s/message[ ]*\([^ ]*\).*$/\1/
+
# This code attempts to generate "MUMBLE_MSG(FooBar, foo_bar)" from "FooBar"
# Backup original message name
@@ -18,9 +28,3 @@ y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
G
# Put template macro around (delete newline between both msgs, swap order)
s/^\(.*\)\n\(.*\)$/ MUMBLE_MSG(\2, \1) \\/
-
-$ {
-a\
-\
-#endif /* _MESSAGE_LIST_H_ */
-}
diff --git a/src/messages.txt b/src/messages.txt
deleted file mode 100644
index 17dba7e..0000000
--- a/src/messages.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-Version
-UDPTunnel
-Authenticate
-Ping
-Reject
-ServerSync
-ChannelRemove
-ChannelState
-UserRemove
-UserState
-BanList
-TextMessage
-PermissionDenied
-ACL
-QueryUsers
-CryptSetup
-ContextActionModify
-ContextAction
-UserList
-VoiceTarget
-PermissionQuery
-CodecVersion
-UserStats
-RequestBlob
-ServerConfig
-SuggestConfig
diff --git a/src/mumble.proto b/src/mumble.proto
index d2d3c66..33ee20e 100644
--- a/src/mumble.proto
+++ b/src/mumble.proto
@@ -1,3 +1,6 @@
+/* NOTE: Do not replace this file directly with future mumble.proto.
+ We derive the message id from the position in this file. */
+
package MumbleProto;
option optimize_for = SPEED;
@@ -49,14 +52,6 @@ message Reject {
optional string reason = 2;
}
-message ServerConfig {
- optional uint32 max_bandwidth = 1;
- optional string welcome_text = 2;
- optional bool allow_html = 3;
- optional uint32 message_length = 4;
- optional uint32 image_message_length = 5;
-}
-
message ServerSync {
optional uint32 session = 1;
optional uint32 max_bandwidth = 2;
@@ -274,14 +269,22 @@ message UserStats {
optional bool strong_certificate = 18 [default = false];
}
-message SuggestConfig {
- optional uint32 version = 1;
- optional bool positional = 2;
- optional bool push_to_talk = 3;
-}
-
message RequestBlob {
repeated uint32 session_texture = 1;
repeated uint32 session_comment = 2;
repeated uint32 channel_description = 3;
}
+
+message ServerConfig {
+ optional uint32 max_bandwidth = 1;
+ optional string welcome_text = 2;
+ optional bool allow_html = 3;
+ optional uint32 message_length = 4;
+ optional uint32 image_message_length = 5;
+}
+
+message SuggestConfig {
+ optional uint32 version = 1;
+ optional bool positional = 2;
+ optional bool push_to_talk = 3;
+}