chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
disobedience/disobedience.h: Declare variables as `extern'.
[disorder]
/
server
/
plugin.c
diff --git
a/server/plugin.c
b/server/plugin.c
index 6695d5a9b1c814103962605b013f602c57521939..6856e711cef57b1e2be841ebe53db2f1ce8cea55 100644
(file)
--- a/
server/plugin.c
+++ b/
server/plugin.c
@@
-1,6
+1,6
@@
/*
* This file is part of DisOrder.
/*
* This file is part of DisOrder.
- * Copyright (C) 2004-200
8
Richard Kettlewell
+ * Copyright (C) 2004-200
9, 2011
Richard Kettlewell
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-28,9
+28,15
@@
# define SOSUFFIX ".so"
#endif
# define SOSUFFIX ".so"
#endif
+/** @brief A loaded plugin */
struct plugin {
struct plugin {
+ /** @brief Next plugin */
struct plugin *next;
struct plugin *next;
+
+ /** @brief Handle returned from dlopen() */
void *dlhandle;
void *dlhandle;
+
+ /** @brief Plugin name */
const char *name;
};
const char *name;
};
@@
-54,7
+60,7
@@
const struct plugin *open_plugin(const char *name,
if(access(p, R_OK) == 0) {
h = dlopen(p, RTLD_NOW);
if(!h) {
if(access(p, R_OK) == 0) {
h = dlopen(p, RTLD_NOW);
if(!h) {
- error(0, "error opening %s: %s", p, dlerror());
+
disorder_
error(0, "error opening %s: %s", p, dlerror());
continue;
}
pl = xmalloc(sizeof *pl);
continue;
}
pl = xmalloc(sizeof *pl);
@@
-65,7
+71,8
@@
const struct plugin *open_plugin(const char *name,
return pl;
}
}
return pl;
}
}
- (flags & PLUGIN_FATAL ? fatal : error)(0, "cannot find plugin '%s'", name);
+ (flags & PLUGIN_FATAL ? disorder_fatal : disorder_error)
+ (0, "cannot find plugin '%s'", name);
return 0;
}
return 0;
}
@@
-73,10
+80,10
@@
function_t *get_plugin_function(const struct plugin *pl,
const char *symbol) {
function_t *f;
const char *symbol) {
function_t *f;
- f = (function_t *)dl
sym
(pl->dlhandle, symbol);
+ f = (function_t *)dl
func
(pl->dlhandle, symbol);
if(!f)
if(!f)
- fatal(0, "error looking up function '%s' in '%s': %s",
- symbol, pl->name, dlerror());
+
disorder_
fatal(0, "error looking up function '%s' in '%s': %s",
+
symbol, pl->name, dlerror());
return f;
}
return f;
}
@@
-86,8
+93,8
@@
const void *get_plugin_object(const struct plugin *pl,
o = dlsym(pl->dlhandle, symbol);
if(!o)
o = dlsym(pl->dlhandle, symbol);
if(!o)
- fatal(0, "error looking up object '%s' in '%s': %s",
- symbol, pl->name, dlerror());
+
disorder_
fatal(0, "error looking up object '%s' in '%s': %s",
+
symbol, pl->name, dlerror());
return o;
}
return o;
}