commit eecb083cf9464cf18b568d5779f1395a2fcafc5b
parent 4de12658cc7ba7b2c704449cb63e778b65b15529
Author: kyle <kyle@getaddrinfo.net>
Date: Sat, 21 Nov 2015 12:39:54 -0700
gen_msgs: finally get perl generation right
- sl can now use automatically generated functions
Diffstat:
2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/gen_msgs.sh b/gen_msgs.sh
@@ -12,7 +12,7 @@ MSG_TYPES="new_device
ok"
OBJC_PATH="ios/shlist/MsgTypes.h"
-PERL_PATH="msgs.pm"
+PERL_PATH="msgs.pl"
JAVA_PATH="android/shlist/app/src/main/java/drsocto/shlist/MsgTypes.java"
SHELL_PATH="tests/msgs.sh"
@@ -58,15 +58,12 @@ EOF
# server and test suite
gen_perl() {
cat << EOF > $PERL_PATH
+#!/usr/bin/perl
# ${GENERATED_AT}
-package msgs;
use strict;
use warnings;
-use Exporter qw(import);
-our @EXPORT = qw(%msg_num @msg_str @msg_func \$protocol_version);
-
-our \$protocol_version = $PROTOCOL_VERSION;
+our \$protocol_ver = $PROTOCOL_VERSION;
EOF
print_table $PERL_PATH "our %msg_num = (" "\t\$msg => \$i," ");"
print_table $PERL_PATH "our @msg_str = (" "\t'\$msg'," ");"
diff --git a/sl b/sl
@@ -8,11 +8,13 @@ use DBI;
use Digest::SHA qw(sha256_base64);
use Getopt::Std;
use IO::Socket qw(getnameinfo NI_NUMERICHOST NI_NUMERICSERV);
-use msgs;
use POSIX;
use Scalar::Util qw(looks_like_number);
use Socket;
+require "msgs.pl";
+our (%msg_num, @msg_str, @msg_func, $protocol_ver);
+
my $LOG_LEVEL_ERROR = 0;
my $LOG_LEVEL_WARN = 1;
my $LOG_LEVEL_INFO = 2;
@@ -215,7 +217,7 @@ while (my ($new_sock, $bin_addr) = $sock->accept()) {
$child_dbh->begin_work;
# call the appropriate handler
- $msg_handlers[$msg_type]->($child_dbh, $new_sock, $addr." $msgs{$msg_type}", $msg);
+ $msg_func[$msg_type]->($child_dbh, $new_sock, $addr." $msg_str[$msg_type]", $msg);
$child_dbh->commit; # commit the changes if we get this far
if ($@) {
@@ -410,7 +412,7 @@ sub msg_add_friend
# print "$addr: added friend $_\n";
my $out = "$friend";
- print $new_sock pack("nn", $msgs{add_friend}, length($out));
+ print $new_sock pack("nn", $msg_num{add_friend}, length($out));
print $new_sock $out;
}