openbsd-ports/audio/opennap/patches/patch-search_c
naddy c208dc5df3 Update to 0.44 with some patches from CVS.
Notable changes to the port:
- creates opennap user/group to run as
- tons of bugfixes, improved performance
- no longer hardcodes SYSCONFDIR to /etc/opennap

Submitted by Jolan Luff <jolan@pellaeon.com>.
2002-08-10 01:14:04 +00:00

76 lines
1.8 KiB
Plaintext

$OpenBSD: patch-search_c,v 1.1 2002/08/10 01:14:04 naddy Exp $
--- search.c.orig Fri Sep 28 23:34:23 2001
+++ search.c Tue Oct 16 18:14:04 2001
@@ -304,6 +304,9 @@ free_datum (DATUM * d)
{
int i;
TokenRef *ref;
+#if RESUME
+ FileList *flist;
+#endif
for (i = 0; i < d->numTokens; i++)
{
@@ -342,13 +345,31 @@ free_datum (DATUM * d)
FREE (d->tokens);
- /* XXX broken */
#if RESUME
flist = hash_lookup (MD5, d->hash);
if (flist)
{
+ DList *list;
+
ASSERT (validate_flist (flist));
- flist->list = list_delete (flist->list, d);
+ for (list = flist->list; list; list = list->next)
+ {
+ if (list->data == d)
+ {
+ if (list->prev)
+ list->prev->next = list->next;
+ else
+ {
+ /* element is head of list, update the flist pointer */
+ flist->list = list->next;
+ }
+ if (list->next)
+ list->next->prev = list->prev;
+ FREE (list);
+ break;
+ }
+ }
+
flist->count--;
/* if there are no more files in this bin, erase it */
if (flist->count == 0)
@@ -944,6 +965,13 @@ HANDLER (search)
return;
}
+ /* NO SOUP FOR YOU!!! */
+ if (con->user->level == LEVEL_LEECH)
+ {
+ send_cmd (con, MSG_SERVER_SEARCH_END, "");
+ return;
+ }
+
/* if Max_Searches is > 0, we only allow clients to have a certain small
* number of pending search requests. Some abusive clients will tend
* to issues multiple search requests at a time.
@@ -1015,6 +1043,13 @@ HANDLER (remote_search)
if (! option (ON_ALLOW_SHARE))
{
/* sharing is not allowed on this server */
+ send_cmd (con, MSG_SERVER_REMOTE_SEARCH_END, "%s", id);
+ return;
+ }
+
+ if (user->level == LEVEL_LEECH)
+ {
+ /* user is not allowed to search this server */
send_cmd (con, MSG_SERVER_REMOTE_SEARCH_END, "%s", id);
return;
}