GIT.Harvie.CZ
/
mirrors
/
libpurple-core-answerscripts.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
8ddbf94
)
Added new ENV value ANSW_PROTOCOL. Now you can securely recognize user by his nick...
author
Harvie
<tomas@mudrunka.cz>
Sun, 29 Aug 2010 01:22:14 +0000
(
03:22
+0200)
committer
Harvie
<tomas@mudrunka.cz>
Sun, 29 Aug 2010 01:22:14 +0000
(
03:22
+0200)
answerscripts.c
patch
|
blob
|
blame
|
history
purple/answerscripts.d/00-debug.sh
patch
|
blob
|
blame
|
history
purple/answerscripts.d/00-repeat.sh
patch
|
blob
|
blame
|
history
purple/answerscripts.sh
patch
|
blob
|
blame
|
history
diff --git
a/answerscripts.c
b/answerscripts.c
index 44fa0c12ed20972d76c6ef6d6cfc369bd5051f3a..c26d37bc9cafaa8009c46f936e21cc37a517b3a4 100755
(executable)
--- a/
answerscripts.c
+++ b/
answerscripts.c
@@
-8,10
+8,12
@@
#define ANSWERSCRIPTS_TIMEOUT_INTERVAL 250
#define ANSWERSCRIPTS_LINE_LENGTH 4096
#define ENV_PREFIX "ANSW_"
#define ANSWERSCRIPTS_TIMEOUT_INTERVAL 250
#define ANSWERSCRIPTS_LINE_LENGTH 4096
#define ENV_PREFIX "ANSW_"
+#define PROTOCOL_PREFIX "prpl-"
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
+#include <string.h>
#ifndef __WIN32__
#include <fcntl.h>
#ifndef __WIN32__
#include <fcntl.h>
@@
-63,6
+65,10
@@
static void received_im_msg_cb(PurpleAccount *account, char *who, char *buffer,
//printf("\nHarvie received: %s: %s\n", who, message); //debug
//purple_conv_im_send(purple_conversation_get_im_data(conv), ":-*"); //debug
//printf("\nHarvie received: %s: %s\n", who, message); //debug
//purple_conv_im_send(purple_conversation_get_im_data(conv), ":-*"); //debug
+ //Get protocol ID
+ const char *protocol_id = purple_account_get_protocol_id(account);
+ if(!strncmp(protocol_id,PROTOCOL_PREFIX,strlen(PROTOCOL_PREFIX))) protocol_id += strlen(PROTOCOL_PREFIX); //trim out protocol prefix (eg.: "prpl-irc" => "irc")
+
//Get status
PurpleStatus *status = purple_account_get_active_status(account);
PurpleStatusType *type = purple_status_get_type(status);
//Get status
PurpleStatus *status = purple_account_get_active_status(account);
PurpleStatusType *type = purple_status_get_type(status);
@@
-80,8
+86,9
@@
static void received_im_msg_cb(PurpleAccount *account, char *who, char *buffer,
}
//Export variables to environment
}
//Export variables to environment
- setenv(ENV_PREFIX "FROM", who, 1);
setenv(ENV_PREFIX "MSG", message, 1);
setenv(ENV_PREFIX "MSG", message, 1);
+ setenv(ENV_PREFIX "FROM", who, 1);
+ setenv(ENV_PREFIX "PROTOCOL", protocol_id, 1);
setenv(ENV_PREFIX "STATUS", status_id, 1);
setenv(ENV_PREFIX "STATUS_MSG", status_msg, 1);
setenv(ENV_PREFIX "STATUS", status_id, 1);
setenv(ENV_PREFIX "STATUS_MSG", status_msg, 1);
diff --git
a/purple/answerscripts.d/00-debug.sh
b/purple/answerscripts.d/00-debug.sh
index ad2ddb75affc83c162e508a5295fcfe52f617992..5509b65a9efc0a5ce7bb779b58972ccae7383f9c 100755
(executable)
--- a/
purple/answerscripts.d/00-debug.sh
+++ b/
purple/answerscripts.d/00-debug.sh
@@
-1,4
+1,4
@@
#!/bin/sh
#Debug
#!/bin/sh
#Debug
-echo "<$ANSW_FROM> $ANSW_MSG" >&2;
+echo "<$ANSW_
PROTOCOL/$ANSW_
FROM> $ANSW_MSG" >&2;
echo "($ANSW_STATUS: $ANSW_STATUS_MSG)" >&2;
echo "($ANSW_STATUS: $ANSW_STATUS_MSG)" >&2;
diff --git
a/purple/answerscripts.d/00-repeat.sh
b/purple/answerscripts.d/00-repeat.sh
index ffd2076654c31ef4e3ee2cd6ed15f4497815d9e5..af2520fda3fc6d31a8dc76fdbbf0470780cf58fa 100755
(executable)
--- a/
purple/answerscripts.d/00-repeat.sh
+++ b/
purple/answerscripts.d/00-repeat.sh
@@
-1,3
+1,3
@@
#!/bin/sh
#Dumb libpurple core-answerscripts script. Hello world!
#!/bin/sh
#Dumb libpurple core-answerscripts script. Hello world!
-echo "REPEAT:$ANSW_FROM> $ANSW_MSG";
+echo "REPEAT:$ANSW_
PROTOCOL:$ANSW_
FROM> $ANSW_MSG";
diff --git
a/purple/answerscripts.sh
b/purple/answerscripts.sh
index dbcb548a4b74f971651b21022cc47adc154f9a00..4dc0e8abc244928a48f588e5b29803677b74d4b4 100755
(executable)
--- a/
purple/answerscripts.sh
+++ b/
purple/answerscripts.sh
@@
-2,8
+2,9
@@
# This file is called for every message received by libpurple clients (pidgin,finch,...)
# - Following env values are passed to this script:
# This file is called for every message received by libpurple clients (pidgin,finch,...)
# - Following env values are passed to this script:
-# - ANSW_FROM (who sent you message)
# - ANSW_MSG (text of the message)
# - ANSW_MSG (text of the message)
+# - ANSW_FROM (who sent you message)
+# - ANSW_PROTOCOL (protocol used to deliver the message. eg.: jabber, irc,...)
# - ANSW_STATUS (unique ID of status. eg.: available, away,...)
# - ANSW_STATUS_MSG (status message set by user)
# - WARNING: You should mind security (don't let attackers to execute their messages/nicks!)
# - ANSW_STATUS (unique ID of status. eg.: available, away,...)
# - ANSW_STATUS_MSG (status message set by user)
# - WARNING: You should mind security (don't let attackers to execute their messages/nicks!)
This page took
0.168406 seconds
and
4
git commands to generate.