get in sync with fishlim upstream
This commit is contained in:
parent
3067b7b267
commit
81ed389e71
@ -4,17 +4,17 @@ OURCFLAGS = -Wall -Wextra -Wno-unused-parameter -std=c99 -pedantic `pkg-config -
|
|||||||
OURLINKFLAGS = `pkg-config --libs glib-2.0 libcrypto` $(CFLAGS) $(LDFLAGS)
|
OURLINKFLAGS = `pkg-config --libs glib-2.0 libcrypto` $(CFLAGS) $(LDFLAGS)
|
||||||
|
|
||||||
BASE_OBJECTS = irc.o fish.o keystore.o misc.o
|
BASE_OBJECTS = irc.o fish.o keystore.o misc.o
|
||||||
PLUGIN_OBJECTS = $(BASE_OBJECTS) xchat_plugin.o
|
PLUGIN_OBJECTS = $(BASE_OBJECTS) plugin_xchat.o
|
||||||
TEST_OBJECTS = $(BASE_OBJECTS) test.o
|
TEST_OBJECTS = $(BASE_OBJECTS) test.o
|
||||||
|
|
||||||
all: fishlim.so test
|
all: fishlim.so test
|
||||||
|
|
||||||
fish.o: fish.h keystore.h misc.h
|
fish.o: fish.h keystore.h misc.h
|
||||||
irc.o: irc.h
|
irc.o: irc.h
|
||||||
keystore.o: keystore.h irc.h fish.h misc.h
|
keystore.o: keystore.h irc.h fish.h misc.h plugin_xchat.h
|
||||||
misc.o: misc.h
|
misc.o: misc.h
|
||||||
test.o: fish.h
|
test.o: fish.h
|
||||||
xchat_plugin.o: fish.h irc.h keystore.h
|
plugin_xchat.o: fish.h irc.h keystore.h plugin_xchat.h
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
$(CC) $(OURCFLAGS) -c $< -o $@
|
$(CC) $(OURCFLAGS) -c $< -o $@
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
FiSHLiM
|
FiSHLiM
|
||||||
|
|
||||||
http://fishlim.slbdata.se/
|
http://fishlim.kodafritt.se/
|
||||||
|
|
||||||
|
|
||||||
FiSHLiM is an XChat plugin for FiSH IRC encryption. It's my attempt at making
|
FiSHLiM is an XChat plugin for FiSH IRC encryption. It's my attempt at making
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
#include "fish.h"
|
#include "fish.h"
|
||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "keystore.h"
|
#include "keystore.h"
|
||||||
#include "xchat_plugin.h"
|
#include "plugin_xchat.h"
|
||||||
|
|
||||||
|
|
||||||
static char *keystore_password = NULL;
|
static char *keystore_password = NULL;
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
char *keystore_get_key(const char *nick);
|
char *keystore_get_key(const char *nick);
|
||||||
int keystore_store_key(const char *nick, const char *key);
|
bool keystore_store_key(const char *nick, const char *key);
|
||||||
bool keystore_delete_nick(const char *nick);
|
bool keystore_delete_nick(const char *nick);
|
||||||
|
|
||||||
void keystore_secure_free(void *ptr, size_t size);
|
void keystore_secure_free(void *ptr, size_t size);
|
||||||
|
@ -27,7 +27,11 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
// #pragma GCC visibility push(default)
|
// #pragma GCC visibility push(default)
|
||||||
|
#ifdef _MSC_VER
|
||||||
#include "xchat-plugin.h"
|
#include "xchat-plugin.h"
|
||||||
|
#else
|
||||||
|
#include <xchat/xchat-plugin.h>
|
||||||
|
#endif
|
||||||
#define XCHAT_MAX_WORDS 32
|
#define XCHAT_MAX_WORDS 32
|
||||||
// #pragma GCC visibility pop
|
// #pragma GCC visibility pop
|
||||||
|
|
||||||
@ -40,7 +44,7 @@
|
|||||||
|
|
||||||
static const char plugin_name[] = "FiSHLiM";
|
static const char plugin_name[] = "FiSHLiM";
|
||||||
static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!";
|
static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!";
|
||||||
static const char plugin_version[] = "0.0.13";
|
static const char plugin_version[] = "0.0.14";
|
||||||
|
|
||||||
static const char usage_setkey[] = "Usage: SETKEY [<nick or #channel>] <password>, sets the key for a channel or nick";
|
static const char usage_setkey[] = "Usage: SETKEY [<nick or #channel>] <password>, sets the key for a channel or nick";
|
||||||
static const char usage_delkey[] = "Usage: DELKEY <nick or #channel>, deletes the key for a channel or nick";
|
static const char usage_delkey[] = "Usage: DELKEY <nick or #channel>, deletes the key for a channel or nick";
|
||||||
@ -127,7 +131,6 @@ static int handle_incoming(char *word[], char *word_eol[], void *userdata) {
|
|||||||
if (!strcmp(command, "332")) w++;
|
if (!strcmp(command, "332")) w++;
|
||||||
|
|
||||||
// Look for encrypted data
|
// Look for encrypted data
|
||||||
ew;
|
|
||||||
for (ew = w+1; ew < XCHAT_MAX_WORDS-1; ew++) {
|
for (ew = w+1; ew < XCHAT_MAX_WORDS-1; ew++) {
|
||||||
const char *s = (ew == w+1 ? word[ew]+1 : word[ew]);
|
const char *s = (ew == w+1 ? word[ew]+1 : word[ew]);
|
||||||
if (strcmp(s, "+OK") == 0) goto has_encrypted_data;
|
if (strcmp(s, "+OK") == 0) goto has_encrypted_data;
|
||||||
@ -284,3 +287,4 @@ int xchat_plugin_deinit(void) {
|
|||||||
xchat_printf(ph, "%s plugin unloaded\n", plugin_name);
|
xchat_printf(ph, "%s plugin unloaded\n", plugin_name);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1 +1,31 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
Copyright (c) 2010 Samuel Lidén Borell <samuel@slbdata.se>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef XCHAT_PLUGIN_H
|
||||||
|
#define XCHAT_PLUGIN_H
|
||||||
|
|
||||||
gchar *get_config_filename();
|
gchar *get_config_filename();
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@ -22,10 +22,18 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "fish.h"
|
#include "fish.h"
|
||||||
|
|
||||||
|
// We can't use the XChat plugin API from here...
|
||||||
|
gchar *get_config_filename() {
|
||||||
|
const gchar *homedir = g_get_home_dir();
|
||||||
|
return g_build_filename(homedir, ".xchat2", "blow.ini", NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int decrypt(int nick_count, char *nicks[]) {
|
static int decrypt(int nick_count, char *nicks[]) {
|
||||||
char encrypted[8192];
|
char encrypted[8192];
|
||||||
while (fgets(encrypted, sizeof(encrypted), stdin)) {
|
while (fgets(encrypted, sizeof(encrypted), stdin)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user