Fehlerbehandlung beim Senden von Tweets verbessert
Change-Id: I445ea5b9d3d7ab6b1bf2bbe7d97952250f43810e
diff --git a/secure/misc/twitter.c b/secure/misc/twitter.c
index b749072..af1145c 100644
--- a/secure/misc/twitter.c
+++ b/secure/misc/twitter.c
@@ -81,15 +81,18 @@
/* Offizielle API funktion
* xeval "/secure/misc/twitter"->twitter("@_zesstra_ welcome back")
*/
-void twitter(string msg) {
+int twitter(string msg) {
int err = 0;
if( !allowed() ) {
write( "Twitter ist ARCH+Berechtigte only.\n" );
- return;
+ return 0;
}
msg = msg + "^" + sig(this_interactive()) + "\n";
- if (sizeof(msg) > 279)
+ if (sizeof(msg) > 279) {
write("Tweet ist zu lang.\n");
+ return 0;
+ }
+
if(interactive(this_object())) {
tell_object(this_object(),msg);
} else {
@@ -97,8 +100,10 @@
caller = this_interactive();
if( (err=net_connect(HOST,PORT))!=0 ) {
write( "Konnte Tweet nicht senden. err="+err+"\n" );
+ return 0;
}
}
+ return 1;
}
// sonderfunktion fuer den fall, dass man die verbindung
diff --git a/secure/misc/twitter_tool.c b/secure/misc/twitter_tool.c
index 5b31e91..22b0b36 100644
--- a/secure/misc/twitter_tool.c
+++ b/secure/misc/twitter_tool.c
@@ -34,10 +34,13 @@
str = PL->_unparsed_args(0);
if(!sizeof(str))
return 0;
- "/secure/misc/twitter"->twitter(str);
- this_interactive()->ReceiveMsg(
- BS(sprintf("Tweet \'%s\' wird gesendet.",str)),
- MT_NOTIFICATION|MSG_BS_LEAVE_LFS);
+
+ // Der Twitter-Relay gibt Fehlermeldungen selbst aus, d.h. nur bei
+ // Erfolg muessen wir selber etwas ausgeben.
+ if ("/secure/misc/twitter"->twitter(str))
+ this_interactive()->ReceiveMsg(
+ BS(sprintf("Tweet \'%s\' wird gesendet.",str)),
+ MT_NOTIFICATION|MSG_BS_LEAVE_LFS);
return 1;
});
}